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