From: Benjamin Auder Date: Fri, 27 Mar 2020 01:47:49 +0000 (+0100) Subject: Fix and complete Apocalypse variant X-Git-Url: https://git.auder.net/game/current/app_dev.php/rpsls.js?a=commitdiff_plain;h=e45c98ec2e15626db02c98997ae9725635715990;p=vchess.git Fix and complete Apocalypse variant --- diff --git a/client/src/translations/en.js b/client/src/translations/en.js index 13798874..ef503530 100644 --- a/client/src/translations/en.js +++ b/client/src/translations/en.js @@ -207,6 +207,7 @@ export const translations = { "Shoot pieces": "Shoot pieces", "Squares disappear": "Squares disappear", "Standard rules": "Standard rules", + "The end of the world": "The end of the world", "Transform an essay": "Transform an essay", "Two kings": "Two kings", "Two royal pieces": "Two royal pieces", diff --git a/client/src/translations/es.js b/client/src/translations/es.js index 72c68dd6..c5c32af3 100644 --- a/client/src/translations/es.js +++ b/client/src/translations/es.js @@ -207,6 +207,7 @@ export const translations = { "Shoot pieces": "Tirar de las piezas", "Squares disappear": "Las casillas desaparecen", "Standard rules": "Reglas estandar", + "The end of the world": "El fin del mundo", "Transform an essay": "Transformar un ensayo", "Two kings": "Dos reyes", "Two royal pieces": "Dos piezas reales", diff --git a/client/src/translations/fr.js b/client/src/translations/fr.js index e0da2f36..e2c5f236 100644 --- a/client/src/translations/fr.js +++ b/client/src/translations/fr.js @@ -207,6 +207,7 @@ export const translations = { "Shoot pieces": "Tirez sur les pièces", "Squares disappear": "Les cases disparaissent", "Standard rules": "Règles usuelles", + "The end of the world": "La fin du monde", "Transform an essay": "Transformer un essai", "Two kings": "Deux rois", "Two royal pieces": "Deux pièces royales", diff --git a/client/src/translations/rules/Apocalypse/en.pug b/client/src/translations/rules/Apocalypse/en.pug index eaeab80f..ecea6f0f 100644 --- a/client/src/translations/rules/Apocalypse/en.pug +++ b/client/src/translations/rules/Apocalypse/en.pug @@ -1,6 +1,6 @@ p.boxed | Both players play a move "at the same time". - | The goal is to eliminate all pawns. + | The goal is to eliminate all enemy pawns. figure.diagram-container .diagram @@ -12,9 +12,7 @@ p a(href="https://en.wikipedia.org/wiki/Four_Horsemen_of_the_Apocalypse") | Four Horsemen of the Apocalypse |  mythology. Knights are horsemen, and pawns are footmen. - | The goal is to eliminate all enemy footmen, - | most likely with the help of your horsemen. - | If all footmen die, the other side wins. + | If all footmen of one color die, the other side wins. p. At each turn you can decide either to play safely an apparently valid move, @@ -30,12 +28,12 @@ ul If both moves are illegal none are played. If one is illegal, the other is played. li. - If a capture was intended but the target moved, the move is still played + If a capture is intended but the target moved, the move is still played but doesn't capture anything. li. If both moves arrive on the same square: the illegal move prevails, - if the other was legal (higher risk => reward). - If both moves are legal or illegal, then a horseman wins over a footman. + if the other was legal (higher risk => reward): the other piece vanish. + If both moves are (il)legal, then a horseman wins over a footman. Finally, at same risk level and same piece type, both disappear. figure.diagram-container @@ -43,7 +41,7 @@ figure.diagram-container | fen:npppn/p4/4P/P2pP/NPP1N: figcaption After 1.d1d2 e4e3 2.dxe3 exd2, pawns placements are inversed. -h3 Pawn promotions +h3 Promotions p. Pawns automatically promote in a knight, except if the player already @@ -60,6 +58,8 @@ p. If however both footmen armies vanish at the same time, it's a draw. It can happen if the two last pawns decide to advance to the same square for example. + Finally, if both sides get the second penalty point at the same time + it's also a draw. h3 Source diff --git a/client/src/translations/rules/Apocalypse/es.pug b/client/src/translations/rules/Apocalypse/es.pug index 3a33838b..c320f5a1 100644 --- a/client/src/translations/rules/Apocalypse/es.pug +++ b/client/src/translations/rules/Apocalypse/es.pug @@ -1,2 +1,69 @@ p.boxed - | TODO + | Ambos jugadores juegan "al mismo tiempo". + | El objetivo es eliminar todos los peones opuestos. + +figure.diagram-container + .diagram + | fen:npppn/p3p/5/P3P/NPPPN: + figcaption Posición inicial. + +p + | Esta variante está inspirada en el mito de los + a(href="https://es.wikipedia.org/wiki/Jinetes_del_Apocalipsis") + | Cuatro Jinetes del Apocalipsis + | . Los protagonistas son, por lo tanto, los jinetes del apocalipsis, y sus + | lacayos simbolizados por peones. Si todos los lacayos de un color + | perecer, entonces el otro lado gana. + +p. + En cada turno tienes que decidir si jugar una jugada segura, que es + apariencia válida, o especule sobre el movimiento del oponente y elija + un movimiento válido condicionalmente en la elección adversa. + En este último caso tu jugada podría no ser legal: tendría un punto de + penalización. Dos puntos de penalización es equivalente a la pérdida + del juego. Por ejemplo en la posición inicial, 1.(c1)c2 es seguro, + mientras que 1.axb3 solo será válido si las negras juegan 1...Nb3. + +p Reglas de resolución: +ul + li. + Si los dos movimientos son ilegales, ninguno se ejecuta. + Si solo uno de los dos es ilegal, se juega el otro. + li. + Si el objetivo de una captura (legal en el tablero) se ha movido, + el movimiento es todavía jugó pero no capturó nada. + li. + Si ambos movimientos golpean la misma casilla, entonces el movimiento + (inicialmente) ilegal prevalece si el otro era legal + (mayor riesgo => recompensa): la otra pieza desaparece. + Si ambas las jugadas son (il)legales, entonces el caballo gana + el peón. Finalmente, al mismo nivel de riesgo con dos piezas idénticas, + ambos desaparecen. + +figure.diagram-container + .diagram + | fen:npppn/p4/4P/P2pP/NPP1N: + figcaption. + Después de 1.d1d2 e4e3 2.dxe3 exd2, las posiciones de + los peones se invierten. + +h3 Promociones + +p. + Un peón se promociona automáticamente a un jinete, a menos que ya haya dos + de su color en el tablero de ajedrez. En este caso, el lacayo se redirige a + cualquier espacio libre que no esté en la última fila. + Incluso en este caso, una promoción puede parecer posible de antemano + de una captura de caballo. Es arriesgado pero jugable. + +h3 Fin de la partida + +p. + Como se mencionó anteriormente, perder todos tus peones conduce a la + derrota, así que en particular para promover su último peón perdido. + Este podría ser la única jugada legal. + Sin embargo, si los dos ejércitos de peones se aniquilan entre sí, entonces + el juego está tablas. Es posible si los dos últimos peones deciden + para avanzar en la misma plaza, por exemplo. + Finalmente, si ambas partes obtienen su segunda penalización al mismo + tiempo también es tablas. diff --git a/client/src/translations/rules/Apocalypse/fr.pug b/client/src/translations/rules/Apocalypse/fr.pug index 3a33838b..dd6961e7 100644 --- a/client/src/translations/rules/Apocalypse/fr.pug +++ b/client/src/translations/rules/Apocalypse/fr.pug @@ -1,2 +1,68 @@ p.boxed - | TODO + | Les deux joueurs jouent "en même temps". + | L'objectif est d'éliminer tous les pions adverses. + +figure.diagram-container + .diagram + | fen:npppn/p3p/5/P3P/NPPPN: + figcaption Initial position. + +p + | Cette variante est inspirée du mythe des + a(href="https://fr.wikipedia.org/wiki/Cavaliers_de_l%27Apocalypse") + | Quatre Cavaliers de l'Apocalypse + | . Les protagonstes sont donc les cavaliers de l'apocalypse, et leurs + | valets symbolisés par des pions. Si tous les valets d'une couleur + | périssent, alors l'autre camp a gagné. + +p. + À chaque tour vous devez décider soit de jouer un coup sûr, qui est en + apparence valide, soit spéculer sur le coup adverse et choisir un coup + valide conditionnellement au choix adverse. Dans ce dernier cas votre coup + pourrait ne pas être légal : vous auriez un point de pénalité. Deux points + de pénalité équivaut à la parte de la partie. Par exemple dans la position + initiale, 1.(c1)c2 est sûr tandis que 1.axb3 ne sera valide que si + les noirs jouent 1...Nb3. + +p Règles de résolution : +ul + li. + Si les deux coups sont illégaux, aucun n'est exécuté. + Si un seul des deux est illégal, l'autre est joué. + li. + Si la cible d'une capture (légale sur l'échiquier) a bougé, le coup est + tout de même joué mais ne capture rien. + li. + Si les deux coups arrivent sur la même case, alors le coup (initialement) + illégal l'emporte si l'autre était légal + (risque plus élevé => récompense) : l'autre pièce disparaît. + Si les coups sont tous deux (il)légaux, alors le cavalier l'emporte sur + le pion. Enfin, au même niveau de risque avec deux pièce identiques, + les deux disparaissent. + +figure.diagram-container + .diagram + | fen:npppn/p4/4P/P2pP/NPP1N: + figcaption. + Après 1.d1d2 e4e3 2.dxe3 exd2, les positions des pions s'inversent. + +h3 Promotions + +p. + Un pion est automatiquement promu en cavalier, sauf s'il y en a déjà deux + de sa couleur sur l'échiquier. Dans ce cas le valet est redirigé sur + n'importe quelle case libre ne se trouvant pas sur la dernière rangée. + Même dans ce cas, une promotion peut paraître possible par anticipation + d'une capture de cavalier. C'est risqué mais jouable. + +h3 Fin de la partie + +p. + Comme indiqué précédemment, perdre tous ses pions mène à la défaite, donc + en particulier promouvoir son dernier pion perd. + Cela pourrait être le seul coup légal. + Si cependant les deux armées de pions s'annihilent mutuellement, alors + la partie est nulle. C'est possible si les deux derniers pions décident + d'avancer sur la même case. + Enfin, si les deux camps obtiennent leur seconde pénalité en même + temps c'est nul également. diff --git a/client/src/variants/Apocalypse.js b/client/src/variants/Apocalypse.js index b84fb5ba..031f22cc 100644 --- a/client/src/variants/Apocalypse.js +++ b/client/src/variants/Apocalypse.js @@ -146,7 +146,8 @@ export class ApocalypseRules extends ChessRules { start: this.whiteMove.start, end: this.whiteMove.end, appear: this.whiteMove.appear, - vanish: this.whiteMove.vanish + vanish: this.whiteMove.vanish, + illegal: this.whiteMove.illegal }); } diff --git a/server/db/populate.sql b/server/db/populate.sql index 52c043cb..0575a986 100644 --- a/server/db/populate.sql +++ b/server/db/populate.sql @@ -7,6 +7,7 @@ insert or ignore into Variants (name,description) values ('Antiking1', 'Keep antiking in check (v1)'), ('Antiking2', 'Keep antiking in check (v2)'), ('Antimatter', 'Dangerous collisions'), + ('Apocalypse', 'The end of the world'), ('Arena', 'Middle battle'), ('Atomic', 'Explosive captures'), ('Ball', 'Score a goal'),