La plupart des gens connaissent le trope sur le comptage des moutons pour s'endormir. Il y a un troupeau de moutons, certains sautant par-dessus une clôture, et vous comptez les moutons pendant qu'ils sautent. Soi-disant, cela aide à calmer votre esprit et vous met dans un état de sommeil de sorte que vous vous endormez.
Voici un mouton ASCII tourné vers la droite, attendant d'être compté:
'00^>
||
Voici un mouton ASCII sautant par-dessus une clôture:
'00^>
/\
++
En voici une tournée vers la gauche, ayant déjà été comptée:
<^00'
||
Le défi
Étant donné deux entiers d'entrée, n
et m
, en n > 2
décrivant le nombre total de moutons et en m > 0
disant combien de moutons ont déjà été comptés, affichez une représentation artistique ASCII du comptage des moutons pour s'endormir.
Maintenant, pour la torsion:
- En raison de la taille des enclos où se trouvent les moutons, la rangée du haut ne peut contenir qu'un maximum de
10
moutons, sans compter les moutons qui sautent actuellement, qui doivent également toujours être dans la rangée du haut. - Les rangées suivantes ne peuvent pas avoir les moutons en dehors de leurs enclos respectifs (vous ne pouvez pas avoir plus de moutons à gauche dans la deuxième rangée que vous n'en avez dans la première rangée, et même pour la droite).
- S'il y a
11
ou plus de moutons au total, la rangée du haut doit contenir10
plus les moutons sauteurs. - Les espaces blancs en tête / arrière et les espaces entre les moutons n'ont pas d'importance, tant que:
- Il y a au moins un espace entre les moutons
- Tous les personnages s'alignent correctement.
Tant que ces règles sont respectées, la disposition réelle des moutons dépend de votre mise en œuvre.
Exemples
Par exemple, voici n=3
et m=1
, le cas le plus simple.
'00^>
'00^> /\ <^00'
|| ++ ||
Voici n=11
et m=6
, le plus de moutons pouvant tenir sur une seule ligne horizontale.
'00^>
'00^> '00^> '00^> '00^> /\ <^00' <^00' <^00' <^00' <^00' <^00'
|| || || || ++ || || || || || ||
Voici un autre exemple de cela, avec n=11
etm=1
'00^>
'00^> '00^> '00^> '00^> '00^> '00^> '00^> '00^> '00^> /\ <^00'
|| || || || || || || || || ++ ||
Un plus grand exemple avec n=30
etm=12
'00^>
'00^> '00^> '00^> '00^> '00^> '00^> '00^> '00^> /\ <^00' <^00'
|| || || || || || || || ++ || ||
'00^> '00^> '00^> '00^> '00^> '00^> '00^> '00^> <^00' <^00'
|| || || || || || || || || ||
'00^> <^00' <^00'
|| || ||
<^00' <^00'
|| ||
<^00' <^00'
|| ||
<^00' <^00'
|| ||
Voici un exemple avec n=17
etm=2
'00^>
'00^> '00^> '00^> '00^> '00^> '00^> '00^> '00^> /\ <^00' <^00'
|| || || || || || || || ++ || ||
'00^> '00^> '00^> '00^> '00^> '00^>
|| || || || || ||
Voici un exemple avec n=19
etm=3
'00^>
'00^> '00^> '00^> '00^> '00^> '00^> '00^> /\ <^00' <^00' <^00'
|| || || || || || || ++ || || ||
'00^> '00^> '00^> '00^> '00^> '00^> '00^>
|| || || || || || ||
'00^>
||
Notez que tous ces exemples sont . Pour le dernier, vous pouvez créer un réseau vertical de moutons sur le côté droit, ce qui permettra au côté gauche de tenir sur deux rangées à la place. Ou peut-être un carré de moutons de 2x2 sur le côté droit, qui pourrait également adapter les moutons du côté gauche sur deux rangées. Etc.
E / S et règles
- L'entrée peut être prise dans n'importe quel format raisonnable et par n'importe quelle méthode pratique .
- Les sauts de ligne de début / fin ou d'autres espaces sont facultatifs, à condition que les caractères 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.
- La sortie peut être vers la console, retournée sous forme de liste de chaînes, retournée sous forme de chaîne unique, etc.
- 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.
n=11
etm=9
n=11
cela 0<m<=10
. Cela vous oblige à avoir tous les moutons sur la rangée supérieure et un nombre dynamique de moutons à gauche ( n-1-m
) et à droite ( m
) de la clôture et ne peut pas utiliser des tailles de stylo fixes.