Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | 1x 1x 1x 1x 1x 3x 3x 3x 3x 3x 3x 3x 2x 3x 1x 1x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x | import { generateShuffledTiles } from '@/shared/utils/generateTiles'; import { preloadImagesWithAwait } from '@/shared/utils/imageCache'; import { isDifficultyType } from '@/shared/utils/isDifficultyType'; import { ref } from 'vue'; export function useGameStart() { const isLoading = ref(false); const seed = ref(''); const difficulty = ref<number>(1); async function startGame(payload: { seed: string; difficulty: number }) { localStorage.removeItem('memory-game-state'); seed.value = payload.seed || Date.now().toString(); if (isDifficultyType(payload.difficulty)) { difficulty.value = payload.difficulty; } else { console.error('Invalid difficulty type:', payload.difficulty); } const tiles = generateShuffledTiles(seed.value, difficulty.value); const imagesToPreload = tiles.map((t) => t.imagePath!).filter(Boolean); isLoading.value = true; await preloadImagesWithAwait(imagesToPreload); isLoading.value = false; return { seed: seed.value, difficulty: difficulty.value, }; } return { isLoading, startGame, }; } |