diff --git a/apps/.eslintrc.json b/apps/.eslintrc.json index d656c2555..d5a4bf2a3 100644 --- a/apps/.eslintrc.json +++ b/apps/.eslintrc.json @@ -142,13 +142,11 @@ "SwitchCase": 1 } ], - "no-case-declarations": "off", "no-constant-condition": "off", "no-delete-var": "off", "no-empty": "off", "no-global-assign": "off", "no-inner-declarations": "off", - "no-octal": "off", "no-prototype-builtins": "off", "no-redeclare": "off", "no-unreachable": "warn", diff --git a/apps/calculator/app.js b/apps/calculator/app.js index d9a89a989..465291d13 100644 --- a/apps/calculator/app.js +++ b/apps/calculator/app.js @@ -369,7 +369,7 @@ function buttonPress(val) { } hasPressedNumber = false; break; - default: + default: { specials.R.val = 'C'; if (!swipeEnabled) drawKey('R', specials.R); const is0Negative = (currNumber === 0 && 1/currNumber === -Infinity); @@ -385,6 +385,7 @@ function buttonPress(val) { hasPressedNumber = currNumber; displayOutput(currNumber); break; + } } } diff --git a/apps/calendar/calendar.js b/apps/calendar/calendar.js index f9fd43de8..5d7cae240 100644 --- a/apps/calendar/calendar.js +++ b/apps/calendar/calendar.js @@ -99,7 +99,7 @@ const sameDay = function(d1, d2) { const drawEvent = function(ev, curDay, x1, y1, x2, y2) { "ram"; switch(ev.type) { - case "e": // alarm/event + case "e": { // alarm/event const hour = 0|ev.date.getHours() + 0|ev.date.getMinutes()/60.0; const slice = hour/24*(eventsPerDay-1); // slice 0 for 0:00 up to eventsPerDay for 23:59 const height = (y2-2) - (y1+2); // height of a cell @@ -107,6 +107,7 @@ const drawEvent = function(ev, curDay, x1, y1, x2, y2) { const ystart = (y1+2) + slice*sliceHeight; g.setColor(bgEvent).fillRect(x1+1, ystart, x2-2, ystart+sliceHeight); break; + } case "h": // holiday g.setColor(bgColorWeekend).fillRect(x1+1, y1+1, x2-1, y2-1); break; diff --git a/apps/chess/ChangeLog b/apps/chess/ChangeLog index 064c7285e..87e526de0 100644 --- a/apps/chess/ChangeLog +++ b/apps/chess/ChangeLog @@ -1,3 +1,4 @@ 0.01: New App! 0.02: Bugfixes 0.03: Use Bangle.setBacklight() +0.04: Add option to buzz after computer move diff --git a/apps/chess/app.js b/apps/chess/app.js index d2141c128..19802083d 100644 --- a/apps/chess/app.js +++ b/apps/chess/app.js @@ -7,16 +7,17 @@ const FIELD_WIDTH = Bangle.appRect.w/8; const FIELD_HEIGHT = Bangle.appRect.h/8; const SETTINGS_FILE = "chess.json"; const ICON_SIZE=45; -const ICON_BISHOP = require("heatshrink").decompress(atob("lstwMB/4Ac/wFE4IED/kPAofgn4FDGon8j4QEBQgQE4EHBQcACwfAgF/BQYWD8EAHAX+NgI4C+AQEwAQDDYIhDDYMDCAQKBGQQsHHogKDCAJODCAI3CHoQKCHoIQDHoIQCFgoQBFgfgIQYmBEIQECKgIrCBYQKDC4OBg/8iCvEAC+AA=")); -const ICON_PAWN = require("heatshrink").decompress(atob("lstwMB/4At/AFEGon4h4FDwE/AgX8CAngCAkAv4bDgYbECAf4gAhD4AhD/kAg4mDCAkACAYbBEIYQBG4gbDEII9DFhXAgEfBQYWDEwJUC/wKBGQXwCAgEBE4RCBCAYmBCAQmCCAQmBCAbdCCAIbCQ4gAYwA=")); -const ICON_KING = require("heatshrink").decompress(atob("lstwMB/4Ac/wFE+4KEh4FD+F/AofvCwgKE+IKEg4bEj4FDwADC/k8g+HAoJhCC4PwAoQXBNod//AECgYfBAoUP/gQE8AQEBQcfCAaLBCAZmBEIZuBBQgyDJAIWCPgXAEAQWDBQRUCPgQnBHgJqBLwYhDOwRvDGQc/EIaSDCwLedwAA==")); -const ICON_QUEEN = require("heatshrink").decompress(atob("lstwMB/4Ac/l/AgXn4PzAgP+j0Ph4FB8FwuE///PgeDwPn/k8n0+j0f4Hz+Px8F+g/Px+fgf4vgACn/jAAf/x8Pj0en/8vAsB+P/+PBwcHj//w0MjEwJgMwsHBw5CBwMEhBDBPoR6B/gFCDYPgAoRZBAgUH//4AoQbB4AbDCAYbBCAZ1CAgJ7CwAKDGQQmBCAYmBEIQmC+AQEDYQQBDYQQCFgo3CXQIsFBYIEDACmAA=")); -const ICON_ROOK = require("heatshrink").decompress(atob("lstwMB/4Ax/0HgPAAoPwnEOg4FBwBFBn///gEBI4XgAoMPAoJWCv4QDDYXwBQf/4AKD/wmDCARuDGQImCEIQbCGQMDCAQKBj4EB/AFBBQQsgDYQQCNQQhCOog3CCAQ3BEIRvCAoSRCE4IxCKgQmCKgYAZwA=")); -const ICON_KNIGHT = require("heatshrink").decompress(atob("lstwMB/4Ann1/AgX48IKD4UPAgX+gEHAoXwgALDJQMfDYQFBEQWAgBSCBQQcC4AFBn///hnCBQPgAgMDGIQnDGIIQDAgQQBEwQQCGIIQCEwMECAQxBsAQBEwMPCAQmBAIJDB4EPDoM/CAIoBKgP4BQQQB/AzCKgJlIPgQ+COwJlCHoJlDJwJlDS4aBDDYQsCADOA")); +const get_icon_bishop = () => require("heatshrink").decompress(atob("lstwMB/4Ac/wFE4IED/kPAofgn4FDGon8j4QEBQgQE4EHBQcACwfAgF/BQYWD8EAHAX+NgI4C+AQEwAQDDYIhDDYMDCAQKBGQQsHHogKDCAJODCAI3CHoQKCHoIQDHoIQCFgoQBFgfgIQYmBEIQECKgIrCBYQKDC4OBg/8iCvEAC+AA=")); +const get_icon_pawn = () => require("heatshrink").decompress(atob("lstwMB/4At/AFEGon4h4FDwE/AgX8CAngCAkAv4bDgYbECAf4gAhD4AhD/kAg4mDCAkACAYbBEIYQBG4gbDEII9DFhXAgEfBQYWDEwJUC/wKBGQXwCAgEBE4RCBCAYmBCAQmCCAQmBCAbdCCAIbCQ4gAYwA=")); +const get_icon_king = () => require("heatshrink").decompress(atob("lstwMB/4Ac/wFE+4KEh4FD+F/AofvCwgKE+IKEg4bEj4FDwADC/k8g+HAoJhCC4PwAoQXBNod//AECgYfBAoUP/gQE8AQEBQcfCAaLBCAZmBEIZuBBQgyDJAIWCPgXAEAQWDBQRUCPgQnBHgJqBLwYhDOwRvDGQc/EIaSDCwLedwAA==")); +const get_icon_queen = () => require("heatshrink").decompress(atob("lstwMB/4Ac/l/AgXn4PzAgP+j0Ph4FB8FwuE///PgeDwPn/k8n0+j0f4Hz+Px8F+g/Px+fgf4vgACn/jAAf/x8Pj0en/8vAsB+P/+PBwcHj//w0MjEwJgMwsHBw5CBwMEhBDBPoR6B/gFCDYPgAoRZBAgUH//4AoQbB4AbDCAYbBCAZ1CAgJ7CwAKDGQQmBCAYmBEIQmC+AQEDYQQBDYQQCFgo3CXQIsFBYIEDACmAA=")); +const get_icon_rook = () => require("heatshrink").decompress(atob("lstwMB/4Ax/0HgPAAoPwnEOg4FBwBFBn///gEBI4XgAoMPAoJWCv4QDDYXwBQf/4AKD/wmDCARuDGQImCEIQbCGQMDCAQKBj4EB/AFBBQQsgDYQQCNQQhCOog3CCAQ3BEIRvCAoSRCE4IxCKgQmCKgYAZwA=")); +const get_icon_knight = () => require("heatshrink").decompress(atob("lstwMB/4Ann1/AgX48IKD4UPAgX+gEHAoXwgALDJQMfDYQFBEQWAgBSCBQQcC4AFBn///hnCBQPgAgMDGIQnDGIIQDAgQQBEwQQCGIIQCEwMECAQxBsAQBEwMPCAQmBAIJDB4EPDoM/CAIoBKgP4BQQQB/AzCKgJlIPgQ+COwJlCHoJlDJwJlDS4aBDDYQsCADOA")); const settings = Object.assign({ state: engine.P4_INITIAL_BOARD, computer_level: 0, // default to "stupid" which is the fastest + buzz: false, // Buzz when computer move is done }, require("Storage").readJSON(SETTINGS_FILE,1) || {}); const ovr = Graphics.createArrayBuffer(Bangle.appRect.w,Bangle.appRect.h,2,{msb:true}); @@ -56,22 +57,22 @@ const drawPiece = (buf, x, y, piece) => { switch(piece & ~0x1) { case engine.P4_PAWN: - icon = ICON_PAWN; + icon = get_icon_pawn(); break; case engine.P4_BISHOP: - icon = ICON_BISHOP; + icon = get_icon_bishop(); break; case engine.P4_KING: - icon = ICON_KING; + icon = get_icon_king(); break; case engine.P4_QUEEN: - icon = ICON_QUEEN; + icon = get_icon_queen(); break; case engine.P4_ROOK: - icon = ICON_ROOK; + icon = get_icon_rook(); break; case engine.P4_KNIGHT: - icon = ICON_KNIGHT; + icon = get_icon_knight(); break; } @@ -177,7 +178,7 @@ const move = (from,to,cbok) => { }; const showMessage = (msg) => { - g.setColor("#f00").setFont("4x6:2").setFontAlign(-1,1).drawString(msg, 10, Bangle.appRect.y2-10); + g.setColor("#f00").setFont("4x6:2").setFontAlign(-1,1).drawString(msg, 10, Bangle.appRect.y2-10).flip(); }; // Run @@ -223,32 +224,31 @@ Bangle.on('touch', (button, xy) => { showMessage(/*LANG*/"Moving.."); const posFrom = idx2Pos(startfield[0]/FIELD_WIDTH, startfield[1]/FIELD_HEIGHT); const posTo = idx2Pos(colTo/FIELD_WIDTH, rowTo/FIELD_HEIGHT); - setTimeout(() => { - const cb = () => { - // human move ok, update - drawBoard(); - drawSelectedField(); - if (!finished) { - // do computer move - Bangle.setBacklight(false); // this can take some time, turn off to save power - showMessage(/*LANG*/"Calculating.."); - setTimeout(() => { - const compMove = state.findmove(settings.computer_level+1); - const result = move(compMove[0], compMove[1]); - if (result.ok) { - writeSettings(); - } - Bangle.setLCDPower(true); - Bangle.setLocked(false); - Bangle.setBacklight(true); - if (!showmenu) { - showAlert(result.string); - } - }, 300); // execute after display update + const cb = () => { + // human move ok, update + drawBoard(); + drawSelectedField(); + if (!finished) { + // do computer move + Bangle.setBacklight(false); // this can take some time, turn off to save power + showMessage(/*LANG*/"Calculating.."); + const compMove = state.findmove(settings.computer_level+1); + const result = move(compMove[0], compMove[1]); + if (result.ok) { + writeSettings(); } - }; - move(posFrom, posTo,cb); - }, 100); // execute after display update + Bangle.setLCDPower(true); + Bangle.setLocked(false); + Bangle.setBacklight(true); + if (settings.buzz) { + Bangle.buzz(500); + } + if (!showmenu) { + showAlert(result.string); + } + } + }; + move(posFrom, posTo,cb); } // piece_sel === 0 startfield[0] = startfield[1] = undefined; piece_sel = 0; @@ -298,5 +298,12 @@ setWatch(() => { writeSettings(); } }, + /*LANG*/'Buzz on next turn': { + value: !!settings.buzz, + onchange: v => { + settings.buzz = v; + writeSettings(); + } + }, }); }, BTN, { repeat: true, edge: "falling" }); diff --git a/apps/chess/metadata.json b/apps/chess/metadata.json index d6d6fd70a..94ecbedbd 100644 --- a/apps/chess/metadata.json +++ b/apps/chess/metadata.json @@ -2,7 +2,7 @@ "id": "chess", "name": "Chess", "shortName": "Chess", - "version": "0.03", + "version": "0.04", "description": "Chess game based on the [p4wn engine](https://p4wn.sourceforge.net/). Drag on the touchscreen to move the green cursor onto a piece, select it with a single touch and drag the now red cursor around. Release the piece with another touch to finish the move. The button opens a menu.", "icon": "app.png", "tags": "game", diff --git a/apps/colorwheel/app.js b/apps/colorwheel/app.js index 7874c3f54..e8367d329 100644 --- a/apps/colorwheel/app.js +++ b/apps/colorwheel/app.js @@ -64,13 +64,14 @@ switch (true) { case (Radius > outerRadius): Color = '#000000'; break; case (Radius < innerRadius): Color = '#FFFFFF'; break; - default: + default: { let Phi = Math.atan2(dy,dx) + halfPi; if (Phi < 0) { Phi += twoPi; } if (Phi > twoPi) { Phi -= twoPi; } let Index = Math.floor(12*Phi/twoPi); Color = ColorList[Index]; + } } g.setColor(1,1,1); g.fillCircle(CenterX,CenterY, innerRadius); diff --git a/apps/configurable_clock/app.js b/apps/configurable_clock/app.js index 45c86c7e9..5c3bf3333 100644 --- a/apps/configurable_clock/app.js +++ b/apps/configurable_clock/app.js @@ -894,7 +894,7 @@ g.setFontAlign(-1,0); g.drawString('9', CenterX-outerRadius,CenterY); break; - case '1-12': + case '1-12': { let innerRadius = outerRadius * 0.9 - 10; let dark = g.theme.dark; @@ -942,6 +942,7 @@ g.drawString(i == 0 ? '12' : '' + i, x,y); } + } } let now = new Date(); diff --git a/apps/dclock/clock-dev.js b/apps/dclock/clock-dev.js index d2c3893d5..914234060 100644 --- a/apps/dclock/clock-dev.js +++ b/apps/dclock/clock-dev.js @@ -70,7 +70,7 @@ function drawSimpleClock() { var dom = new Date(d.getFullYear(), d.getMonth()+1, 0).getDate(); //Days since full moon - var knownnew = new Date(2020,02,24,09,28,0); + var knownnew = new Date(2020,2,24,9,28,0); // Get millisecond difference and divide down to cycles var cycles = (d.getTime()-knownnew.getTime())/1000/60/60/24/29.53; diff --git a/apps/gbmusic/app.js b/apps/gbmusic/app.js index ffd247f61..7f5aad8f3 100644 --- a/apps/gbmusic/app.js +++ b/apps/gbmusic/app.js @@ -136,19 +136,21 @@ function rIcon(l) { const x2 = l.x+l.w-1, y2 = l.y+l.h-1; switch(l.icon) { - case "pause": + case "pause": { const w13 = l.w/3; g.drawRect(l.x, l.y, l.x+w13, y2); g.drawRect(l.x+l.w-w13, l.y, x2, y2); break; - case "play": + } + case "play": { g.drawPoly([ l.x, l.y, x2, l.y+l.h/2, l.x, y2, ], true); break; - case "previous": + } + case "previous": { const w15 = l.w*1/5; g.drawPoly([ x2, l.y, @@ -157,7 +159,8 @@ function rIcon(l) { ], true); g.drawRect(l.x, l.y, l.x+w15, y2); break; - case "next": + } + case "next": { const w45 = l.w*4/5; g.drawPoly([ l.x, l.y, @@ -166,12 +169,14 @@ function rIcon(l) { ], true); g.drawRect(l.x+w45, l.y, x2, y2); break; - default: // red X + } + default: { // red X console.log(`Unknown icon: ${l.icon}`); g.setColor("#f00") .drawRect(l.x, l.y, x2, y2) .drawLine(l.x, l.y, x2, y2) .drawLine(l.x, y2, x2, l.y); + } } } let layout; diff --git a/apps/health/README.md b/apps/health/README.md index 3fcf394ba..ba6204670 100644 --- a/apps/health/README.md +++ b/apps/health/README.md @@ -4,7 +4,7 @@ Logs health data to a file in a defined interval, and provides an app to view it ## Usage -Once installed, health data is logged automatically. +Once installed, health data is logged automatically. Entries are stored with a 10 minute interval. To view data, run the `Health` app from your watch. @@ -40,6 +40,8 @@ minifier used in the App Loader, so we use the closure compiler to pre-minify th The easiest way to use it is to install `https://github.com/espruino/EspruinoDocs` and run `EspruinoDocs/bin/minify.js lib.js lib.min.js` +HRM data is stored as a number representing the best/average value from a 10 minute period. + ## TODO * `interface` page for desktop to allow data to be viewed and exported in common formats diff --git a/apps/impwclock/clock-impword.js b/apps/impwclock/clock-impword.js index 04421017b..6536adaf8 100644 --- a/apps/impwclock/clock-impword.js +++ b/apps/impwclock/clock-impword.js @@ -20,17 +20,17 @@ const allWords = [ const timeOfDay = { 0: ["", 0, 0], - 1: ["EARLYMORNING", 10, 20, 30, 40, 50, 02, 12, 22, 32, 42, 52, 62], - 2: ["MORNING", 02, 12, 22, 32, 42, 52, 62], - 3: ["LATEMORNING", 01, 11, 21, 31, 02, 12, 22, 32, 42, 52, 62], + 1: ["EARLYMORNING", 10, 20, 30, 40, 50, 2, 12, 22, 32, 42, 52, 62], + 2: ["MORNING", 2, 12, 22, 32, 42, 52, 62], + 3: ["LATEMORNING", 1, 11, 21, 31, 2, 12, 22, 32, 42, 52, 62], 4: ["MIDDAY", 13, 23, 33, 54, 64, 74], - 5: ["EARLYAFTERNOON", 10, 20, 30, 40, 50, 04, 14, 24, 34, 44, 70, 71, 72, 73], - 6: ["AFTERNOON", 04, 14, 24, 34, 44, 70, 71, 72, 73], - 7: ["LATEAFTERNOON", 01, 11, 21, 31, 04, 14, 24, 34, 44, 70, 71, 72, 73], - 8: ["EARLYEVENING", 10, 20, 30, 40, 50, 06, 16, 26, 36, 46, 56, 66], - 9: ["EVENING", 06, 16, 26, 36, 46, 56, 66], + 5: ["EARLYAFTERNOON", 10, 20, 30, 40, 50, 4, 14, 24, 34, 44, 70, 71, 72, 73], + 6: ["AFTERNOON", 4, 14, 24, 34, 44, 70, 71, 72, 73], + 7: ["LATEAFTERNOON", 1, 11, 21, 31, 4, 14, 24, 34, 44, 70, 71, 72, 73], + 8: ["EARLYEVENING", 10, 20, 30, 40, 50, 6, 16, 26, 36, 46, 56, 66], + 9: ["EVENING", 6, 16, 26, 36, 46, 56, 66], 10: ["NIGHT", 37, 47, 57, 67, 77], - 11: ["MIDDLEOFTHENIGHT", 13, 23, 33, 43, 53, 63, 05, 15, 45, 55, 65, 37,47,57,67,77 ], + 11: ["MIDDLEOFTHENIGHT", 13, 23, 33, 43, 53, 63, 5, 15, 45, 55, 65, 37,47,57,67,77 ], }; diff --git a/apps/locale/locales.js b/apps/locale/locales.js index 1bbf1b802..c307c405f 100644 --- a/apps/locale/locales.js +++ b/apps/locale/locales.js @@ -789,6 +789,25 @@ var locales = { day: "Søndag,Mandag,Tirsdag,Onsdag,Torsdag,Fredag,Lørdag", trans: { yes: "ja", Yes: "Ja", no: "nei", No: "Nei", ok: "ok", on: "på", off: "av", "< Back": "< Tilbake", "Delete": "Slett", "Mark Unread": "Merk som ulest" } }, + "ca_ES": { + lang: "es_ES", + decimal_point: ",", + thousands_sep: ".", + currency_symbol: "€", + int_curr_symbol: "EUR", + speed: "kmh", + distance: { 0: "m", 1: "km" }, + temperature: "°C", + ampm: { 0: "", 1: "" }, + timePattern: { 0: "%HH:%MM:%SS", 1: "%HH:%MM" }, + datePattern: { 0: "%A, %d de %B %Y", "1": "%d/%m/%y" }, + abmonth: "gen.,febr.,març,abr.,maig,juny,jul.,ag.,set.,oct.,nov.,des.", + month: "gener,febrer,març,abril,maig,juny,juliol,agost,setembre,octobre,novembre,desembre", + abday: "dg.,dl.,dt.,dc.,dj.,dv.,ds.", + day: "diumenge,dilluns,dimarts,dimecres,dijous,divendres,dissabte", + trans: { yes: "sí", Yes: "Sí", no: "no", No: "No", ok: "d'acord", on: "on", off: "off", + "< Back": "< Enrere", "Delete": "Esborra", "Mark Unread": "Marca com a no llegit" } + }, /*, "he_IL": { // This won't work until we get a font - see https://github.com/espruino/BangleApps/issues/399 codePage : "ISO8859-8", diff --git a/apps/marioclock/marioclock-app.js b/apps/marioclock/marioclock-app.js index 1f2e3a30a..6c105f1ae 100644 --- a/apps/marioclock/marioclock-app.js +++ b/apps/marioclock/marioclock-app.js @@ -134,11 +134,12 @@ function truncStr(str, max) { function phoneInbound(evt) { switch (evt.t) { - case 'notify': + case 'notify': { const sender = truncStr(evt.sender, 10); const subject = truncStr(evt.subject, 15); phoneNewMessage("notify", `${sender} - '${subject}'`); break; + } case 'call': if (evt.cmd === "accept") { let nameOrNumber = "Unknown"; diff --git a/apps/messagesoverlay/lib.js b/apps/messagesoverlay/lib.js index 6767cfbce..feb9ff379 100644 --- a/apps/messagesoverlay/lib.js +++ b/apps/messagesoverlay/lib.js @@ -54,7 +54,7 @@ let manageEvent = function(ovr, event) { showMessage(ovr, event); break; - case "modify": + case "modify": { let find = false; eventQueue.forEach(element => { if (element.id == event.id) { @@ -68,7 +68,7 @@ let manageEvent = function(ovr, event) { if (!callInProgress) showMessage(ovr, event); break; - + } case "remove": if (eventQueue.length == 0 && !callInProgress) next(ovr); diff --git a/apps/notanalog/notanalog.app.js b/apps/notanalog/notanalog.app.js index b37c34721..c0c5fc077 100644 --- a/apps/notanalog/notanalog.app.js +++ b/apps/notanalog/notanalog.app.js @@ -248,7 +248,7 @@ function handleState(fastUpdate){ */ var minutes = state.currentDate.getMinutes(); var hours = state.currentDate.getHours(); - if(!isAlarmEnabled() && fastUpdate && hours == 00 && minutes == 01){ + if(!isAlarmEnabled() && fastUpdate && hours == 0 && minutes == 1){ state.sleep = true; return; } diff --git a/apps/score/score.app.js b/apps/score/score.app.js index 5a0f9c1e1..56c5a52bf 100644 --- a/apps/score/score.app.js +++ b/apps/score/score.app.js @@ -318,7 +318,7 @@ function handleInput(button) { showSettingsMenu(); return; case 3: - case 4: + case 4: { let hLimit = currentSet() - setsPerPage() + 1; let lLimit = 0; let val = (button * 2 - 7); @@ -326,6 +326,7 @@ function handleInput(button) { if (firstShownSet > hLimit) firstShownSet = hLimit; if (firstShownSet < lLimit) firstShownSet = lLimit; break; + } } draw(); diff --git a/apps/waternet/app.js b/apps/waternet/app.js index 3bd67b48a..bc4b26828 100644 --- a/apps/waternet/app.js +++ b/apps/waternet/app.js @@ -1391,13 +1391,14 @@ function initLevel(aRandomSeed, noLoading) { boardWidth = 10; boardHeight = 8; break; - case DIFFRANDOM: + case DIFFRANDOM: { let rnd = random(255); boardWidth = 5 + (rnd % (MAXBOARDWIDTH - 5 + 1)); //5 is smallest level width from very easy rnd = random(255); boardHeight = 5 + (rnd % (MAXBOARDHEIGHT - 5 + 1)); //5 is smallest level height from very easy maxLevel = 0; //special value with random break; + } } //add space for arrows based on same posadd value (1 or 0 depending if sliding is allowed) boardWidth -= posAdd + posAdd; diff --git a/apps/wclock/clock-word.js b/apps/wclock/clock-word.js index 7ddb7bc35..f84496b0a 100644 --- a/apps/wclock/clock-word.js +++ b/apps/wclock/clock-word.js @@ -12,24 +12,24 @@ const allWords = [ const hours = { 0: ["", 0, 0], 1: ["ONE", 17, 47, 77], - 2: ["TWO", 06, 16, 17], + 2: ["TWO", 6, 16, 17], 3: ["THREE", 35, 45, 55, 65, 75], - 4: ["FOUR", 07, 17, 27, 37], - 5: ["FIVE", 04, 14, 24, 34], - 6: ["SIX", 05, 15, 25], - 7: ["SEVEN", 05, 46, 56, 66, 67], + 4: ["FOUR", 7, 17, 27, 37], + 5: ["FIVE", 4, 14, 24, 34], + 6: ["SIX", 5, 15, 25], + 7: ["SEVEN", 5, 46, 56, 66, 67], 8: ["EIGHT", 34, 44, 54, 64, 74], 9: ["NINE", 47, 57, 67, 77], 10: ["TEN", 74, 75, 76], 11: ["ELEVEN", 26, 36, 46, 56, 66, 76], - 12: ["TWELVE", 06, 16, 26, 36, 56, 66] + 12: ["TWELVE", 6, 16, 26, 36, 56, 66] }; const mins = { 0: ["A", 0, 0], - 1: ["FIVE", 02, 12, 22, 32], + 1: ["FIVE", 2, 12, 22, 32], 2: ["TEN", 10, 30, 40], - 3: ["QUARTER", 01, 11, 21, 31, 41, 51, 61], + 3: ["QUARTER", 1, 11, 21, 31, 41, 51, 61], 4: ["TWENTY", 10, 20, 30, 40, 50, 60], 5: ["HALF", 42, 52, 62, 72], 6: ["PAST", 13, 23, 33, 43],