fix(leaderboard)!: Replay button now generate new bombs & numbers on first grid click

This commit is contained in:
2024-02-15 19:43:52 +01:00
parent 6c86744275
commit 2459654403
3 changed files with 7 additions and 3 deletions
+1 -1
View File
@@ -93,7 +93,7 @@ const LeaderBoard = () => {
<button
className='controlButton replay'
onClick={() => setGameState((prev) => ({ ...prev, status: 'idle' }))}
onClick={() => setGameState((prev) => ({ ...prev, status: 'idle', endType: '', placedFlags: 0, bombs: 0, gameTime: 0 }))}
>
<Replay />
Rejouer
+2 -2
View File
@@ -3,7 +3,7 @@ import { atom } from 'recoil';
/**
* Values:
* - Status: 'settings' | 'idle' | 'playing' | 'board'
* - Difficulty: 'begginer' | 'intermediate' | 'expert'
* - Difficulty: 'beginner' | 'intermediate' | 'expert'
* - Grid Size: 12, 16, 20
* - Bombs: ]0;{GridSize}]
* - Placed Flags: [0;{GridSize}]
@@ -15,7 +15,7 @@ export const gameStateAtom = atom({
key: 'gameState',
default: {
status: 'board',
difficulty: 'begginer',
difficulty: 'beginner',
gridSize: 12,
bombs: 0,
placedFlags: 0,
+4
View File
@@ -31,6 +31,9 @@ export const genBombs = (grid: GridType, difficulty: Difficulty) => {
bombs = surface * 0.15;
}
console.log(difficulty);
// console.log(surface, surface * 0.05, bombs);
bombs = Math.floor(bombs);
for (let i = 1; i <= bombs; i++) {
let needRegenerate = false;
@@ -164,6 +167,7 @@ export const startGame = (grid: GridType, difficulty: Difficulty, needEmpty: boo
} while (grid[rowIndex][colIndex].value !== 'empty');
grid = genNumbers(grid);
// console.log(grid, bombsCount);
return { grid, bombsCount };
}