Vous ne voulez pas payer pour le programme architectural coûteux, vous décidez donc de lancer le vôtre. Vous décidez d'utiliser ASCII pour concevoir vos bâtiments. Votre programme prendra en une seule chaîne formatée d'une manière spécifique, et le programme sortira le bâtiment.
Contribution
L'entrée se compose d'une seule ligne de caractères. On peut supposer qu'il ne contient que les lettres a-j
, les chiffres 1-9
et les symboles -
et +
.
Description de sortie
Pour chaque lettre a-j
, le programme affichera une ligne verticale comme suit. Nous appellerons cela une colonne.
.
..
...
****
*****
******
-------
--------
+++++++++
++++++++++
abcdefghij
Par exemple, l'entrée abcdefgfedefghgfedc
produirait:
.
* ***
*** *****
***** *******
---------------
-----------------
++++++++++++++++++
+++++++++++++++++++
Une lettre peut être préfixée par un entier positif n
, ce qui ajoutera des n
espaces blancs sous la colonne. Nous appellerons cela un décalage. Par exemple, en utilisant S
pour noter un espace, l'entrée 3b2b3b
produirait:
+ +
+++
S+S
SSS
SSS
Une lettre peut également être préfixée par un entier négatif-m
, ce qui supprimera les caractères m
non blancs en bas de la colonne (ne les remplacez pas par des blancs, supprimez-les entièrement). Nous appellerons cela une tranche. Par exemple, l'entrée -1j-2j-3j-4j-5j-6j-7j-8j
produirait:
.
..
...
*...
**...
***...
-***...
--***...
+--***..
Un décalage et une tranche peuvent être appliqués à la même ligne, mais le décalage doit aller en premier. En d'autres termes, la lettre peut être préfixée par n-m
, où n
est la taille de l'offset et m
la taille de la tranche. Par exemple, en utilisant S
pour noter un espace, l'entrée '2-4j' produirait:
.
.
.
*
*
*
S
S
Enfin, l' +
opérateur utilisé entre deux colonnes indique qu'elles doivent être empilées les unes sur les autres dans la même colonne plutôt que dans des colonnes séparées. Par exemple, l'entrée «2-4ja» sort:
.
.
.
*
*
*
S
S+
Alors que les 2-4j+a
sorties d' entrée :
+
.
.
.
*
*
*
S
S
Voici un exemple d'entrée:
abiehef+ehfhabc
Et la sortie résultante:
*
-
. -
. . +. .
* * +* *
* * ****
********
--------
-------- -
+++++++++ ++
+++++++++++++
On dirait une vieille tour de château détruite.
Voici un autre exemple d'entrée:
6b5b+a6b1-2d+3-4f1-2d+-2c+2-4f+1-2d+-2c2-2d+1-4g+1-2c+b+-2c+-4e2-7j+-4g+d+-2c+-4f2-7j+-5h+b+-2c+a+-3f2-7j+-7i+-4e+b+b+a+-4f2-7i+a+-7h+-4f+b+b+a+-4f2-7j+-7h+-4f+a+-7h+a+-7i+-4f2-7j+-7i+-6h+a+-7i+b+-4e3-7i+a+-7h+-4e+a+-7h+b+1-7h3-7j+1-4f+-7h+b+-4f+a3-7j+2-4f+a+-4f+b3-2d+-2d+3-4g+b3-2d+-2d+-2c
Et la sortie résultante:
****** +++
******+.*++
---++.+ ***
-+-+++..++**
-+--+++.+++*
--++++.+..*
+++++.+**
+++****.****** -
+++*****.**.. --
+ ***....+..--
...+.....--
--.........--
---......
--
(C'était censé être Mario mais ça ne s'est pas très bien passé ...)
Si la spécification n'est toujours pas claire, j'ai une implémentation non-golfée écrite en Python 2.7. Vous pouvez l'exécuter et expérimenter pour avoir une idée du fonctionnement de la spécification. Vous pouvez également choisir de rire de mes compétences en programmation.
C'est le golf de code, donc l'entrée la plus courte l'emporte. Posez des questions dans les commentaires si elles ne sont pas claires.
a+a+a+a+a
, les cinq signes plus s'afficheraient les uns sur les autres.Réponses:
Rubis,
223214octetsC'était amusant. :)
Bien que cela devrait être assez évident, j'ai découvert une nouvelle façon de relever ces défis où les chaînes ont été construites à partir de colonnes: faites-les simplement en lignes et transposez le tableau de caractères avant de tout joindre.
la source
puts (0..z=g.map(&:size).max-1).map{|i|g.map{|y|(v=y[z-i])?v:?\ }*''}
. Mais probablement pas si amusant sans la transposition.Cobra - 473
Je ne pense pas que Cobra va jamais gagner l'un d'eux: /
Tout gentil et commenté:
EDIT: Je viens de réaliser que cela ressemble étrangement à la solution Ruby. Les grands esprits se rencontrent?
la source
Lua - 451
Rien de spécial. C'était amusant de renommer un tas de fonctions pour une fois. Je modifierai le code non golfé plus tard.
Essayez-le ici. Exemple de sortie:
la source
PowerShell ,
214212209206200 200 octets-3 octets merci @Veskah
Essayez-le en ligne!
Version moins golfée:
la source
(-?.)
devrait aussi fonctionnerPython 3, 268 octets
Surtout non golfé:
la source