Do some improvements
This commit is contained in:
30
index.html
30
index.html
@ -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>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>
|
<p>After all 7 groups, I'll magically tell you your number! 🎩✨</p>
|
||||||
</div>
|
</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>
|
<button class="btn btn-primary" onclick="startGame()">Start Game</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -228,7 +234,7 @@
|
|||||||
let currentGroup = 0;
|
let currentGroup = 0;
|
||||||
let groups = [];
|
let groups = [];
|
||||||
|
|
||||||
function generateNumberGroups(maxNumber = 100) {
|
function generateNumberGroups(maxNumber = 100, shouldRandomize = false) {
|
||||||
const generatedGroups = [];
|
const generatedGroups = [];
|
||||||
let bitPosition = 0;
|
let bitPosition = 0;
|
||||||
|
|
||||||
@ -249,11 +255,31 @@
|
|||||||
[generatedGroups[i], generatedGroups[j]] = [generatedGroups[j], generatedGroups[i]];
|
[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;
|
return generatedGroups;
|
||||||
}
|
}
|
||||||
|
|
||||||
function startGame() {
|
function startGame() {
|
||||||
groups = generateNumberGroups(100);
|
const shouldRandomize = document.getElementById('randomizeToggle').checked;
|
||||||
|
groups = generateNumberGroups(100, shouldRandomize);
|
||||||
currentGroup = 0;
|
currentGroup = 0;
|
||||||
result = 0;
|
result = 0;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user