Étant donné une liste d'entrée de chaînes non vides, affichez une représentation artistique ASCII d'un tournoi, basée sur les règles de dessin suivantes:
- Le nombre de cordes est garanti en quantité
2,4,8,16,etc.
- Les deux premières cordes se jouent et les deux suivantes se jouent, etc. Ceci est le premier tour.
- Pour chaque jeu, choisissez le gagnant au hasard avec une probabilité égale.
- Pour le tour suivant, le vainqueur du premier match joue le vainqueur du deuxième match, le vainqueur du troisième match joue le vainqueur du quatrième match, etc. Les tours suivants suivent le modèle.
- Il y a finalement un gagnant général.
- Pour une jolie sortie (obligatoire), les chaînes doivent toutes être ajoutées et ajoutées avec un trait de soulignement
_
. - Pour que les supports s'alignent correctement, chaque entrée doit être rembourrée
_
pour avoir tous la même longueur pour ce tour. - Vous pouvez choisir si le rembourrage est ajouté ou ajouté, tant qu'il est cohérent.
- Au lieu de cela, vous pouvez choisir de pré-rembourrer toutes les cordes pour qu'elles aient la même longueur, plutôt que par tour. Quel que soit le golfeur pour votre code.
Règles supplémentaires
- Les sauts de ligne ou les espaces de début ou de fin sont tous facultatifs, tant que les caractères eux-mêmes s'alignent correctement.
- Un programme complet ou une fonction sont acceptables. S'il s'agit d'une fonction, vous pouvez renvoyer la sortie plutôt que de l'imprimer.
- Si possible, veuillez inclure un lien vers un environnement de test en ligne afin que d'autres personnes puissent essayer votre code!
- Les failles standard sont interdites.
- Il s'agit de code-golf, donc toutes les règles de golf habituelles s'appliquent et le code le plus court (en octets) l'emporte.
Exemples
Exemple avec les villes ['Boston', 'New York', 'Charlotte', 'Atlanta', 'St. Paul', 'Chicago', 'Los Angeles', 'Phoenix']
:
_Boston______
\_New York____
_New York____/ \
\_New York_
_Charlotte___ / \
\_Charlotte___/ \
_Atlanta_____/ \
\_St. Paul_
_St. Paul____ /
\_St. Paul____ /
_Chicago_____/ \ /
\_St. Paul_/
_Los Angeles_ /
\_Los Angeles_/
_Phoenix_____/
Exemple avec ['Lions', 'Tigers', 'Bears', 'Oh My']
:
_Lions__
\_Tigers_
_Tigers_/ \
\_Tigers_
_Bears__ /
\_Bears__/
_Oh My__/
Réponses:
Fusain ,
9279 octetsEssayez-le en ligne! Le lien est vers la version détaillée du code. Nécessite une ligne vierge pour marquer la fin de l'entrée. Explication:
Initialisez la variable
q
. Cela tient la taille des zigzags, c'est-à-dire la moitié de l'écart entre les rangées.Lisez les lignes d'entrée non vides dans le tableau
u
. Les lignes sont automatiquement entourées de_
s lors de leur lecture, bien qu'elles ne soient pas encore remplies.Boucle tant qu'il reste des chaînes.
Calculez la largeur de la plus grande chaîne de
e
.Calculez l'écart entre les rangées
d
.Pour chaque équipe, imprimez le rembourrage, imprimez l'équipe, puis passez à l'équipe suivante.
Pour chaque autre équipe, choisissez au hasard entre cette équipe ou l'équipe précédente. (Notez que s'il ne reste qu'une seule équipe, cela produit une liste vide.)
S'il reste des équipes, dessinez les zigzags qui les rejoignent par paires.
Doublez la longueur des zigzags à chaque fois.
la source
▷vS
quoi que ce soit de toute façon.Python 2 ,
379364 octetsEssayez-le en ligne!
la source