Hier ist Bub. Ein nicht ganz so erstklassiger Fußballspieler

9

Das ist Bub. Bub ist ein Fußballspieler. Er ist jedoch kein sehr guter. Er kann den Ball immer noch nicht ins Netz treten! (Wenn Sie nicht bemerkt haben, @ist der Ball.

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

Um seine Fähigkeiten weiterzuentwickeln, hat er ein System entwickelt, mit dem er seine Leistung beim Treten des Balls bewerten kann. Er hat es das "10-Punkte-System" genannt.

Er weiß jedoch nicht, was er tun muss, um x Punkte zu erreichen . Sie müssen ihm helfen, sich vorzustellen, wo sich der Ball befindet, damit er erwarten kann, wie viele Punkte er erhalten möchte. Es gibt 10 Punkte pro Runde, die er erreichen kann.

Daher ist dies Ihre Herausforderung.

Bei einer Zahl x gibt die Anzahl der Punkte, die Bub erhält, die Position des Balls auf dem Spielfeld aus. Hier sind einige hilfreiche Marker:

  • Bub ist genau 50 Felder vom Netz entfernt.
  • Für jeden Punkt, den Bub erhält, bewegt sich der Ball 5 Felder näher an das Netz. Wenn Bub 3 Punkte erhält, ist der Ball 35 Felder vom Netz entfernt.
  • Für jeweils 3 Punkte, die Bub erhält, beginnt sich der Ball in der Luft zu bewegen! Es bewegt sich ein Feld nach oben.
  • Wenn die Anzahl der Punkte, die Bub erhält, den Ball hinter das Netz bewegen würde, können Sie den Ball an einer beliebigen Stelle im Netz platzieren.

Denken Sie daran, Sie müssen Bub, den Ball und das Netz ziehen.

Um Ihnen den Einstieg zu erleichtern, finden Sie hier ein Beispiel:

Anzahl der Punkte: 5

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

Es gelten Standardregeln. Code mit der niedrigsten Anzahl von Bytes gewinnt! Viel Spaß beim Golfen!

Zizouz212
quelle
Können wir dieses Zeichen als ein Byte zählen?
Undichte Nonne
Müssen wir die nachgestellten Leerzeichen genau wie angegeben ausgeben oder können wir extra drucken?
PurkkaKoodari
@ edc65 Ich nehme es als "Bewegen Sie den Ball eine Position nach oben für jeweils 3 Punkte"
Luis Mendo
@ Pietu1998 Genau wie angegeben.
Zizouz212
2
Wenn There are 10 points per round that he can achieveja, warum sollten wir uns für n> 10 interessieren?
edc65

Antworten:

3

Pyth, 106 91 Bytes

Lauflängencodierung, gefolgt von interner Codierung.

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\@

Probieren Sie es online aus!

Ersetzen Sie das Unicode-Zeichen (U + 2500) als einzelnen Bindestrich.

Undichte Nonne
quelle
Ach je. In der untersten Zeile Ihrer Ausgabe befindet sich ein zusätzlicher Platz! Und der Ball geht hinter das Netz, nicht hinein! Versuchen Sie eine Eingabe von 12 und Sie werden sehen!
Zizouz212
Oh ja, die Leitung ist Unicode. Ich liebe die Antwort. Ein großes Lob dafür, dass Sie der Erste sind!
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`
`

Prüfung

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
quelle
Dein Snippet funktioniert bei mir nicht. Ich erhalte nur eine Fehlermeldung mit der Aufschrift "Skriptfehler".
Zizouz212
@ Zizouz212 welcher Browser? Ist es ES6-kompatibel? kangax.github.io/compat-table/es6
edc65
@ edc65 Ah. Meine Schuld dann. Ich benutze Safari: /
Zizouz212