Contribution:
- Vous obtenez une série d'entiers (alimentés via stdin ou prompt).
- Chaque paire d'entiers de cette série représente la LARGEUR [plage valide: 1..10] et la HAUTEUR [plage valide: 0..10] d'un bâtiment
- Supposons que l'entrée soit bien formée.
Exemple d'entrée (la deuxième ligne est uniquement à des fins de démonstration):
1 2 1 1 1 0 2 4 1 3 1 2 2 1 WHWHWHWHWHWHWH
Exemple de sortie correspondante:
______ / ______ / | | | | __ | | / __ / | __ | | | | __ / __ / | | | | / __ / | | | | __ | | | | | ______ | | / __ / | | | | | / ______ / | | | | | _ | | | | | | | _o_ | _o_ | / __ | _o _____ | _o_ | _o_ | _o _____ | / ------------------------------------- - - - - - - - - - - - - - - -------------------------------------
Règles:
Les immeubles
- Un bloc de construction de base ressemble à ceci (1 W, 1H)
__ / __ / | (le cube de base est emprunté à celui de cette question: | | | http://stackoverflow.com/questions/1609702/code-golf-playing-cubes) | ___ | /
Notre vue est (ahum) ~ 3D afin que les bâtiments voisins puissent cacher des parties des autres. Les bâtiments sont rendus «logiquement» de gauche à droite.
Le premier bâtiment est précédé de deux espaces à gauche.
Vous effectuez le rendu de chaque bâtiment en appliquant la LARGEUR et la HAUTEUR aux dimensions du cube de base (jetez un œil à l'exemple de sortie fourni!). Pour référence: nombre de caractères de gauche à droite 'mur' (pour un bâtiment avec W> 1): (W * 5) - (W-1).
Les bâtiments avec une hauteur> 0 ont UNE porte (qui est représentée par le personnage
o
et est située à deux caractères du mur 'gauche' sur la rangée 'inférieure').
La route:
- La route se compose de trois parties que nous appellerons «haut», «milieu» et «bas».
- La partie "supérieure" et la partie "inférieure" sont identiques à part le fait que la partie "supérieure" est précédée de deux espaces.
- La partie centrale est précédée d'un espace et consiste en une répétition du motif suivant:
«-»
- La longueur doit être déterminée par la largeur totale des bâtiments combinés: la partie la plus à droite de la route correspond à la position du mur «droit» du «dernier» bâtiment.
Gagnants:
C'est du code-golf! Le gagnant est le candidat éligible avec la solution la plus courte (par nombre de codes source). La source doit être constituée uniquement de caractères ASCII imprimables. S'amuser!
Points bonus imaginaires pour des fenêtres (aléatoires), des voitures ou des piétons.
N'hésitez pas à commenter si les spécifications ne sont pas claires!
'- '
(avec deux espaces)? Edit : Ah, les deux espaces ne montrent pas: P. Vous pouvez afficher plusieurs espaces en utilisant ASCII 255 (espace insécable, ALT + 255 sur le pavé numérique), ou en copiant et collant à partir de mon commentaire ici. Ou bien ... vous pourriez plutôt dire que c'est une répétition de' - '
:)but you must not enforce this
en 3)? OMI, toute hypothèse est disponible pour être exploitée si elle augmente votre score. Je peux donc écrire du code qui ne fonctionne que si la largeur totale est inférieure à 80 si je peux extraire un nombre de caractères inférieur. Par exemple, l'écriture de la sortie dans un tableau de tampons d'affichage d'une largeur de 80, il se bloquera donc sur toute largeur totale supérieure. Si vous voulez que n'importe quelle largeur soit prise en charge, alors ne donnez pas l'hypothèse - vous ne pouvez pas avoir les deux: PRéponses:
Haskell, 396 caractères
Exemple de sortie:
la source
Python, 415 caractères
Utilise des tranches pour dessiner toutes les parties du bâtiment.
la source