app: refonte JWE v2 - SvelteKit 2 + Svelte 5 + MapLibre, 4 modes de jeu, API anti-triche, ecran Cas B 'Pwen blinde', i18n FR/GCF, PWA
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
import type { Coordonnees, GuessResult, RoundPlace } from '$lib/types';
|
||||
|
||||
export interface MancheDefi {
|
||||
place: RoundPlace;
|
||||
guess: Coordonnees | null;
|
||||
result: GuessResult;
|
||||
}
|
||||
|
||||
/** État du Défi 5 rounds — client uniquement, sans session serveur. */
|
||||
function creerDefiStore() {
|
||||
let manches = $state<MancheDefi[]>([]);
|
||||
|
||||
return {
|
||||
get manches() {
|
||||
return manches;
|
||||
},
|
||||
get total() {
|
||||
return manches.reduce((s, m) => s + m.result.score, 0);
|
||||
},
|
||||
get termine() {
|
||||
return manches.length >= 5;
|
||||
},
|
||||
ajouter(manche: MancheDefi) {
|
||||
manches = [...manches, manche];
|
||||
},
|
||||
reinitialiser() {
|
||||
manches = [];
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
export const defi = creerDefiStore();
|
||||
Reference in New Issue
Block a user