From 459df6ef4034ea01582594fcd389bd0f417bedd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johan=20Bov=C3=A9?= Date: Tue, 4 Feb 2020 22:47:28 +0100 Subject: [PATCH] Added jbm8b --- apps/jbm8b/Changelog | 2 + apps/jbm8b/add_to_apps.json | 23 ++++++++++ apps/jbm8b/app-icon.js | 1 + apps/jbm8b/app.js | 85 ++++++++++++++++++++++++++++++++++++ apps/jbm8b/app.json | 6 +++ apps/jbm8b/app.png | Bin 0 -> 2635 bytes 6 files changed, 117 insertions(+) create mode 100644 apps/jbm8b/Changelog create mode 100644 apps/jbm8b/add_to_apps.json create mode 100644 apps/jbm8b/app-icon.js create mode 100644 apps/jbm8b/app.js create mode 100644 apps/jbm8b/app.json create mode 100644 apps/jbm8b/app.png diff --git a/apps/jbm8b/Changelog b/apps/jbm8b/Changelog new file mode 100644 index 000000000..bd71ffcd5 --- /dev/null +++ b/apps/jbm8b/Changelog @@ -0,0 +1,2 @@ +0.01: First working version +0.02: Added delay in replying for dramatic effect \ No newline at end of file diff --git a/apps/jbm8b/add_to_apps.json b/apps/jbm8b/add_to_apps.json new file mode 100644 index 000000000..ffa033f75 --- /dev/null +++ b/apps/jbm8b/add_to_apps.json @@ -0,0 +1,23 @@ +{ + "id": "jbm8b", + "name": "Magic 8 Ball", + "icon": "app.png", + "description": "A simple fortune telling app", + "tags": "game", + "storage": [ + { + "name": "+jbm8b", + "url": "app.json" + }, + { + "name": "-jbm8b", + "url": "app.js" + }, + { + "name": "*jbm8b", + "url": "app-icon.js", + "evaluate": true + } + ], + "version": "1.1.0" +} \ No newline at end of file diff --git a/apps/jbm8b/app-icon.js b/apps/jbm8b/app-icon.js new file mode 100644 index 000000000..b2da211af --- /dev/null +++ b/apps/jbm8b/app-icon.js @@ -0,0 +1 @@ +require("heatshrink").decompress(atob("slkgRC/AF1a1WpoAWSgO//4AB/1QDCNvC4QZCGaELC4gAB/BITAAmAGCoyQGBAABMpkHC5P/8AYLl4YK/pJWPxkDC5ZLLj4YM/gYJv4YM/4YJC5v/4BiVMhUPDBz8IYpbJMPZx9JC559HPZ4AB6AYFg4YQ+CUVSxEfDCCWGn4YQSwytH/2V34YHoCtMRYMBBQ+AC4YNHLAcvZBcCBg30gFZgELZBbfH8DPB8ALHZAjfH4C2B/hWHDAg+HwC2B/yIHKwL4KoCsCDA76EDBYDDAAf8DAZaBDCy7HwF/JRLTDgBzBSox8KBAIYK6CuCdg4YM+DQBAQQAGDBZwBtVARA4YMSQILBSgwYFRgSWGgEBBQ4YMUQa6HDBnwSQPQPhgYH4CuKPhlAfJQYMCgeAHw4YK/ySD4AlIDBP8gYEC6CWG/wYP8D6GDAgkGDBjTDgALGDBn8DAcPBYzDDMY4YLSpn4DAcLUI+/cgoAD+gYDg75HIwJzBBY3wDAZ0DAAfAEIPgJwYYIOgYMFig9I6AYDEo67DVow9BDAZXH/+QEZH/wAYERIwAB1SXCUIwAEXYwAK/wYFLA4AJfAj6IABT4EcJIAJYwjIJABLGEV5QAIVoqvKVpoABl4XO/oYHhYYO+gYHgYYO8AYHPp57HAAM/C5n+C5D7Oe4ziRMRIAB34YLoAYKj7FTWB5JLAAN/JKr8LexB+PGBoABg4wWAAMvSSIAGt4XC/xIPAAkV1WVCyYA/AH4A/AH4Ai")) \ No newline at end of file diff --git a/apps/jbm8b/app.js b/apps/jbm8b/app.js new file mode 100644 index 000000000..0fd5a177c --- /dev/null +++ b/apps/jbm8b/app.js @@ -0,0 +1,85 @@ +const affirmative = [ + 'It is\ncertain.', + 'It is\ndicededly\nso.', + 'Without\na doubt.', + 'Yes\ndefinitely.', + 'You may\nrely\non it.', + 'As I see,\nit yes.', + 'Most\nlikely.', + 'Outlook\ngood.', + 'Yes.', + 'Signs point\nto yes.' +]; +const nonCommittal = [ + 'Reply hazy,\ntry again.', + 'Ask again\nlater.', + 'Better not\ntell you\nnow.', + 'Cannot\npredict\nnow.', + 'Concentrate\nand\nask again.' +]; +const negative = [ + 'Don\'t\ncount on it.', + 'My reply\nis no.', + 'My sources\nsay no.', + 'Outlook\nis not\nso\ngood.', + 'Very\ndoubtful.' +]; + +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('Ask me a\nYes or No\nquestion\nand\ntouch the\nscreen'); +} + +g.clear(); + +Bangle.loadWidgets(); + +// 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"}); + +Bangle.on('lcdPower', (on) => { + if (on) { + Bangle.drawWidgets(); + ask(); + } +}); \ No newline at end of file diff --git a/apps/jbm8b/app.json b/apps/jbm8b/app.json new file mode 100644 index 000000000..a378c4916 --- /dev/null +++ b/apps/jbm8b/app.json @@ -0,0 +1,6 @@ +{ + "name": "Magic 8 Ball", + "icon": "*jbm8b", + "src": "-jbm8b", + "version": "1.1.0" +} \ No newline at end of file diff --git a/apps/jbm8b/app.png b/apps/jbm8b/app.png new file mode 100644 index 0000000000000000000000000000000000000000..78128d47e33ce69755e21a155ee77979fa35f776 GIT binary patch literal 2635 zcmc&#_ct4gAB|bD#SV>!P$RL5SS_j8YDCoDjXh)bSv4C)?M*$Slv+V3+LEf#KBGmg zs{QO)wbxhwitp!~`?=?H&;9X!&P^~f&|;tk(*ghh1|4k_`i39>0S(2?)>6Sb-w>HU zTI&IzZisjN=Ad*zK12clgcQ092Py!70$`+%(fDH`BO@m#r=Xyqq@<*xqN1jzzIE#s z4Gj$t2&AQ@rK6*xr>AFNU|?iqWMX1sW@ct#VF7_atgNhTY;5f8>>L~%oSd9oTwL7T z++Z-6hlhukmlpzo@bmKv2nYxY3PPb!At51QVc|P>?udwph>3}bi;KfxFgP48DJdx> zB_$&xbNB9DIXO9bd3gi^p`f6ksHmu0K743sXlP_)ghr!HOiVBsjH#*VqeqX-%*@Qq%`Ge}EG;dq ztgNi9t!->B>fm$$dKpPwHNhx7OM z4-5ub93|Z^78ZZ3knK~ zii(Phi%UvMN=r-2%F4>i%PT7@U%!4`RaI48UH#_Go0^)M+S=N>y1M%M`i6!E0)f!j z*x1z6)ZE-mBobR%T3TCM-@bj@*4EbE-u~|0yUxzeuC6W;iPYWQ{pr)Eo}QlG-rl~x zzW)CH&!0bk`SN98U|?`?aA;^~czF2h*RNw^W8c4jA0Ho|n3$NHoSd4Pnx3Bi@#DwL z%*^cU?A+Yk{QUgF!ouR>;?mO6^78V^%F62M>e|}c`uh6D#>VF6=GNBM_V)J9&d%=c z?%v+s{{H^2U%w6x4u1dseRz0ybaZrle0*|pa(a4tc6N4tetvOrad~-pb#--peSH(c z|JRs*Uism17h=eohsy<|H=Xd!Y>QK2gjN-W!MCX z4Y08X`{_ZW-p;lMXid$8l8ShmswjlS=F7aP&dT7aDw`=q{~?E};u95>4tkfB%a_3` zMaq_Z*SFP}|N1B9MBRt{scNcxMDK{)Cc@088fJ%)RRZ=frwK+pJ%PYZmxD8md%KM? z&J4ZsivJT5(6a_G-{Y^ZmVT^=4+x*5F54tvea*VqU`cp z^MyZ8eg9c$A4-Zt6zaxG4?o1M(?PxDxLJFONUrCO2ok;29#_+IOOJsr&Ef`ox}(mm z(bCMCrp)fUyn!Aw5 z;RN{#1ezkCKBTOdA;L?#=tz%!bzkrOSulm@L?*lu zBx}PL4DC|rAV@H9l0KMJr)6#nrqjldYmDv9V+)giU;I!wSfbSS*dbLsu@uEA+Xy!z z7ie4x2-;`ZG>VM^grWB}FI*sHz0+_&4a4c4&SBuSOd>7EaO(;ZOhXZ?WfL zk|3OUT>~#!kf>c^ zf{+wyLs=?MltI9*NUB@Mt5TN(^)j;%&Jmx$%4C#Oh;VO4+6HZ}7-N9tZ9j&0{)g@kO^G{8n*m0#JEFcR$_v;RyxfHV=U=`5nM;7O3WlvK-pg8~!k zL-RER20|539AX*}juyc#lj=Qp((PM?Yzb0A<~B_jFPvT@3#7(!n!sYN=uygZKQ%_+ z4Mu>N9!F^mM=NS_e)dkxk6@ZV8a**Cf4s*a!}6W?lLtL{dFIt9_bJgh7gAL@gWRb^0UC&>X34ixSt&WuYucX$RUE~7HOeXy*Mck zPOBPCN}R1LlwO-lpvRFT#5JGir9s(v8}b&+bR5MgMVm$YEq)Fma^727wjEawen@L! zBrubVP2tfFap%+*gnNqRS@CiB3U*N!3C?C`+C-4bvn|_iEQMKCXHm5>EoBJIr5G7&s#rwzu>H>AuAKBYf@f`oFyUe z>~AOPmCrayM*9^;%#a3?cp>JyTYKC_JGu$CZARS literal 0 HcmV?d00001