non-positional systems comes first, new game starts with same options

This commit is contained in:
Трошин Антон Валерьевич
2026-07-12 10:04:11 +03:00
parent 0649d05bb0
commit 45cd0ee838
3 changed files with 19 additions and 15 deletions
+11 -7
View File
@@ -5,7 +5,7 @@ let LANG = localStorage.getItem('numnum-lang') || (navigator.language.startsWith
const STRINGS = {
en: {
subtitle: 'Numeral systems trainer',
startGame: 'Start Game',
startGame: 'Start',
chooseSystem: 'Choose numeral system',
positional: 'Positional',
nonPositional: 'Non-Positional',
@@ -15,13 +15,13 @@ const STRINGS = {
answerMode: 'Answer Mode',
timeLimit: 'Time Limit',
numberOfRounds: 'Number of Rounds',
play: 'Play!',
play: 'Go!',
timeLeft: 'Time left',
submit: 'Submit',
next: 'Next',
results: 'Results',
mistakes: 'Mistakes',
playAgain: 'Play Again',
playAgain: 'Start again',
menu: 'Menu',
choose: 'Choose',
type: 'Type',
@@ -42,7 +42,7 @@ const STRINGS = {
},
ru: {
subtitle: '\u0422\u0440\u0435\u043D\u0430\u0436\u0435\u0440 \u0441\u0438\u0441\u0442\u0435\u043C \u0441\u0447\u0438\u0441\u043B\u0435\u043D\u0438\u044F',
startGame: '\u041D\u0430\u0447\u0430\u0442\u044C \u0438\u0433\u0440\u0443',
startGame: 'Начать',
chooseSystem: '\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0441\u0438\u0441\u0442\u0435\u043C\u0443 \u0441\u0447\u0438\u0441\u043B\u0435\u043D\u0438\u044F',
positional: '\u041F\u043E\u0437\u0438\u0446\u0438\u043E\u043D\u043D\u044B\u0435',
nonPositional: '\u041D\u0435\u043F\u043E\u0437\u0438\u0446\u0438\u043E\u043D\u043D\u044B\u0435',
@@ -52,13 +52,13 @@ const STRINGS = {
answerMode: '\u0420\u0435\u0436\u0438\u043C \u043E\u0442\u0432\u0435\u0442\u0430',
timeLimit: '\u041E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u0435 \u043F\u043E \u0432\u0440\u0435\u043C\u0435\u043D\u0438',
numberOfRounds: '\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0440\u0430\u0443\u043D\u0434\u043E\u0432',
play: '\u0418\u0433\u0440\u0430\u0442\u044C!',
play: '\u0412\u043F\u0435\u0440\u0451\u0434!',
timeLeft: '\u041E\u0441\u0442\u0430\u043B\u043E\u0441\u044C',
submit: '\u041E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C',
next: '\u0414\u0430\u043B\u0435\u0435',
results: '\u0420\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u044B',
mistakes: '\u041E\u0448\u0438\u0431\u043A\u0438',
playAgain: '\u0418\u0433\u0440\u0430\u0442\u044C \u0441\u043D\u043E\u0432\u0430',
playAgain: 'Начать заново',
menu: '\u041C\u0435\u043D\u044E',
choose: '\u0412\u044B\u0431\u043E\u0440',
type: '\u0412\u0432\u043E\u0434',
@@ -323,7 +323,10 @@ function renderSetupOptions() {
}
// ---- GAME ----
let lastSetupState = null;
function startGame() {
lastSetupState = { ...setupState };
game.system = setupState.system;
game.range = setupState.rangeData || RANGES[setupState.range];
game.mode = MODES[setupState.mode]?.value ?? setupState.mode;
@@ -739,7 +742,8 @@ document.getElementById('btn-next').addEventListener('click', () => {
});
document.getElementById('btn-play-again').addEventListener('click', () => {
renderSetupSystem();
setupState = { ...lastSetupState };
startGame();
});
document.getElementById('btn-results-menu').addEventListener('click', () => {
+7 -7
View File
@@ -10,7 +10,7 @@
<link rel="manifest" href="manifest.json">
<link rel="icon" type="image/svg+xml" href="icon.svg">
<link rel="apple-touch-icon" href="icon-192.png">
<link rel="stylesheet" href="styles.css?v=35">
<link rel="stylesheet" href="styles.css?v=37">
</head>
<body>
<div id="app">
@@ -38,13 +38,13 @@
<h2 data-i18n="chooseSystem">Choose numeral system</h2>
<div class="system-group">
<h3 data-i18n="positional">Positional</h3>
<div id="setup-systems-pos" class="option-grid"></div>
<h3 data-i18n="nonPositional">Non-Positional</h3>
<div id="setup-systems-nonpos" class="option-grid"></div>
</div>
<div class="system-group">
<h3 data-i18n="nonPositional">Non-Positional</h3>
<div id="setup-systems-nonpos" class="option-grid"></div>
<h3 data-i18n="positional">Positional</h3>
<div id="setup-systems-pos" class="option-grid"></div>
</div>
<button class="btn btn-secondary" id="btn-system-back" data-i18n="back">Back</button>
@@ -155,10 +155,10 @@
</div>
<script type="module" src="app.js?v=35"></script>
<script type="module" src="app.js?v=37"></script>
<script>
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('/sw.js?v=35').catch(() => {});
navigator.serviceWorker.register('/sw.js?v=37').catch(() => {});
}
</script>
</body>
+1 -1
View File
@@ -1,4 +1,4 @@
const CACHE_NAME = 'numnum-v35';
const CACHE_NAME = 'numnum-v37';
const ASSETS = [
'/',
'/index.html',