Entrée: un nombre positif, inférieur à 80, à partir de stdin ou comme argument de ligne de commande.
Sortie: Un motif d'échiquier carré, la taille du numéro d'entrée. Les champs sombres sont représentés par la lettre «X», les champs blancs par un espace. Le champ en haut à gauche doit être «X».
Un programme complet est requis.
Exemples:
Entrée : 1
Sortie :
X
Entrée : 8
Sortie :
X X X X
X X X X
X X X X
X X X X
X X X X
X X X X
X X X X
X X X X
Réponses:
Pyth, 13 caractères
Remarque: Pyth est beaucoup trop nouveau pour être admissible à gagner. Cependant, c'était un golf amusant et j'ai pensé le partager.
Essayez-le ici.
Comment ça fonctionne:
Fondamentalement, cela utilise
X
pour générer"X "
ou" X"
alternativement, puis répète cette chaîneQ
fois et prend ses premiersQ
caractères. C'est répété plusieursQ
fois.Comment fonctionne la fonction
X
(assign at)? Il prend la chaîne d'origine," "
dans ce cas, un emplacement d'affectation,N
dans ce cas, et un caractère de remplacement,"X"
dans ce cas. Étant donné que les affectations de Pyth sont modulaires, cela remplace l'espace à l'emplacementN%2
par unX
, et renvoie la chaîne résultante, qui se trouve donc"X "
sur les première, troisième, etc. lignes, et" X"
sur les autres.la source
Golfscript - 17 caractères
Une analyse
~
convertir l'entrée en un:N
magasin int dans la variable N,{...}
pour chaque valeur de [0 ... N-1]"X "N*
répéter "X" pour donner une chaîne de N * 2 caractères>
prendre la sous-chaîne à partir de l'index de boucle ...N<
... mettre fin à N caractères plus tardn
mettre une nouvelle ligne à la fin de chaque chaînela source
Perl,
4140Perl 5.10 ou version ultérieure, exécuté avec
perl -nE 'code'
(n
compté dans la taille du code)Exemple de sortie:
la source
x
est l'opérateur de répétition de chaînes.'a' x 3
rendements'aaa'
.Python, 48 caractères
la source
Python, 76 caractères
la source
Scala -
14195 caractèresUtilisation:
scala filename N
où n est votre entrée dans le programme.la source
APL (16)
En supposant
⎕IO=0
(c'est-à-dire des tableaux indexés zéro, c'est un paramètre)Explication:
⍳2⍴⎕
: lire un nombre N, et créer une matrice N × N contenant (0,0) à (N-1, N-1).2⊤¨
: obtenir le bit le moins significatif de chaque nombre dans la matrice. (Nous avons donc maintenant (0,0), (0,1), (0,0) ... (1,0), (1,1), (1,0) ...)=/¨
: pour chaque paire, voyez si les deux nombres sont égaux. (Maintenant, nous avons 1 0 1 0 1 0 ...)' X'[
...]
: mettez un espace pour chaque 0 et un X pour chaque 1.la source
Rubis
4542Démo: http://ideone.com/Mw25e
la source
(x=gets.to_i).times
enregistre trois caractères. Pourquoi le soudain regain d'intérêt pour cet ancien?Python
48 caractèresEDIT: Un peu mal ... Il y a un espace supplémentaire à la fin ... mais ce n'est pas visible. Si vous changez l'espace en «O» (ou tout caractère non blanc), modifiez-le
[i%2:n]
en[i%2:n+i%2]
. pour la version correcte.la source
C ++ - 253 caractères obscurcis
la source
JavaScript, 169
la source
+'1'
au lieu deparseInt('1')
. Ne vous donnera pas un entier, mais je ne pense pas que ce soit un entier est important ici, n'est-ce pas?k (26 caractères)
26 Pour la fonction nue:
Ou 7 autres pour prendre la contribution de stdin
la source
Bash: 60 caractères
Par exemple, la taille de la table est transmise en tant que paramètre de ligne de commande
bash chesstable.sh 8
.la source
Java 10, fonction lambda,
928784 octetsEssayez-le en ligne ici .
Merci à plafondcat pour avoir joué au golf 4 octets et à Kevin Cruijssen pour avoir joué au golf 3 autres.
Version non golfée:
Java 8, programme complet,
155139 octetsEssayez-le en ligne ici .
Version non golfée:
la source
s+=
est 2 octets plus court que ces parenthèses:n->{var s="";for(int i=0;i<n*n;s+=++i%n<1?"\n":"")s+=(i%n+i/n)%2<1?"X":" ";return s;}
n->{for(int i=0;i<n*n;)System.out.print(((i%n+i/n)%2<1?"X":" ")+(++i%n<1?"\n":""));}
. Essayez-le en ligne."X ".charAt(i%n+i/n&1)
place de((i%n+i/n)%2<1?"X":" ")
Japt,
87 octetsExécutez-le en ligne
76 octets si l'on peut remplacerX
parx
:Exécutez-le en ligne
Solution alternative à 8 octets :
Exécutez-le en ligne
la source
APL (Dyalog Extended) , 12 octets SBCS
Fonction de préfixe tacite anonyme. A besoin
⎕IO←0
(indexation à base zéro).Essayez-le en ligne!
⍳
ɩ ndices 0… n – 1+⍀
plus un tableau avec cela horizontalement et verticalement:⍳
ɩ ndices 0… n – 12|
reste de division lorsqu'il est divisé par deux'X '⊇⍨
utiliser cette matrice pour indexer dans la chaînela source
Scala, 68 octets
ou
Essayez-le en ligne!
la source
Brainfuck, 140 octets
la source
Javascript, 67 octets
Essayez-le en ligne
C, 83 octets
Essayez-le en ligne
C64 de base, 89 octets
la source
on...go to
commande de manière conditionnelle, commeON-(I+JAND1)GOTO3:?"X";:
lorsqu'elle est nulle, elle passera à l'instruction suivante, dans ce cas, si(I + J AND 1) === 0
elle imprime le X. Cela vous permet de regrouper plus d'instructions par ligne et d'économiser des octets.Scala, 40 et 54
Le nombre de caractères est de 40 pour une fonction, 54 pour un programme complet.
La solution ne donnant qu'un corps de fonction est:
("X "*n)sliding n take n foreach println
Essayez-le en ligne
La solution donnant un programme complet est:
val n=readInt;("X "*n)sliding n take n foreach println
Vous pouvez l'exécuter à l'aide de la ligne de commande suivante.
scala -e 'val n=readInt;("X "*n)sliding n take n foreach println' <<< 8
où 8 est l'entrée.
la source
("X "*n)sliding n take n map println
Python - 127 caractères
la source
C -
9286la source
Q, 33
la source
{(x;x-1-x mod 2)#"X "}
pour 22 ... ah non, a le même bug que le vôtre - n'a pas 4 X sur les rangées impaires pour l'entrée 8.Rubis 58
la source
PHP - 136 caractères (sans espace)
Permet l'entrée des fonctions x et y.
Prend également en charge les entrées impaires maintenant.
Si vous définissez la sortie pour qu'elle ait une hauteur de ligne de 0,65 em et que vous modifiez ▒█ et █ ° en □ ■ et ■ □, cela ressemble à un véritable échiquier (carré).
Code:
Production:
la source
PHP, 87
la source
CJam, 18 octets
J'aurais probablement pu porter la réponse GolfScript, mais voici une approche différente. (Et CJam n'est pas éligible pour gagner de toute façon.)
Testez-le ici.
L'idée est d'itérer sur la grille 2D avec des indices x et y sur la pile, en utilisant l'
f{f{...}}
astuce . Étant donné x et y, nous pouvons simplement déterminer le noir et blanc as(x+y)%2
et l'utiliser pour choisir entre le caractèreX
et une chaîne contenant un espace.la source
J, 21 caractères
J manquait aussi.
Précédent, 22 caractères:
Codes de caractères du modèle mod2 de
row #
+column #
:la source
([:{&' X'=/~@$&1 0)
$"1[:|.&'X '"+i.
Essayez-le en ligne!VB.net, 161
la source
PHP, 75 octets
la source