Étant donné deux nombres entiers positifs, «a» et «b», affichez une «boîte» ascii-art qui est un caractère large et b caractères haut. Par exemple, avec «4» et «6»:
****
* *
* *
* *
* *
****
C'est simple, non? Voici la torsion: la bordure de la boîte doit être composée des caractères "a" et "b" alternés. Cela commence dans le coin supérieur gauche et se poursuit dans une spirale dans le sens horaire. Par exemple, l'exemple précédent avec 4 et 6 devrait être
4646
6 4
4 6
6 4
4 6
6464
A et B peuvent être des nombres à deux chiffres. Par exemple, les entrées "10" et "3" devraient produire ceci:
1031031031
1 0
3013013013
Afin de conserver une sortie relativement petite, vous n'avez pas à prendre en charge trois numéros ou plus. De plus, comme les entrées sont limitées aux entiers positifs , «0» est une entrée non valide, que vous n'avez pas à gérer.
Voici quelques cas de test supplémentaires:
Input: (3, 5)
Output:
353
5 5
3 3
5 5
353
Input: (1, 1)
Output:
1
Input: (4, 4)
Output:
4444
4 4
4 4
4444
Input: (27, 1)
Output:
271271271271271271271271271
Input: (1, 17)
Output:
1
1
7
1
1
7
1
1
7
1
1
7
1
1
7
1
1
Input: (12, 34):
Output:
123412341234
4 1
3 2
2 3
1 4
4 1
3 2
2 3
1 4
4 1
3 2
2 3
1 4
4 1
3 2
2 3
1 4
4 1
3 2
2 3
1 4
4 1
3 2
2 3
1 4
4 1
3 2
2 3
1 4
4 1
3 2
2 3
1 4
432143214321
Vous pouvez prendre l'entrée et la sortie dans n'importe quel format raisonnable, et les failles standard sont interdites. Puisqu'il s'agit de code-golf, la réponse la plus courte en octets gagne!
a
est 1, est-ce le mur de gauche ou le mur de droite?Réponses:
Pyth ,
6551 octetsEssayez-le en ligne!
la source
C #, 301 octets
Je suis sûr qu'il y a beaucoup plus de golf à faire ici, mais je suis juste content d'avoir une solution qui a fonctionné.
J'ai trouvé un bug où le résultat était dans le mauvais ordre, bon sang!
Ancienne version: 280 octets
la source
Python 2, 199 octets
la source
Rubis, 128 octets
Affiche une nouvelle ligne de fin si la hauteur est 1.
Lien Ideone: https://ideone.com/96WYHt
la source
[w,h]*""
place de"%d%d"%[w,h]
4 octets, et vous n'avez pas besoin des parenthèsess[q-2,w].reverse
, mais vous aurez besoin d'un espace après le:
, donc -1 octet.JavaScript,
213212202Il y a sûrement matière à amélioration.
Edit: enregistré un octet grâce à TheLethalCoder
la source
`${c}${a}`.repeat(l+1)
pourrait vous faire économiser un octet.W=W.substr(0,a-2).replace(/./g," ")
la même chose queW=" ".repeat(a-2)
? (Votre code fonctionne-t-il réellementa=1
?)C, 311 octets
Utilise automatiquement les bibliothèques
stdio.h
etstring.h
.la source
JavaScript (ES6), 171 octets
Où
\n
représente le caractère de nouvelle ligne littéral. Crée une chaîne de chiffres répétée, puis décide quoi concaténer en fonction de la ligne sur laquelle nous sommes; la ligne du haut n'est que la tranche initiale de la chaîne de chiffres répétée, la ligne du bas (le cas échéant) est une tranche inversée du milieu de la chaîne, tandis que les lignes intermédiaires sont constituées à l'aide de caractères provenant d'autres parties de la chaîne.la source
(w,h)=>
pourw=>h=>
enregistrer un octetTSQL, 291 octets
Golfé:
Non golfé:
Violon
la source
Python 3,
155148 bytesGolfé 7 octets de plus:
Remplacé
2*w+2*h-4or 1
parmax(1,2*w+2*h-4)
et['',s[-i-1]][w>1]
pour(s[-i-1]if w>1else'')
.Version précédente:
la source