61 lines
2.3 KiB
TypeScript
61 lines
2.3 KiB
TypeScript
export interface GameRules {
|
||
subtitle: string; // One-liner shown in home cards
|
||
duration: string; // Estimated time "≈ X min"
|
||
howToPlay: string[]; // 3-5 rules
|
||
tip?: string; // Optional pro tip
|
||
}
|
||
|
||
export const GAME_RULES: Record<string, GameRules> = {
|
||
queens: {
|
||
subtitle: "1 couronne par ligne, colonne et zone",
|
||
duration: "≈ 3 min",
|
||
howToPlay: [
|
||
"Place une seule couronne par ligne.",
|
||
"Place une seule couronne par colonne.",
|
||
"Place une seule couronne par zone colorée.",
|
||
"Les couronnes ne peuvent pas se toucher, même en diagonale.",
|
||
],
|
||
tip: "Commence par la zone la plus contrainte.",
|
||
},
|
||
tango: {
|
||
subtitle: "Équilibre soleils ☀ et lunes ◐ sur la grille",
|
||
duration: "≈ 2 min",
|
||
howToPlay: [
|
||
"Chaque ligne et colonne doit avoir autant de soleils que de lunes.",
|
||
"Pas plus de 2 symboles identiques consécutifs dans une ligne ou colonne.",
|
||
"Les contraintes = (même symbole) et × (symboles différents) doivent être respectées.",
|
||
],
|
||
tip: "Repère les contraintes × en premier — elles forcent des valeurs.",
|
||
},
|
||
zip: {
|
||
subtitle: "Relie les chiffres dans l'ordre en couvrant tout",
|
||
duration: "≈ 2 min",
|
||
howToPlay: [
|
||
"Trace un chemin continu de 1 jusqu'au dernier chiffre.",
|
||
"Le chemin doit passer par toutes les cellules de la grille.",
|
||
"Le chemin ne peut pas se croiser.",
|
||
],
|
||
tip: "Repère les coins et impasses pour contraindre le tracé.",
|
||
},
|
||
sudoku: {
|
||
subtitle: "Chiffres 1–6 dans chaque ligne, colonne et bloc",
|
||
duration: "≈ 4 min",
|
||
howToPlay: [
|
||
"Place les chiffres 1 à 6 dans chaque ligne.",
|
||
"Place les chiffres 1 à 6 dans chaque colonne.",
|
||
"Place les chiffres 1 à 6 dans chaque bloc 2×3.",
|
||
"Chaque chiffre n'apparaît qu'une seule fois par groupe.",
|
||
],
|
||
tip: "Commence par les lignes ou colonnes déjà les plus remplies.",
|
||
},
|
||
patches: {
|
||
subtitle: "Remplis chaque zone avec les bonnes pièces",
|
||
duration: "≈ 3 min",
|
||
howToPlay: [
|
||
"Chaque zone colorée doit être remplie entièrement.",
|
||
"Les pièces disponibles correspondent exactement aux zones.",
|
||
"Les pièces peuvent être tournées.",
|
||
],
|
||
tip: "Commence par les zones les plus petites et les plus contraintes.",
|
||
},
|
||
};
|