Do some improvements

This commit is contained in:
2025-09-09 13:03:21 +03:00
parent 51aa2e68dc
commit e20e45b61a

View File

@ -203,6 +203,12 @@
<p>I'll show you 7 groups of numbers. For each group, tell me if your number is included.</p>
<p>After all 7 groups, I'll magically tell you your number! 🎩✨</p>
</div>
<div style="margin: 20px 0;">
<label style="display: flex; align-items: center; justify-content: center; gap: 10px; font-size: 1.1em; color: #555;">
<input type="checkbox" id="randomizeToggle" style="transform: scale(1.2);">
Randomize numbers within groups
</label>
</div>
<button class="btn btn-primary" onclick="startGame()">Start Game</button>
</div>
@ -228,7 +234,7 @@
let currentGroup = 0;
let groups = [];
function generateNumberGroups(maxNumber = 100) {
function generateNumberGroups(maxNumber = 100, shouldRandomize = false) {
const generatedGroups = [];
let bitPosition = 0;
@ -249,11 +255,31 @@
[generatedGroups[i], generatedGroups[j]] = [generatedGroups[j], generatedGroups[i]];
}
if (shouldRandomize) {
// Shuffle numbers within each group but keep first number in place
generatedGroups.forEach(group => {
if (group.length > 1) {
const firstNumber = group[0];
const remainingNumbers = group.slice(1);
// Shuffle the remaining numbers
for (let i = remainingNumbers.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[remainingNumbers[i], remainingNumbers[j]] = [remainingNumbers[j], remainingNumbers[i]];
}
// Reconstruct the group with first number in place
group.splice(1, group.length - 1, ...remainingNumbers);
}
});
}
return generatedGroups;
}
function startGame() {
groups = generateNumberGroups(100);
const shouldRandomize = document.getElementById('randomizeToggle').checked;
groups = generateNumberGroups(100, shouldRandomize);
currentGroup = 0;
result = 0;