1
0
Fork 0

feat: new app Golf Score

master
Michael Salaverry 2021-12-11 12:13:50 +02:00
parent 6b2f8e98d3
commit 24d66cb4a0
No known key found for this signature in database
GPG Key ID: 438AB878C0FB04CC
7 changed files with 105 additions and 1 deletions

View File

@ -54,6 +54,20 @@
}
]
},
{ "id": "golfscore",
"name": "Golf Score",
"shortName":"golfscore",
"version":"0.01",
"description": "keeps track of strokes during a golf game",
"icon": "app.png",
"tags": "outdoors",
"supports" : ["BANGLEJS2"],
"readme": "README.md",
"storage": [
{"name":"golfscore.app.js","url":"app.js"},
{"name":"golfscore.img","url":"app-icon.js","evaluate":true}
]
},
{
"id": "messages",
"name": "Messages",

1
apps/golfscore/ChangeLog Normal file
View File

@ -0,0 +1 @@
0.01: New App!

25
apps/golfscore/README.md Normal file
View File

@ -0,0 +1,25 @@
# App Name
Describe the app...
Add screen shots (if possible) to the app folder and link then into this file with ![](<name>.png)
## Usage
Describe how to use it
## Features
Name the function
## Controls
Name the buttons and what they are used for
## Requests
Name who should be contacted for support/update requests
## Creator
Your name

View File

@ -0,0 +1 @@
require("heatshrink").decompress(atob("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"))

62
apps/golfscore/app.js Normal file
View File

@ -0,0 +1,62 @@
const menu = require("graphical_menu");
let holes_count = 18;
let course = new Array(holes_count).fill(0);
let total_strokes = 0;
const mainmenu = {
"": {
"title": "-- Golf --"
},
"Holes": {
value: holes_count,
min: 1, max: 20, step: 1, wrap: true,
onchange: v => { holes_count = v; add_holes(); }
},
"Total Strokes": {
value: total_strokes,
},
};
function updateTotalStrokes() {
total_strokes = course.reduce((acc, strokes) => acc + strokes, 0);
mainmenu["Total Strokes"].value = total_strokes;
}
function inc_hole(i) { return function (v) { course[i] = v; updateTotalStrokes(); }; }
function add_holes() {
for (let j = 0; j < 100; j++) {
delete mainmenu["Hole - " + (j + 1)];
}
for (let i = 0; i < holes_count; i++) {
course[i] = 0;
mainmenu["Hole - " + (i + 1)] = hole_menu(i);
}
E.showMenu(mainmenu);
}
function hole_menu(i) {
return function () {
E.showMenu(submenu(i));
};
}
function submenu(i) {
return {
"": {
"title": `-- Hole ${i + 1}--`
},
"strokes:": {
value: course[i],
min: 1, max: 20, step: 1, wrap: true,
onchange: inc_hole(i)
},
"Next hole": hole_menu(i + 1),
"< Back": function () { E.showMenu(mainmenu); },
};
}
g.clear();
add_holes();
E.showMenu(mainmenu);

BIN
apps/golfscore/app.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@ -1,3 +1,4 @@
0.01: New App!
0.02: using TS and rollup to bundle
0.03: bug fixes and support bangle 1
0.03: bug fixes and support bangle 1
0.04: don't allow date to change & docs