|
|
|
|
|
import { gameSounds } from './sounds.mjs';
|
|
|
|
|
|
import { ocaBoard } from './oca-board.mjs';
|
|
|
|
|
|
import { gameAnimations } from './animations.mjs';
|
|
|
|
|
|
export const catalog = [
|
|
|
|
|
|
{
|
|
|
|
|
|
id: 'ajedrez',
|
|
|
|
|
|
name: 'Ajedrez',
|
|
|
|
|
|
subtitle: 'Cada movimiento cuenta.',
|
|
|
|
|
|
category: 'Estrategia',
|
|
|
|
|
|
variant: 'Clásico · sin reloj',
|
|
|
|
|
|
minPlayers: 2,
|
|
|
|
|
|
maxPlayers: 2,
|
|
|
|
|
|
duration: '15–40 min',
|
|
|
|
|
|
difficulty: 'Estratégico',
|
|
|
|
|
|
color: 'sage',
|
|
|
|
|
|
icon: 'chess',
|
|
|
|
|
|
version: '1.0.0',
|
|
|
|
|
|
rules: [
|
|
|
|
|
|
'Las blancas empiezan. Selecciona una pieza y su destino; los movimientos legales se resaltan.',
|
|
|
|
|
|
'Incluye enroque, captura al paso y elección de promoción.',
|
|
|
|
|
|
'La partida termina por jaque mate, rendición o tablas. En esta versión, repetición triple y 50 movimientos producen tablas automáticas.',
|
|
|
|
|
|
'Esta primera modalidad no tiene reloj. Puedes volver a la partida tras desconectarte.',
|
|
|
|
|
|
],
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
id: 'damas',
|
|
|
|
|
|
name: 'Damas',
|
|
|
|
|
|
subtitle: 'Una captura cambia todo.',
|
|
|
|
|
|
category: 'Estrategia',
|
|
|
|
|
|
variant: 'Damas de recorrido largo · tablero 8 × 8',
|
|
|
|
|
|
minPlayers: 2,
|
|
|
|
|
|
maxPlayers: 2,
|
|
|
|
|
|
duration: '10–25 min',
|
|
|
|
|
|
difficulty: 'Accesible',
|
|
|
|
|
|
color: 'sand',
|
|
|
|
|
|
icon: 'checkers',
|
|
|
|
|
|
version: '2.0.0',
|
|
|
|
|
|
rules: [
|
|
|
|
|
|
'12 fichas por jugador sobre las casillas oscuras.',
|
|
|
|
|
|
'Las fichas normales avanzan y capturan hacia delante. Capturar es obligatorio; debes completar los saltos encadenados.',
|
|
|
|
|
|
'Al coronar termina el turno. Una dama recorre cualquier número de casillas libres en diagonal, hacia delante o atrás. Puede capturar una pieza a distancia y elegir una casilla libre más allá; no puede saltar otras piezas.',
|
|
|
|
|
|
'Gana quien deja al rival sin fichas o movimientos. Se declaran tablas tras 40 turnos por jugador sin captura ni coronación.',
|
|
|
|
|
|
],
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
id: 'parchis',
|
|
|
|
|
|
name: 'Parchís',
|
|
|
|
|
|
subtitle: 'La suerte también se juega.',
|
|
|
|
|
|
category: 'Familia',
|
|
|
|
|
|
variant: 'Individual · un dado · 4 fichas por jugador',
|
|
|
|
|
|
minPlayers: 2,
|
|
|
|
|
|
maxPlayers: 4,
|
|
|
|
|
|
duration: '20–45 min',
|
|
|
|
|
|
difficulty: 'Familiar',
|
|
|
|
|
|
color: 'lilac',
|
|
|
|
|
|
icon: 'dice',
|
|
|
|
|
|
version: '2.0.0',
|
|
|
|
|
|
rules: [
|
|
|
|
|
|
'Todas las fichas empiezan en casa. Sale una con 5; si la salida es posible, es obligatoria. Cada jugador controla un color.',
|
|
|
|
|
|
'Un 6 permite repetir. Cuenta 7 cuando no quedan fichas en casa. El tercer 6 termina el turno y devuelve la última ficha movida a casa, salvo que esté en el pasillo final o en meta.',
|
|
|
|
|
|
'Dos fichas del mismo color forman una barrera que nadie puede atravesar. Al sacar 6 debes abrir una barrera si tienes un movimiento para hacerlo.',
|
|
|
|
|
|
'Los 16 seguros admiten dos fichas, incluso de colores distintos. Salir con 5 a una salida completa captura al último rival que llegó.',
|
|
|
|
|
|
'Capturar concede 20 pasos; llegar a meta, 10. El premio se mueve con una ficha y debe gastarse completo. Si no es posible, se descarta automáticamente.',
|
|
|
|
|
|
'Entra en meta con el número exacto. Gana quien lleva sus cuatro fichas. Tras mover o cuando no puedas hacerlo, el turno avanza automáticamente; un 6 conserva la repetición.',
|
|
|
|
|
|
],
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
id: 'go',
|
|
|
|
|
|
name: 'Go',
|
|
|
|
|
|
subtitle: 'Construye territorio, piedra a piedra.',
|
|
|
|
|
|
category: 'Estrategia',
|
|
|
|
|
|
variant: 'Área · tablero 9 × 9 · komi 6,5',
|
|
|
|
|
|
minPlayers: 2,
|
|
|
|
|
|
maxPlayers: 2,
|
|
|
|
|
|
duration: '15–35 min',
|
|
|
|
|
|
difficulty: 'Estratégico',
|
|
|
|
|
|
color: 'sand',
|
|
|
|
|
|
icon: 'go',
|
|
|
|
|
|
version: '1.0.0',
|
|
|
|
|
|
rules: [
|
|
|
|
|
|
'Las negras comienzan. Coloca una piedra en una intersección vacía. Los grupos sin libertades se capturan; no se permite suicidio ni repetir una posición anterior (superko).',
|
|
|
|
|
|
'Dos pases seguidos abren el recuento. Marcad los grupos muertos y aceptad ambos la propuesta, o reanudad la partida si hay desacuerdo.',
|
|
|
|
|
|
'Se cuentan piedras vivas y territorio rodeado por un único color. Las blancas reciben 6,5 puntos de compensación. Sin reloj ni hándicap.',
|
|
|
|
|
|
],
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
id: 'oca',
|
|
|
|
|
|
name: 'La Oca',
|
|
|
|
|
|
subtitle: 'De oca a oca… y a por la revancha.',
|
|
|
|
|
|
category: 'Familia',
|
|
|
|
|
|
variant: 'Un dado · 63 casillas · pozo de tres turnos',
|
|
|
|
|
|
minPlayers: 2,
|
|
|
|
|
|
maxPlayers: 4,
|
|
|
|
|
|
duration: '10–25 min',
|
|
|
|
|
|
difficulty: 'Familiar',
|
|
|
|
|
|
color: 'sage',
|
|
|
|
|
|
icon: 'goose',
|
|
|
|
|
|
version: '1.0.0',
|
|
|
|
|
|
rules: [
|
|
|
|
|
|
'Cada jugador tiene una ficha. El dado y el movimiento se resuelven en el servidor; los turnos y descansos avanzan automáticamente.',
|
|
|
|
|
|
'Una oca te lleva a la siguiente y repites. Desde la última oca (59) conservas la casilla y repites; la meta exige una tirada exacta. Los puentes 6 y 12 se conectan; los dados 26 y 53 también.',
|
|
|
|
|
|
'Posada 19: descansa un turno. Pozo 31: tres turnos. Laberinto 42: vuelve a 30. Cárcel 52: dos turnos. Calavera 58: vuelve al inicio.',
|
|
|
|
|
|
'Gana quien llega exactamente a 63. Si te pasas, rebota hacia atrás. Esta modalidad usa un dado y una espera fija en el pozo.',
|
|
|
|
|
|
],
|
|
|
|
|
|
},
|
|
|
|
|
|
].map((definition) => ({
|
|
|
|
|
|
...definition,
|
|
|
|
|
|
sounds: gameSounds[definition.id],
|
|
|
|
|
|
animations: gameAnimations[definition.id],
|
|
|
|
|
|
...(definition.id === 'oca' ? { board: ocaBoard } : {}),
|
|
|
|
|
|
}));
|