Maintenant que d'autres utilisateurs ont aidé Trump à construire le mur , il est temps pour vous de l'escalader.
Il s'agit d'un défi d'art ascii où vous devez créer un mur d'escalade avec des prises placées au hasard.
Un mur d'escalade est composé de panneaux ayant chacun entre 3 et 10 prises et 5 panneaux de haut. Chaque panneau a 4 caractères de haut et 10 caractères de diamètre
Nous utilisons |
pour représenter le côté du mur (l'arête) et a -
pour représenter les bords des panneaux. Les coins des panneaux sont représentés par +
et les prises sont représentées par o
.
Enfin, le mur doit avoir America!
en haut et Mexico
en bas.
Votre programme ne doit prendre aucune entrée sauf si une entrée est requise pour s'exécuter et doit produire quelque chose qui ressemble à ce qui suit
Ceci est un exemple de sortie:
America!
+----------+
| o |
| o o |
| o o |
| o o |
+----------+
| o |
| o o |
| o o |
| o o |
+----------+
| o |
| o o |
| o o |
| o o |
+----------+
| o |
| o o |
| o o |
| o o |
+----------+
| o |
| o o |
| o o |
| o o |
+----------+
Mexico
Cela peut être présenté de manière confuse, il est donc structuré plus clairement ci-dessous
Contribution
Zilcho. Vous ne devez prendre aucune entrée absolument.
Production
Un mur d'escalade ascii-art composé de 5 panneaux, chacun de 6 lignes par 12 colonnes avec America!
centré en haut et Mexico
centré en bas. Chaque panneau a un modèle identique qui est généré de manière aléatoire par le programme. Le modèle de panneau se compose d'un nombre aléatoire de prises réparties au hasard, entre 3 et 10.
Règles
- Aucune entrée autorisée
- Je dirais "pas de builtins" mais si votre langue a un builtin pour cela, je l'accepterai automatiquement comme gagnant.
- C'est le code-golf donc le code le plus court (en octets) gagne.
- La sortie sans attente doit être exactement la même que ci-dessus, à nouveau sans attente.
- Aléatoire est l'aléatoire défini ici
Réponses:
Gelée ,
6557 octetsPremière utilisation toujours du nouveau-fangled
⁽
, un littéral chaîne entière de deux points de code (⁽¥0
= 2049)Programme complet ne prenant aucune entrée et imprimant le mur.
Essayez-le en ligne!
Comment?
la source
)o <-- a space
. Vraiment m'a fait rire!PHP, 138 octets
Essayez-le en ligne!
Étendu
la source
JavaScript (ES6),
194160 octetsEssayez-le
Le motif des prises changera toutes les 2 secondes dans l'extrait ci-dessous.
Explication
h
, qui reçoit une valeur initiale de0
; cela gardera le nombre de mises en attente sur le panneau lorsque nous allons les ajouter.g
, qui est une fonction récursive que nous utiliserons pour créer le motif aléatoire de prises sur le panneau. Nous y reviendrons dans un instant.America!\n
.+----------+\n
) et l'affectons à la variablet
, en l'ajoutant à la sortie du processus.| |\n
), la répétons 4 fois et ajoutonst
.g
, en passant la chaîne de l'étape ci-dessus comme argument, via le paramètrep
.g
:h>2
(c.-à-d. Avons-nous 3 prises ou plus).p
.g
nouveau, cette fois en passant une copie modifiée dep
comme argument.p
contient lareplace
méthode utilisée, en remplaçant tous les<space>
caractères par un<space>
ou uno
en référençant l'index des caractères (0 ou 1) de la chaîne<space>o
.Math.random()
, qui renvoie un nombre décimal compris entre 0 et 1, exclusif..8
. Étant donné qu'il y a 40 espaces dans le panneau et qu'il n'y a qu'un maximum de 10 prises, cela améliore la répartition des prises à travers le panneau (.75
serait plus précis, mais, espérons-le, vous me permettrez la concession pour le bien de enregistrer un octet!).s
.s
est contraint à un entier (0 ou 1) et ajouté àh
.h
est maintenant inférieur à 11 (c.-à-d. Avons-nous actuellement moins de 10 prises) et sis
c'était vrai.g
5 fois.Mexico
à la fin de la chaîne pour terminer les choses. Phew!Alternative
Et, tout simplement parce que je pensais que cela aurait fait un bon ajout au défi: pour seulement 12 octets supplémentaires, nous pouvons avoir un modèle unique de prises sur chaque panneau, au lieu d'être tous identiques.
Essayez-le
Encore une fois, les motifs des prises changeront toutes les 2 secondes.
Afficher l'extrait de code
la source
Pyth -
5857 octets, peut-être 47Essayez-le
Explication de l'ancienne solution (je mettrai à jour quand j'aurai le temps):
Je pense que je peux obtenir 47 tout en suivant techniquement les règles:
Ici, le nombre de trous est toujours choisi au hasard (dans l'ensemble {4,8}) et la configuration de ces trous est choisie au hasard (dans l'ensemble des configurations où chaque ligne est identique)
Essayez-le
la source
Mathematica, 201 octets
la source
Powershell (255 octets)
la source
Python 2 ,
259224221218 octetsEssayez-le sur repl.it
-35 y compris quelques indices de @ Satan'sSon - merci!
-3 avec merci à @Wondercricket
la source
t
plutôt que de l'enregistrer dans une variable et si vous supprimez les espaces aprèsAmerica!
etMexico
?print" America!" <NEWLINE> d,a,b,c=[" Mexico"],["+"+"-"*10+"+"],[" "]*40,0
?from random import*
et en supprimantr.
les fonctionsPython 2, 197 octets
la source