C'est vendredi et je suis fatigué, alors faisons-en un rapide! Ne prenez aucune entrée, mais vous devez sortir les treize cartes numérotées différentes dans un jeu de cartes standard. Vous devez sortir 2 via Ace (Suit agnostic).
Chaque carte a un dessus qui est indiqué par un espace
et dix _
et un autre espace
.
La deuxième ligne à partir du haut est indiquée par un /
et dix espaces
et un\
La troisième ligne est la même que toutes les lignes du milieu sauf les caractères indiquant la valeur de la carte apparaissent deux espaces à droite (si en haut) ou deux espaces à gauche (si en bas) du bord.
Chaque ligne du milieu est un simple |
et dix espaces
et un de plus|
Enfin, la dernière ligne est un \
et dix _
et enfin un/
Si la valeur est à plusieurs chiffres, la largeur totale en hauteur de la carte ne doit pas changer. (c'est-à-dire que le 10 n'élargira pas les côtés de la carte)
Exemple roi:
__________
/ \
| K |
| |
| |
| |
| |
| |
| K |
\__________/
9 Exemple
__________
/ \
| 9 |
| |
| |
| |
| |
| |
| 9 |
\__________/
10 Exemple
__________
/ \
| 10 |
| |
| |
| |
| |
| |
| 10 |
\__________/
Sortez-les dans l'ordre du plus petit au plus grand (les As sont élevés!).
C'est le code-golf donc le code le plus court l'emporte.
Amusez-vous et passez un week-end amusant!
la source
Réponses:
PowerShell v2 +,
120116114108 octetsConstruit une plage
2..10
et effectue la concaténation de tableau avecchar
-arrayJQKA
. Alimente cela dans une boucle|%{...}
. Chaque itération, nous définissons$z
égal à un nombre approprié d'espaces (selon que nous sommes à la carte10
ou non), défini$x
sur des10
traits de soulignement et défini$y
sur des10
espaces.Ensuite, nous commençons nos stages. Nous allons tirer parti de la valeur par défaut
Write-Output
pour insérer une nouvelle ligne entre les éléments du pipeline, nous avons donc juste besoin de mettre les choses sur le pipeline. Notez que dans la plupart des endroits, nous utilisons une nouvelle ligne littérale plutôt que de fermer et de rouvrir nos chaînes pour économiser quelques octets.Le premier est juste
$x
avec deux espaces, puis$y
avec deux barres obliques, puis| $_$z|"
le tuyau, un espace, le nombre approprié d'espaces et un autre tuyau. Cela forme le haut des cartes jusqu'à et y compris la ligne de valeur.Nous devons mettre un point-virgule ici, car le suivant utilise un tableau. Le
,"|$y|"*5
construit un tableau de chaînes, avec l'opérateur virgule, du tuyau avec des espaces - en sortie, chaque élément de ce tableau obtient une nouvelle ligne gratuitement.Ensuite, le
"|$z$_ |
pour la marque de valeur inférieure, et enfin$x
avec des barres obliques pour le bas de la carte.Extrait de sortie
la source
Python,
161160156149 149 octetsUn octet enregistré par Shebang
Cela pourrait nécessiter du travail, mais voici:
Explication
Nous faisons une liste de tous les rangs dans l'ordre en utilisant
map(str,range(2,11)
. Ensuite, nous parcourons chacun des rangs et faisons une carte.Nous faisons le haut de la carte:
Ensuite, le rang va à gauche:
Nous utilisons
.ljust
car10
est long et tous les autres sont larges.Ensuite, nous imprimons les 5 lignes au milieu:
et le dernier rang:
Enfin, nous imprimons le bas de la carte:
la source
v="_"*10
et remplacez ces instances, vous économiserez un autre octet!JavaScript (ES6), 151 octets
la source
Perl,
128117111 octetsLes 6 nouvelles lignes littérales économisent 1 octet chacune. Cela ne peut pas être exécuté directement à partir de la ligne de commande en raison des guillemets simples dans les lignes 2 et 4 afin d'économiser 1 octet sans avoir à échapper à une barre oblique inverse.
Edit: j'ai mis Ace au début, mais c'est censé être à la fin. Cela ne change pas le nombre d'octets.
Edit 2: -11 octets: Débarrassé de quelques déclarations inutiles et ajouté un autre saut de ligne littéral. Tout est maintenant sorti via un seul printf.
Edit 3: -5 octets grâce à @Ton Hospel. Mais pour une raison quelconque, je reçois 111 octets au lieu de 112 à la maison par rapport au travail, donc je vais avec le nombre d'octets que mon ordinateur personnel me donne.
la source
_ x10
au lieu de"_"x10
. Aussiqw
n'est presque jamais utile. au golf. UtilisezJ,Q,K,A
plutôt des guillemets (même en laissant de côté le()
)Can't locate object method "_" via package "x10" (perhaps you forgot to load "x10"?) at shuffle.pl line 1.
je ne sais pas pourquoi, mais je ne me battrai pas contre l'interprète :(\n
par une vraie nouvelle ligne):printf' %2$s\n/%3$10s\\n| %-9s|\n'.'|%3$10s|\n'x5 .'|%1$9s |\n\%s/\n',$_,"_"x10for 2..10,J,Q,K,A
PHP, 233 octets
la source
if
peut être remplacé par$k>9&&$c[29]=$c[113]=0&$c[112]=1;
, pour économiser quelques octets. En outre, Notepad ++ indique que votre code est en fait de 241 octets. Je sais qu'un de ces octets provient de la nouvelle ligne. Mais l'autre est un mystère pour moi.///,
182180 octetsEssayez-le en ligne!
-2 octets grâce à m-chrzan
la source
+
remplaçant seulement 5_
s, puis en ayant deux+
s là où vous avez des+
s maintenant.Python 3.5, 110 octets
Impressions
' %s\n/%%11s\n'%u%'\\'
oùu
est'_'*10
'| %-2s %2s |\n'
, chacune ayant deux emplacements de formatage de chaîne. Le premier et le dernier sont remplis avec la valeur de la carte, et le reste avec des espaces sans effetLes nouvelles fonctionnalités de déballage de Python 3.5 sont utilisées à deux endroits. La liste des étiquettes
[*range(2,11),*'JQKA']
décompresse les chiffres et les lettres en une seule liste. Et, le tuple(c,*' '*12,c)
déballe douze entrées d'espaces au centre.la source
Scala, 161 octets
la source
Lot, 236 octets
J'ai essayé de jouer au golf de trois manières différentes, mais j'ai fini avec le même nombre d'octets à chaque fois ...
la source
05AB1E ,
717068666564 octetsUtilise CP-1252 encodage .
Lien légèrement modifié car
…
ne fonctionne pas avecÿ
TIO atm.Essayez-le en ligne!
Explication
TL¦"JQKA"S«
pousse la liste[2,3,4,5,6,7,8,9,10,J,Q,K,A]
Nous bouclons ensuite sur chaque valeur de carte avec
v
ð'_Tשð
construit" __________ "
ðT×…/ÿ\
construit"/ \"
9yg-ð×y"| ÿÿ|"Â
construit les 2 lignes avec des valeurs de carte (la deuxième ligne est la première inversée)ðT×…|ÿ|5×
construit 5 lignes du formulaire"| |"
Ensuite nous
®…\ÿ/
construit la rangée du basla source
V , 87 octets
Essayez-le en ligne!
Puisqu'il contient des éléments non imprimables, voici un hexdump:
la source
PHP,
135131158134 octetsSi tout va bien, je peux trouver un moyen de raccourcir un peu plus.
Cela permet de
printf
répéter plusieurs caractères et de tout formater correctement.Ancienne version:
Pas exactement un morceau de beauté, mais ça marche!
Merci à Jörg Hülsermann d' avoir détecté un bug et de m'avoir permis d'utiliser une partie de son code, qui l'a réduit de 4 octets! Et pour avoir trouvé un bug fatal.
la source
10
est buggé. Est-ce que ça va si j'utilise votre tableau? Utiliser[2,3,4,5,6,7,8,9,10,J,Q,K,A]
au lieu de ce fractionnement me fait gagner 4 octets. Si vous ne l'autorisez pas, je comprendrai.$C$S
$C".($P=substr($S,$C>9))."
gérer les espaces avec une valeur de 10 et au lieu de$S$C
vous avez besoin alors$P$C
Rubis, 115 octets
Utilisation assez simple de
printf
.la source
Raquette 327 octets
Non golfé:
Essai:
Production:
la source
Java 7, 287 octets
Ok, c'est moche et pas très efficace, mais ça marche .. C'est
10
comme cas particulier avec un espace avant en haut et après en bas vraiment vis avec tout le monde ..Code non testé et testé:
Essayez-le ici.
Production:
la source
R, 175 octets
Une réponse assez compétitive en R cette fois pour un défi d'ascii-art et devrait certainement être jouable au golf.
Essayez-le sur R-fiddle
Non golfé et expliqué
L'aspect le plus intéressant où quelques octets sont enregistrés est l'affectation de la troisième ligne:
Parce qu'il y a des
8
espaces au total entre le caractère indiquant la valeur de la carte et la finale|
(sauf pour10
), nous pouvons répéter les9
espaces et soustraire le nombre de caractères dans la carte actuellement imprimée.En stockant chaque caractère de la
3rd
ligne comme son propre élément dans le vecteur chaîne,r
nous pouvons inverser le vecteur et le réutiliser pour la9th
ligne.la source
C #, 385 octets
Mon premier défi ASCII Art - c'était amusant!
Golfé:
Non golfé:
la source
En fait , 91 octets
Essayez-le en ligne!
Explication
Partie 1: établir la liste des valeurs faciales:
Partie 2: création des cartes (nouvelle ligne remplacée par
\n
pour plus de lisibilité):la source