Voici Bub. Un joueur de football de classe pas si mondiale

9

Voici Bub. Bub est un joueur de football. Cependant, il n'est pas très bon. Il ne peut toujours pas lancer le ballon au filet! (Si vous ne l'avez pas remarqué, @c'est la balle.

                                                       _____
                                                      |     \
  O                                                   |      \
 \|/                                                  |       \
  |                                                   |  net   \ 
 / ─   @                                              |_________\

Pour l'aider à développer ses compétences, il a développé un système pour aider à évaluer ses performances lorsqu'il frappe le ballon. Il l'a appelé le «système en 10 points».

Cependant, il ne sait pas ce qu'il doit faire pour atteindre x nombre de points. Vous devez l'aider à visualiser où sera le ballon, afin qu'il puisse définir une attente du nombre de points qu'il souhaite obtenir. Il peut atteindre 10 points par tour.

C'est donc votre défi.

Étant donné un nombre x , le nombre de points que Bub obtient, affiche l'emplacement de la balle sur le terrain. Voici quelques marqueurs utiles:

  • Bub est exactement à 50 cases du filet.
  • Pour chaque point obtenu par Bub, le ballon se rapproche de 5 cases du filet. Par conséquent, si Bub obtient 3 points, le ballon est à 35 cases du filet.
  • Pour chaque 3 points que Bub obtient, le ballon commence à bouger dans les airs! Il se déplace d'un espace vers le haut.
  • Si le nombre de points que Bub obtient déplace la balle derrière le filet, vous pouvez placer la balle n'importe où à l'intérieur du filet.

N'oubliez pas, vous devez dessiner Bub, la balle et le filet.

Pour commencer, voici un exemple:

Nombre de points: 5

                                                       _____
                                                      |     \
  O                                                   |      \
 \|/                                                  |       \
  |                          @                        |        \ 
 / ─                                                  |_________\

Des règles standard s'appliquent. Le code avec le plus petit nombre d'octets gagne! Bon golf!

Zizouz212
la source
Pouvons-nous compter ce caractère comme un octet?
Leaky Nun
Devons-nous afficher les espaces de fin exactement comme indiqué, ou pouvons-nous imprimer en plus?
PurkkaKoodari
@ edc65 Je suppose que "déplacer la balle d'une position vers le haut pour chaque 3 points"
Luis Mendo
@ Pietu1998 Exactement comme indiqué.
Zizouz212
2
Si There are 10 points per round that he can achieve, pourquoi devrions-nous nous soucier de n> 10?
edc65

Réponses:

3

Pyth, 106 91 octets

Encodage de longueur, suivi d'un encodage interne.

Hexdump:

0000000: 4a 63 72 58 2e 22 30 41 01 b6 07 31 11 af 55 c5 JcrX."0A...1..U.
0000010: 16 6f 93 4f ea 90 6b 39 f6 e0 dc 81 43 9d 01 f7 .o.O..k9....C...
0000020: 36 93 ee 4c c8 fa a5 28 70 22 6d 43 2b 35 38 64 6..L...(p"mC+58d
0000030: 38 22 0a 20 2f 4f 5c 5c 5f 7c 2d 22 39 62 6a 58 8". /O\\_|-"9bjX
0000040: 4a 4b 2d 35 2f 68 53 2c 54 51 33 58 40 4a 4b 68 JK-5/hS,TQ3X@JKh
0000050: 53 2c 35 38 2b 34 2a 35 51 5c 40                S,58+4*5Q\@

Essayez-le en ligne!

Remplacez le caractère Unicode (U + 2500) par un seul trait d'union.

Leaky Nun
la source
Oh cher. Il y a un espace supplémentaire sur la dernière ligne de votre sortie! Et le ballon passe derrière le filet, pas à l'intérieur! Essayez une entrée de 12 et vous verrez!
Zizouz212
Oh oui, la ligne est Unicode. J'adore la réponse. Bravo pour être le premier!
Zizouz212
3

JavaScript (ES6), 189

f=n=>"       o \\|/ | / -".match(/.../g).map((v,r)=>(v=[...v+' '.repeat(50)+'| '[+!r]+' _'[+(!r|r>4)].repeat(r+4)+'\\_'[+!r]],y-r?0:v[x]='@',v.join``),n<11?0:n=11,x=3+n*5,y=5-(n/3|0)).join`
`

Tester

f=n=>"       o \\|/ | / -".match(/.../g).map((v,r)=>(v=[...v+' '.repeat(50)+'| '[+!r]+' _'[+(!r|r>4)].repeat(r+4)+'\\_'[+!r]],y-r?0:v[x]='@',v.join``),n<11?0:n=11,x=3+n*5,y=5-(n/3|0)).join`
`
var n=0

setInterval(function(){
  N.textContent=n,O.textContent=f(n),n=(n+1)&15
},1000)
<pre id=O></pre><span id=N></span>

edc65
la source
Votre extrait ne fonctionne pas pour moi. Je reçois juste une erreur disant "Erreur de script".
Zizouz212
@ Zizouz212 quel navigateur? Est-il compatible avec ES6? kangax.github.io/compat-table/es6
edc65
@ edc65 Ah. Ma faute alors. J'utilise Safari: /
Zizouz212