Cribbage est un jeu intéressant, car vous avez besoin d'un plateau spécifique pour marquer votre partie. Une planche de cribbage ressemble à ceci:
Remarquez comment la première colonne est à gauche en montant, puis à droite en descendant, puis en arrière à gauche en remontant.
Et voici à quoi ressemble un art ASCII rendu mal dessiné d'une planche de cribbage:
* * *
----------- -------
/ * \ |*|*|*|
/* * *\ |*|*|*|
/ * * * \ |*|*|*|
| * * | |*|*|*|
|* * * * * *| |*|*|*|
------- ------- -------
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
------- ------- -------
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
------- ------- -------
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
------- ------- -------
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
------- ------- -------
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
------- ------- -------
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
------- ------- -------
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
------- ------- -------
* * * |* * * * * *|
| * * |
\ * * * /
\* * */
\ * /
-----------
Voici votre défi:
Étape 1: Dessinez cet art ASCII d'une planche de cribbage. L'espace de fin est correct, à condition qu'il n'y ait pas de différence visible.
Étape 2: Étant donné trois entiers en entrée, affichez chaque cheville dans le trou correct. Les chevilles peuvent être indexées 0 ou indexées 1. Les entrées seront [0-121]
incluses. Vous pouvez prendre ces entrées de toute manière raisonnable, par exemple, 3 entrées distinctes, un tableau, des arguments de ligne de commande, etc. Voici un exemple pour l'entrée (0, 37, 100)
(indexé 1):
* * *
----------- -------
/ * \ |*|*|*|
/* * *\ |*|*|*|
/ 2 * * \ |*|*|*|
| * * | |*|*|*|
|* * * * * *| |*|*|*|
------- ------- -------
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
------- ------- -------
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
------- ------- -------
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
------- ------- -------
|*|*|*| |*|*|*| |*|*|3|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
------- ------- -------
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
------- ------- -------
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
------- ------- -------
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
------- ------- -------
1 * * |* * * * * *|
| * * |
\ * * * /
\* * */
\ * /
-----------
Étape 3: sortie du tout.
Test IO:
Étant donné que chacun d'eux est assez haut verticalement, je n'en inclurai que 2, mais vous pouvez en voir plus à ce github gistub .
#Input: (56, 56, 56)
#Output:
* * *
----------- -------
/ * \ |*|*|*|
/* * *\ |*|*|*|
/ * * * \ |*|*|*|
| * * | |*|*|*|
|* * * * * *| |*|*|*|
------- ------- -------
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
------- ------- -------
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
------- ------- -------
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
------- ------- -------
|*|*|*| |3|2|1| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
------- ------- -------
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
------- ------- -------
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
------- ------- -------
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
------- ------- -------
* * * |* * * * * *|
| * * |
\ * * * /
\* * */
\ * /
-----------
#Input: (120, 89, 23)
#Output:
* * *
----------- -------
/ * \ |1|*|*|
/* * *\ |*|*|*|
/ * * * \ |*|*|*|
| * * | |*|*|*|
|* * * * * *| |*|*|*|
------- ------- -------
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
------- ------- -------
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
------- ------- -------
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|3| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
------- ------- -------
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
------- ------- -------
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
------- ------- -------
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|2|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
------- ------- -------
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
|*|*|*| |*|*|*| |*|*|*|
------- ------- -------
* * * |* * * * * *|
| * * |
\ * * * /
\* * */
\ * /
-----------
Les failles standard s'appliquent et la réponse la plus courte en octets l'emporte!
Réponses:
Python 3, 496 octets
Course à pied (ou d' importer) le code crée une fonction qui est appelée avec les trois joueurs scores:
f(5, 38, 53)
.Version un peu non golfée
z
est une version codée / compressée de la carte cribbage vide.subs
contient une liste de substitutions séparées par des virgules pour décoder / décompresserz
. Dans chaque substitution, la première lettre est la sous-chaîne à remplacer et le reste de la chaîne est le remplacement. Lafor y in subs.split(','):
boucle fait les substitutions. Par exemple,Z|*|*|*|
tous les «Z» sont remplacés par|*|*|*|
. La méthode de compression a été utilisée pour sa simplicité et son efficacité (c'est mieux que le stdlib). Mais il pourrait probablement être amélioré ou remplacé par quelque chose de mieux.Parce que les chaînes Python sont immuables,
b
c'est une liste des personnages du plateau de jeu.R
est une liste cartographiant un joueur et marquant une ligne sur le plateau de jeu ascii. Il utilise «L», qui est une liste ou des numéros de ligne dont les numéros de ligne correspondant aux lignes «-------» ont été supprimés.De même,
C
mappe un joueur et marque une colonne du plateau de jeu ascii.En utilisant
R
etC
, le trou de cheville approprié dans le plateau de jeu peut être défini sur le numéro du joueur.Enfin,
print(*b,sep='')
imprime chaque caractèreb
sans insérer d'espace entre les caractères adjacents. (Économise quelques octets sur l'utilisation de '' .join)la source
Matricks ,
1441980 octetsHourra pour les esolangs!
Edit: compressé en vérifiant chaque nombre dans une boucle pour économiser une tonne d'octets. A également fait la partie inférieure "copier" le haut (j'ai besoin d'une fonction inverse). J'ai également remplacé la plupart des caractères ascii par leurs valeurs brutes pour en enregistrer quelques autres. De plus, j'ai corrigé un bogue dans l'interpréteur où la saisie des nombres ne fonctionnait pas correctement.
Prend entrée sur la ligne de commande:
python matricks.py <filename> [[]] <num1>,<num2>,<num3> --asciiprint
Matricks est un langage de ma propre création. La documentation est sur la page Github. La mise à jour la plus récente était un correctif, aucune nouvelle fonctionnalité ajoutée ou quoi que ce soit.
Répartition de cette solution:
la source
Python 2, 615 octets
La fonction est appelée en passant dans un dictionnaire qui contient les scores. Par exemple:
Le nombre d'octets reflète l'indentation de la boucle "for x" avec des tabulations au lieu d'espaces.
Explication
La première boucle construit la carte horizontalement en une chaîne de 57x27, avec des numéros de piste au lieu de "trous".
La deuxième boucle copie la chaîne, en remplaçant les nombres par des astérisques, sauf aux emplacements des chevilles de notation. Les emplacements des chevilles dans les lignes droites au milieu de la piste ressortent vers l'arrière.
La troisième boucle change l'orientation en verticale, corrigeant les chevilles dans la piste du milieu et ajoutant des caractères de nouvelle ligne.
Essayez-le ici
la source
Lot,
1302109910961079 octetsNon golfé:
la source
Java,
10591035 octetsNon golfé:
Abuse les formats (printfs) comme mad, ce qui explique probablement pourquoi il n'est pas aussi petit qu'il pourrait l'être.
la source