mirror of https://github.com/espruino/BangleApps
Creating app.js
parent
2abad628ec
commit
f4d5e70fab
|
@ -0,0 +1,104 @@
|
|||
var randomNumber;
|
||||
var guessNumber = 1;
|
||||
|
||||
function mathRandomInt(a, b) {
|
||||
if (a > b) {
|
||||
// Swap a and b to ensure a is smaller.
|
||||
var c = a;
|
||||
a = b;
|
||||
b = c;
|
||||
}
|
||||
return Math.floor(Math.random() * (b - a + 1) + a);
|
||||
}
|
||||
|
||||
/**
|
||||
* Describe this function...
|
||||
*/
|
||||
function game() {
|
||||
|
||||
g.drawString('',0,20,true);
|
||||
E.showMenu(numMenu);
|
||||
console.log(randomNumber);
|
||||
}
|
||||
|
||||
var numMenu = {
|
||||
"" : {
|
||||
"title" : "Number Chaser",
|
||||
},
|
||||
"Guess Number" : {
|
||||
value : guessNumber,
|
||||
min:1,max:100,step:1,
|
||||
onchange : v => { guessNumber=v; }
|
||||
},
|
||||
"OK" : function () {
|
||||
g.clear();
|
||||
if (guessNumber == randomNumber) {
|
||||
//if guess is correct
|
||||
g.setFont("Vector",13);g.setFontAlign(-1,-1);
|
||||
status = "You won! ";
|
||||
gameOver();
|
||||
} else {
|
||||
//if guess is incorrect
|
||||
g.setFont("Vector",13);g.setFontAlign(-1,-1);
|
||||
if (guessNumber > randomNumber) {
|
||||
//Decreases number if guess is greater
|
||||
randomNumber = randomNumber - 1;
|
||||
status = "Too high!";
|
||||
} else if (guessNumber < randomNumber) {
|
||||
//Increases number if guess is lower
|
||||
status = "Too low!";
|
||||
randomNumber = randomNumber + 1;
|
||||
}
|
||||
if (randomNumber < 0 || randomNumber > 100) {
|
||||
//You lose when the number is out of the 1 to 100 range
|
||||
g.setFont("Vector",13);g.setFontAlign(-1,-1);
|
||||
g.drawString('You have lost\nNumber is out\nof range.',10,10,true);
|
||||
status = "You lost!";
|
||||
} else {
|
||||
g.drawString(status+"\nTry again!",10,10);
|
||||
Bangle.on('tap', function() {
|
||||
delay(3000).then(() => game());
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
function gameOver()
|
||||
{
|
||||
E.showPrompt(status+'Play again?',{title:""+'Number Chaser'}).then(function(a) {
|
||||
if (a) {
|
||||
randomNumber = mathRandomInt(1, 100);
|
||||
game();
|
||||
} else {
|
||||
load();
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
function delay(time) {
|
||||
return new Promise(resolve => setTimeout(resolve, time));
|
||||
}
|
||||
|
||||
function instructions()
|
||||
{
|
||||
g.setFont("Vector",13);g.setFontAlign(-1,-1);
|
||||
g.drawString('Guess the number\nbetween 1 and 100.\nGuess too high, it\ndecreases by 1.\nToo low, it increases\nby 1.\nIf the number\ngoes below 0 or\nabove 100, it\nis out of range\nand you have\nlost.',10,10,true);
|
||||
randomNumber = mathRandomInt(1, 100);
|
||||
delay(10000).then(() => game());
|
||||
}
|
||||
|
||||
|
||||
g.clear();
|
||||
E.showPrompt('Do you need instructions?',{title:""+'Number Chaser'}).then(function(a)
|
||||
{ if (a) {
|
||||
instructions();
|
||||
} else
|
||||
{
|
||||
randomNumber = mathRandomInt(1, 100);
|
||||
game();
|
||||
}
|
||||
}
|
||||
);
|
Loading…
Reference in New Issue