J'ai oublié le jour des serviettes
Script PHP pour les deux exemples (erreur, formatage de la chaîne)
Script php corrigé, l'entrée est explicite
Script PHP avec plus de commentaires d'entrée / décommentation $argv
pour voir différents résultats
Comme vous le savez peut-être, le 25 mai est bien connu sous le nom de Towel Day , en raison des nombreuses utilisations qu'une serviette peut avoir.
Un simple extrait du livre "Le guide de l'auto-stoppeur de la galaxie" (personnellement, j'ai pris ce livre comme un "guide de tous les jours" ) déclare:
"Une serviette est la chose la plus massivement utile qu'un auto-stoppeur interstellaire puisse avoir. En partie, elle a une grande valeur pratique."
Si vous avez besoin de plus d'informations sur les serviettes, consultez cette réponse SE.scifi
Le défi
J'espère que vous le ferez avec une serviette utilisée comme couverture pour vos jambes.
Écrivez un programme ou une fonction complète dans n'importe quel langage de programmation valide qui prend deux entrées
size Integer : #The size
message string : #A sentence
Comment dessiner une serviette avec ces valeurs?
Première utilisationsize
:
Dessinez une serviette en fonction de la taille saisie, ascii-art pour notre serviette
width = 12*size
#the line that has the "bar" its always present with different sizes
Width is defined as:
from the first | to the second | has to be equal to size*12 including both ||
<- width->
[===| |====]
| 12 chars || 1 height starts here, just after the "bar"
| SIZE = 1 || 2
| || 3 height = 5*size
| || 4
| || 5 height ends here just before the first line |=======|
|==========|| # the lines with the #
|==========|| # are always fixed
""""""""""""| # it means, every towel
| | # always has this 5 rows
"""""""""""" # no matter the size
Deuxièmement, donnez-lui message
Vous devez lui donner un message, qu'est-ce qu'une serviette sans un beau message cousu en fil d'or?
Exemple 1
input: size=1, message="a simple message can stay with size"
width = 12*size
#the line that has the "bar" it's always present with different sizes
#no words allowed at the bar level
[===| |====]
| a simple || 1 height starts here, just after the "bar"
| message || 2
| can stay || 3 height = 5*size
| with size|| 4
| || 5 height ends here just before the first line |=======|
|==========|| # the lines with the #
|==========|| # are always fixed
""""""""""""| # it means, every towel
| | # always has this 5 rows
"""""""""""" # no matter the size
Exemple 2
input size=2
message="Don't Panic and bring a towel to SE Programming Puzzles and CodeGolf"
The size is 2
That means 24 width and 10 heigth
<- 24 chars width ->
[===| |====]
| Don't Panic and bring|| 1
| a towel to SE || 2
| Programming Puzzles || 3
| and CodeGolf || 4
| || 5
| || 6
| || 7
| || 8
| || 9
| || 10
|======================|| # The lines with the "#"
|======================|| # always present and
""""""""""""""""""""""""| # adapted to
| | # the towel width
"""""""""""""""""""""""" #
Critères de réponse acceptés
- Il s'agit de codegolf, donc les règles normales s'appliquent.
Règles
Vous êtes assuré que toutes les chaînes d'entrée s'adapteront à la taille, donc aucune entrée comme
size=1; message="This string is just tooooooooooooooooooooo long to fit the width and height of your towel"
.Le format de chaîne dépend de vous, si vous voulez centrer les sous-chaînes par exemple.
Les sauts de mots sont interdits.
Modifications
Je suis vraiment désolé pour toute confusion, car les serviettes ansii que je dessine ne correspondaient pas aux paramètres, a ajouté un script PHP pour les deux exemples pour que vous puissiez vérifier les sorties attendues.
Merci également à toutes les personnes qui ont voté et qui ont considéré mon premier défi: D.
current line + next word
dépassera la limite autorisée pour votre serviette @Jakob comme le script php que j'ai publié le décide.Réponses:
Python 2 ,
223210209204 octetsEssayez-le en ligne!
la source
JavaScript (Node.js) , 375 octets
C'est la pire soumission que vous obtiendrez, mais au moins j'ai essayé xD la moitié des octets sont des espaces
Essayez-le en ligne!
la source
JavaScript (Node.js) ,
347 345 343 337 334 328326 octetsEssayez-le en ligne!
Explication:
la source
Fusain , 79 octets
Essayez-le en ligne! Le lien est vers la version détaillée du code. Explication:
Calculez la taille de la serviette.
Dessinez la serviette.
Faites une boucle sur chaque mot du message.
Imprimez chaque mot sans déborder la largeur.
la source
V ,
142,128,121, 119 octetsEssayez-le en ligne!
la source
this
vous pouvez enregistrern Bytes
" .... mais je ne peux pas ... encore: D.