Dans ce défi, vous devez dessiner l'échiquier ci-dessous et autoriser les mouvements.
1. Dessin
Chaque carré blanc a 5x9 espaces.
Chaque carré noir a 5 x 9 colons.
La planche est entourée d'une bordure de deux points.
Les pièces ont 5 caractères de large et se trouvent sur la rangée inférieure du carré au centre.
Les pions ont 4 caractères de large. Ils sont légèrement décalés du centre à droite, avec 3 carrés vides à gauche et 2 carrés vides à droite. Ils sont assis une ligne au-dessus du bas du carré.
Il ne doit pas y avoir d'espace en dehors de la zone du tableau, à l'exception d'une nouvelle ligne facultative.
Le tableau et les échecs doivent être tirés exactement comme indiqué, sauf que:
Vous pouvez remplacer le
:
dans les carrés noirs et la bordure par un symbole différent, et vous pouvez remplacer le@
dans les morceaux noirs par un symbole différent (mais pas le même que celui utilisé pour les carrés noirs).Vous pouvez déplacer les pions d'un caractère vers la gauche si vous le souhaitez.
.
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
: ::::::::: :::www::: _+_ ::::::::: ::::::::::
: |_|_| :: _,,::: (/) :::)@(::: )@( :::(/)::: _,, ::|_|_|:::
: |@| ::"- \~:: |@| :::|@|::: |@| :::|@|::: "- \~ :::|@|::::
: |@| :::|@|::: |@| :::|@|::: |@| :::|@|::: |@| :::|@|::::
: /@@@\ ::/@@@\:: /@@@\ ::/@@@\:: /@@@\ ::/@@@\:: /@@@\ ::/@@@\:::
:::::::::: ::::::::: ::::::::: ::::::::: :
:::::()::: () ::::()::: () ::::()::: () ::::()::: () :
:::::)(::: )( ::::)(::: )( ::::)(::: )( ::::)(::: )( :
::::/@@\:: /@@\ :::/@@\:: /@@\ :::/@@\:: /@@\ :::/@@\:: /@@\ :
:::::::::: ::::::::: ::::::::: ::::::::: :
: ::::::::: ::::::::: ::::::::: ::::::::::
: ::::::::: ::::::::: ::::::::: ::::::::::
: ::::::::: ::::::::: ::::::::: ::::::::::
: ::::::::: ::::::::: ::::::::: ::::::::::
: ::::::::: ::::::::: ::::::::: ::::::::::
:::::::::: ::::::::: ::::::::: ::::::::: :
:::::::::: ::::::::: ::::::::: ::::::::: :
:::::::::: ::::::::: ::::::::: ::::::::: :
:::::::::: ::::::::: ::::::::: ::::::::: :
:::::::::: ::::::::: ::::::::: ::::::::: :
: ::::::::: ::::::::: ::::::::: ::::::::::
: ::::::::: ::::::::: ::::::::: ::::::::::
: ::::::::: ::::::::: ::::::::: ::::::::::
: ::::::::: ::::::::: ::::::::: ::::::::::
: ::::::::: ::::::::: ::::::::: ::::::::::
:::::::::: ::::::::: ::::::::: ::::::::: :
:::::::::: ::::::::: ::::::::: ::::::::: :
:::::::::: ::::::::: ::::::::: ::::::::: :
:::::::::: ::::::::: ::::::::: ::::::::: :
:::::::::: ::::::::: ::::::::: ::::::::: :
: ::::::::: ::::::::: ::::::::: ::::::::::
: () ::::()::: () ::::()::: () ::::()::: () ::::()::::
: )( ::::)(::: )( ::::)(::: )( ::::)(::: )( ::::)(::::
: /__\ :::/__\:: /__\ :::/__\:: /__\ :::/__\:: /__\ :::/__\:::
: ::::::::: ::::::::: ::::::::: ::::::::::
:::::::::: ::::::::: www :::_+_::: ::::::::: :
:::|_|_|:: _,, :::(/)::: ) ( :::) (::: (/) :::_,,::: |_|_| :
::::| |::: "- \~ :::| |::: | | :::| |::: | | ::"- \~:: | | :
::::| |::: | | :::| |::: | | :::| |::: | | :::| |::: | | :
:::/___\:: /___\ ::/___\:: /___\ ::/___\:: /___\ ::/___\:: /___\ :
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
2. Déménagement
Les colonnes sont étiquetées AH de gauche à droite et 1 à 8 de bas en haut. L'utilisateur doit pouvoir saisir un mouvement sous la forme suivante:
<start column><start row><space><destination column><destination row>
Par exemple B1 C3
, déplacer le chevalier sur la place devant le pion de l'évêque (en supposant que le jeu vient de commencer).
Alternativement, le système ICCF peut être utilisé, dans lequel les colonnes sont étiquetées de 1 à 8 au lieu de A à H. Ainsi, le mouvement de chevalier mentionné ci-dessus devient 21 33
.
L'image suivante ( source ) clarifie les deux systèmes:
Le mouvement doit être exécuté et le nouveau tableau affiché. Toute capture résultante doit se produire lorsque le joueur d'échecs en mouvement retire le joueur d'échecs sur la case de destination du plateau.
Il n'est pas nécessaire de vérifier un mouvement d'échecs légal, car cela a été couvert dans d'autres défis: le plus petit programme d'échecs et le plus petit arbitre d'échecs Si l'utilisateur essaie de se déplacer d'une case vide, votre programme ou fonction doit ignorer le mouvement. Si l'utilisateur essaie de capturer une pièce amie, vous pouvez soit ignorer le mouvement, soit autoriser la capture de la pièce immobile.
Il n'est pas nécessaire de soutenir en passant ou en roque.
Vous pouvez supposer que l'entrée sera bien formée, c'est-à-dire toujours dans le format décrit ci-dessus. Les lettres seront toujours dans le même cas, vous pouvez décider de quel cas il s'agit.
3. Score et bonus
C'est le golf de code. Le code le plus court gagne.
-10% de bonus si votre programme ou fonction permet une promotion. L'utilisateur entre une troisième entrée, cette fois l'une des lettres suivantes: QBR N. Cela ne doit être autorisé que si le mouvement se termine par un pion sur la dernière ligne. Le pion est échangé contre la pièce nommée. QBRN.
-10% de bonus si votre programme ou fonction implémente un mouvement spécial "annuler" pour inverser les mouvements (dès le début du jeu si nécessaire.) Il est évidemment possible pour les joueurs amateurs de faire des mouvements illégaux, et ils peuvent souhaiter pour les défaire. Vous pouvez définir l'entrée que l'utilisateur doit donner pour ce mouvement "d'annulation" (il doit toujours être le même.) Le comportement n'est pas défini si l'utilisateur essaie d'annuler au-delà du début du jeu.
La somme des bonus, c'est-à-dire si vous optez pour les deux bonus, vous obtenez -20%.