Écrivez un programme ou une fonction qui prend trois entiers positifs, W, H et N. Imprimez ou renvoyez une grille de W × H .
où chaque Nième .
dans l'ordre de lecture anglais normal est remplacé par un X
.
Par exemple, étant donné W = 7, H = 3, N = 3, la grille a 7 caractères de large et 3 de haut, et une lecture sur trois en haut à gauche est un X
:
..X..X.
.X..X..
X..X..X
De même, si l'entrée est W = 10, H = 4, N = 5, la sortie serait:
....X....X
....X....X
....X....X
....X....X
Remarques
- «Ordre de lecture anglais normal» signifie aller de gauche à droite sur chaque ligne, de la ligne du haut vers le bas.
- Lorsque N est égal à 1, tous les
.
«deviendrontX
». - Vous pouvez utiliser deux caractères ASCII imprimables distincts à la place de
.
etX
.- Si vous utilisez space (
- Vous ne pouvez pas utiliser autre chose à la place des nouvelles lignes qui façonnent la grille.
- Si vous utilisez space (
- Le format d'entrée exact et l'ordre de W, H et N ne sont pas super importants. Des choses comme
[H,W,N]
ouN\nW,H
vont bien. - Une nouvelle ligne de fin dans la sortie est très bien.
- Le code le plus court en octets gagne!
Exemples
W = 5, H = 3, N = 1
XXXXX
XXXXX
XXXXX
W = 5, H = 3, N = 2
.X.X.
X.X.X
.X.X.
W = 5, H = 3, N = 3
..X..
X..X.
.X..X
W = 5, H = 3, N = 4
...X.
..X..
.X...
W = 5, H = 3, N = 5
....X
....X
....X
W = 5, H = 3, N = 6
.....
X....
.X...
W = 5, H = 3, N = 7
.....
.X...
...X.
W = 5, H = 3, N = 15
.....
.....
....X
W = 5, H = 3, N = 16 (or more)
.....
.....
.....
W = 1, H = 1, N = 1
X
W = 1, H = 1, N = 2 (or more)
.
W = 8, H = 6, N = 2
.X.X.X.X
.X.X.X.X
.X.X.X.X
.X.X.X.X
.X.X.X.X
.X.X.X.X
W = 8, H = 6, N = 3
..X..X..
X..X..X.
.X..X..X
..X..X..
X..X..X.
.X..X..X
W = 8, H = 6, N = 4
...X...X
...X...X
...X...X
...X...X
...X...X
...X...X
W = 8, H = 6, N = 7
......X.
.....X..
....X...
...X....
..X.....
.X......
W = 8, H = 6, N = 16
........
.......X
........
.......X
........
.......X
W = 37, H = 1, N = 4
...X...X...X...X...X...X...X...X...X.
W = 1, H = 10, N = 8
.
.
.
.
.
.
.
X
.
.
code-golf
arithmetic
grid
Loisirs de Calvin
la source
la source
["..X..X.", ".X..X..", "X..X..X"]
comme grille "?Réponses:
J,
95 octetsUtilise les espaces et
1
les et attend l'entrée dans le formulaireH W f N
Explication:
Usage:
Essayez-le en ligne ici.
la source
($":&1)
, cela ne compterait-il pas comme 7 octets?()
ils ne font pas partie de la fonction; vous pourriez écriref =. $":&1
et ensuite3 7 f 3
.Python 2, 60 octets
Cela imprime l'espace et
0
à la place de.
etX
. L'entrée est considérée comme un tuple sous la forme dew,h,n
.la source
J, 12 octets
Il s'agit d'une fonction dyadique qui prend le tableau
H W
comme argument de gauche et argumentN
de droite. Usage:Explication
la source
X.
vraiment la plus courte?_1
parenthèses et formater les espaces entre les colonnes, et cela a fini par être plus long.BBC Basic, 67 caractères ASCII, taille de fichier à jeton 43 octets
Téléchargez l'interprète sur http://www.bbcbasic.co.uk/bbcwin/download.html
BBC basic dispose d'une commande pratique pour limiter la largeur du champ. Nous utilisons
STRING$
pour faire desw*h
copies de la chaîne den-1
points suivie d'un X. Ensuite, nous utilisons LEFT $ pour le tronquer enw*h
caractères.la source
Minkolang 0,14 ,
34302822 octetsVérifiez un cas ici et vérifiez tous les cas de test ici. Attend une entrée comme
N W H
.Explication
Comme la boîte à codes de Minkolang est toroïdale, cela se terminera au début. Comme tout le monde
n
va maintenant en prendre-1
, cela se bloque finalement avec une erreur et aucune sortie supplémentaire, ce qui est autorisé.la source
CJam (16 octets)
Prend l'entrée sur la pile dans l'ordre
N W H
, retourne la chaîne en utilisant les caractères0
et1
. Démo en ligneDissection
la source
APL, 13 octets
Cela prend
H W
comme argument de gauche etN
comme argument de droite.Explication:
Essayez-le en ligne: premiers cas de test , dernier cas de test . Notez que bien que cela montre une sortie encadrée, ma copie de Dyalog ne le fait pas.
la source
CJam, 20 octets
Prend l'entrée comme HW N.
la source
q~_@*,@(S*'X+f=/N*
avec entrée dans l'ordre NH W.'X
par0
, et ce sera 17MATLAB,
61 5554 octetsWow, je pensais que MATLAB serait compétitif dans celui-ci, mais comme je me trompais!
La fonction crée un tableau de 1 de dimensions correctes, puis définit chaque nième élément sur 0 (MATLAB gère implicitement le passage des index en 2D). Nous ajoutons ensuite 45 ('-') à ce nombre et convertis en un tableau de caractères à renvoyer.
Les questions permettent d'utiliser deux caractères ASCII distincts pour la grille, j'utilise '-' à la place de 'x' pour économiser quelques octets. Le format d'entrée n'est pas non plus fixe, il doit donc être fourni comme
[w h],n
- c'est-à-dire un tableau de largeur et de hauteur, puis n comme second paramètre.Cela fonctionne également avec Octave et peut être essayé en ligne ici . La fonction est déjà configurée dans l'espace de travail lié, vous pouvez donc simplement appeler par exemple:
Quelles sorties:
la source
c=[b'+45,''];
Traitement, 93 octets (Java, 104 octets)
La raison pour laquelle j'ai utilisé le traitement au lieu de Java est que vous n'avez pas besoin d'accéder au pointeur en basculant
System.out
car une variable locale est directement accessible. J'ai gagné 11 octets avec ça. La fonction ne renvoie pas le résultat mais l'imprime.la source
i++%a...
), et il semble que vous ayez laissé une pièce}
de rechange à la fin dont vous n'avez pas besoin, également.Japt ,
33322725 octetsPrend l'entrée au format
et
W H N
. Utilise"
à la place de.
etX
, respectivement. Essayez-le en ligne!Non golfé et explication
Bienvenue suggestions!
la source
Vitsy ,
2523222119 octetsMerci à @ Sp3000 d'avoir souligné que je n'ai pas besoin de doublon et de m'avoir sauvé 2 octets!
Prend l'entrée comme
N W H
. Essayez-le en ligne!la source
K,
21191814 octetsPrend des arguments comme
(H W;N)
:En action:
la source
Pyth -
191817 octetsAu plaisir de jouer au golf plus. Prend l'entrée comme
N\n[W, H]
.Suite de tests .
la source
R, 66 octets
Il s'agit d'une fonction qui accepte trois entiers et renvoie une matrice de valeurs de caractères. Pour l'appeler, affectez-le à une variable.
Non golfé:
la source
JavaScript (ES6),
6560 octetsExplication
Tester
Afficher l'extrait de code
la source
Mathematica, 85 octets
Comme avec de nombreuses autres solutions, cela crée une seule ligne, puis la partitionne.
la source
JavaScript (ES6), 55 octets
Utilise l' IIFE
f
pour boucler pour enregistrer une instruction de retour.Sortie pour w = 5, h = 3, n = 7:
la source
C #, 185 octets
Pour une lecture plus lisible:
Usage:
la source
Julia, 50 octets
Cela crée une fonction
f
qui accepte trois entiers et renvoie un tableau de chaînes à deux dimensions.Non golfé:
la source
Rubis,
6756 octetsImpression d'un tableau car il est accepté.
67 octets
Non golfé:
Usage:
la source
MATLAB, 44 octets
Remarque: approche très différente de celle utilisée par Tom Carpenter.
Définit une fonction anonyme qui accepte les entrées en tant que
[W,H],N
. J'ai abordé ce problème en utilisant not-the-modulo-of- N pour un tableau 1: W * H, puis en remodelant simplement la solution en un tableau bidimensionnel, qui est ensuite converti en un tableau de caractères.Exemple de sortie pour
[5,3],7
:la source
Lisp commun, SBCL, 94 octets
Explication
(=(mod(1+ i)c)0)(=(mod(1+ i)a)0)
semble assez idiot (parce que c'est tellement similaire mais je ne sais pas si cela peut être résolu, économisant des octetsJ'utilise
(1+ i)
au lieu dei
parce quedotimes
commence à partir dei=0
et je veux partir de1
. C'est aussi utile parce que je peux utiliser(* a b)
au lieu de(1+(* a b))
la source
Java,
185183 octetsMerci Thomas Kwa de m'avoir sauvé 2 octets!
Non golfé (ish):
Usage:
Peut-être que java gagnera un jour: P
la source
>0
place de!=0
et<1
au lieu de==0
.