Considérez ces 15 modèles de cartes à jouer ASCII (as à travers Joker et l'arrière), où se X
trouve un espace réservé pour le symbole de la combinaison : (ils sont plus beaux avec moins d'espacement des lignes)
------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- -------------
|AX | |2X | |3X | |4X | |5X | |6X | |7X | |8X | |9X | |10X | |JX | |QX | |KX | |J | |* * * * * * *|
| ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | |O ------- | | * * * * * * |
| | | | | | | | | | | | | |X X| | | |X X| | | |X X| | | |X X| | | |X X| | | |X X| | | |X X| | | |X | | | |X | | | |X | | |K | | | |* * * * * * *|
| | | | | | X | | | | X | | | | | | | | | | | | | | | | X | | | | X | | | | | | | | X | | | | | | | | | | | | | | |E | J | | | * * * * * * |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |X X| | | |X X| | | | | | | | | | | | | | |R | O | | |* * * * * * *|
| | X | | | | | | | | X | | | | | | | | X | | | |X X| | | |X X| | | |X X| | | | X | | | | | | | | J | | | | Q | | | | K | | | | K | | | * * * * * * |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |X X| | | |X X| | | | | | | | | | | | | | | | E | J| |* * * * * * *|
| | | | | | X | | | | X | | | | | | | | | | | | | | | | | | | | X | | | | | | | | X | | | | | | | | | | | | | | | | R | O| | * * * * * * |
| | | | | | | | | | | | | |X X| | | |X X| | | |X X| | | |X X| | | |X X| | | |X X| | | |X X| | | | X| | | | X| | | | X| | | | | K| |* * * * * * *|
| ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- E| | * * * * * * |
| XA| | X2| | X3| | X4| | X5| | X6| | X7| | X8| | X9| | X10| | XJ| | XQ| | XK| | R| |* * * * * * *|
------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- -------------
Écrivez un programme qui prend une chaîne indiquant une séquence de cartes séparées par des espaces en utilisant ...
A 2 3 4 5 6 7 8 9 10 J Q K
suivi d'unC D H S
(pour les clubs, les diamants, les cœurs et les piques) pour les 52 cartes standard.- Un single
R
pour un Joker. - Un simple
B
pour la face arrière (une carte face cachée).
Ainsi, la chaîne B AS KH 10C R JD
dénote une carte face cachée, suivie d'un as de pique, suivi d'un roi de cœur, suivi d'une dizaine de gourdins, suivi d'un Joker, suivi d'un valet de diamants.
Votre programme doit imprimer les cartes à jouer ASCII correspondantes sur stdout, en les remplaçant X
par le symbole de costume approprié.
Par exemple, la sortie pour B AS KH 10C R JD
serait
------------- ------------- ------------- ------------- ------------- -------------
|* * * * * * *| |AS | |KH | |10C | |J | |JD |
| * * * * * * | | ------- | | ------- | | ------- | |O ------- | | ------- |
|* * * * * * *| | | | | | |H | | | |C C| | |K | | | | |D | |
| * * * * * * | | | | | | | | | | | C | | |E | J | | | | | |
|* * * * * * *| | | | | | | | | | |C C| | |R | O | | | | | |
| * * * * * * | | | S | | | | K | | | | | | | | K | | | | J | |
|* * * * * * *| | | | | | | | | | |C C| | | | E | J| | | | |
| * * * * * * | | | | | | | | | | | C | | | | R | O| | | | |
|* * * * * * *| | | | | | | H| | | |C C| | | | | K| | | D| |
| * * * * * * | | ------- | | ------- | | ------- | | ------- E| | ------- |
|* * * * * * *| | SA| | HK| | C10| | R| | DJ|
------------- ------------- ------------- ------------- ------------- -------------
Vous pouvez prendre l'entrée de stdin ou écrire une fonction qui prend une chaîne.
La soumission avec le plus petit nombre de caractères gagne.
Bonus: soustrayez 30 de votre nombre de personnages si vous utilisez les symboles de costume noir Unicode♣ ♦ ♥ ♠
au lieu de C D H S
dans votre sortie. (L'entrée utilise toujours C D H S
.)
Remarques
- Il peut y avoir plus de 54 cartes dans la chaîne d'entrée et il peut y avoir des doublons de n'importe quelle carte.
- Il ne devrait pas y avoir de sortie si l'entrée est la chaîne vide.
- Il ne doit y avoir aucun espace de fin en plus (éventuellement) des deux qui composent les coins droits de la dernière carte.
- Vous pouvez supposer que l'entrée est valide.
- Mise à jour: l' étiquette en bas à droite sur les cartes standard a été inversée afin que la valeur soit dans le coin. L'étiquette Joker en bas à droite n'a pas changé.
la source
Réponses:
JavaScript (E6) 542 (572 - bonus 30)
553 564 5763 types de formes:
La
z
chaîne (compressée) contient les blocs de construction de base pourRemarque sur le bonus Le code pour gagner le bonus de 30 points est de 29 caractères.
Test dans la console FireFox / FireBug
Production
Code non joué
la source
C # - 906
Programme C # assez grand et simple qui prend les entrées et sorties de ligne de commande vers la sortie standard. Il y a probablement beaucoup de choses qui peuvent encore être jouées au golf, j'ai repéré quelques octets ennuyeux en écrivant ceci, mais cela devra attendre. Je ne pense pas que j'irai pour le bonus de personnage de costume Unicode.
Code golf:
Exemple de sortie pour
cardGolf.exe 7H QH 3S B R
La plupart du rendu est effectué par la
P
méthode anonyme, qui prend une position, une longueur, une chaîne et une largeur, et rend un rectangle de la chaîne bout à bout. Par exemple, le dos de la carte est simplement"* "
répété. LaT
méthode anonyme est une version modifiée de celle que j'ai utilisée pour une tâche précédente, qui rend beaucoup de rectangles. Il est cependant assez volumineux et ne me permettrait que de rendre les bordures et l'arrière-plan en moins d'octets, ce qui ne vaut probablement pas la peine. Une version rayée deT
estW
qui rend les cellules plutôt que les rectangles, et n'est pas non plus utilisée, mais une version en ligne est utilisée pour rendre les cartes de valeur 2 à 10. Notez que le code inutilisé était supprimé pour le nombre d'octets, je le laisse parce que je peux finir par l'utiliser, et je les utilise pour les tests.Le programme parcourt simplement chaque ligne de sortie (13 d'entre elles), puis rend chaque carte à son tour, puis en extrait 1 tranche, de sorte que chaque carte est rendue dans son intégralité 13 fois. Dans le but de les espacer, chaque carte est traitée comme un bloc de 16 par 13, et je coupe chaque ligne de sortie pour supprimer les espaces de fin (les espaces de coin sont supprimés).
Code formaté, avec commentaires et code concept / test:
la source
PowerShell , score 442 = (
509495472 octets = (156 scripts + 316 archives) - 30 bonus)Essayez-le en ligne!
Déroulé:
Script Powershell pour créer l'archive tar
t
(voir TIO):la source