BangleApps/apps/jbm8b_IT/app.js

79 lines
1.9 KiB
JavaScript

const affirmative = [
'È certo.',
'È decisamente\ncosì.',
'Senza alcun\ndubbio.',
'Sì,\nsenza dubbio.',
'Ci puoi\ncontare.',
'Da quanto\nvedo,\nsì.',
'Molto\nprobabilmente.',
'Le prospettive\nsono buone.',
'Sì.',
'I segni\nindicano\ndi sì.'
];
const nonCommittal = [
'È difficile\ndirlo,\nprova di nuovo.',
'Rifai la domanda\npiù tardi.',
'Meglio non\nrisponderti\nadesso.',
'Non posso\npredirlo ora.',
'Concentrati e\nrifai la\ndomanda.'
];
const negative = [
'Non ci\ncontare.',
'La mia\nrisposta\nè no.',
'Le mie\nfonti dicono\ndi no.',
'Le prospettive\nnon sono\nbuone.',
'È molto\ndubbio.'
];
const title = 'Magic 8 Ball';
const answers = [affirmative, nonCommittal, negative];
function getRandomArbitrary(min, max) {
return Math.random() * (max - min) + min;
}
function predict() {
// affirmative, negative or non-committal
let max = answers.length;
const a = Math.floor(getRandomArbitrary(0, max));
// sets max compared to answer category
max = answers[a].length;
const b = Math.floor(getRandomArbitrary(0, max));
// get the answer
const response = answers[a][b];
return response;
}
function draw(msg) {
// console.log(msg);
g.clear();
E.showMessage(msg, title);
}
function reply(button) {
const theButton = (typeof button === 'undefined' || isNaN(button)) ? 1 : button;
const timer = Math.floor(getRandomArbitrary(0, theButton) * 1000);
// Thinking...
draw('...');
setTimeout('draw(predict());', timer);
}
function ask() {
draw('Ponimi una\ndomanda\nSì/No e\ntocca lo\nschermo');
}
g.clear();
Bangle.loadWidgets();
Bangle.drawWidgets();
ask();
// Event Handlers
Bangle.on('touch', (button) => reply(button));
setWatch(ask, BTN1, { repeat: true, edge: "falling" });
setWatch(reply, BTN3, { repeat: true, edge: "falling" });
// Back to launcher
setWatch(Bangle.showLauncher, BTN2, { repeat: false, edge: "falling" });