Bob der Bogenschütze
o
/( )\ This is Bob.
L L Bob wants to be an archer.
#############
.
/ \ <--- bow So he bought himself a
(c -)-> <--- arrow nice longbow and is about
( )/ <--- highly focused Bob shoot at a target.
L L
#############
___________________________________________________________________________________________
sky
Bob is a smart guy. He already knows what angle and
velocity his arrow has / will have. But only YOU know
the distance to the target, so Bob doesn't know if he
will hit or miss. This is where you have to help him.
. +-+
/ \ | |
(c -)-> | |
( )/ +++
L L |
###########################################################################################
Aufgabe
Ihre Aufgabe ist es, ein ASCII-Kunstbild von Bob zu rendern, wie er das Ziel trifft oder verfehlt. Zur Berechnung:
- Ihr Programm erhält eine
arrow_x,angle,velocity,distancedurch Kommas getrennte Eingabe in beliebiger Reihenfolge. - Ein ASCII-Zeichen entspricht
1m. - Das erste Zeichen in der letzten Zeile hat die Koordinaten
(0,0), so dass der Boden (gerendert als#) an isty=0. - Bob steht immer am Boden, seine
yPosition ändert sich nicht. - Es gibt keine max
y. Die Spitze der Pfeile sollte jedoch in das gerenderte Bild passen. - Alle Eingaben erfolgen als Dezimalzahl.
- Nehmen Sie während der Berechnung an, dass der Pfeil ein Punkt ist.
- Der Pfeilursprung ist die Pfeilspitze
>eines schießenden Bob (so). Alsoarrow_xmuss man rechnenarrow_y. Der linke Fuß von Bob in der Ausgabe muss mit derxKoordinate übereinstimmen . des Schießens Bob. distanceist diexKoordinate des Zielfußes . (dh die Mitte des Ziels).- Alle Maße werden in Metern bzw. Grad angegeben.
- Achtung: Der Shooter Bob wird nie gerendert, nur für Berechnungen verwendet! Siehe unten für die zwei gültigen Output-Bobs
|Wenn Sie auf das Ziel treffen, kreuzen die Pfeile eine der beiden linken Zielwände ( ) (Das ist entweder (Abstand-1,3) oder (Abstand-1,4). Wenn sich der Pfeil irgendwann innerhalb dieser 2 m² befindet, platzieren Sie ihn das X anstelle der Wand, auf die es trifft. Das Ziel ist immer gleich hoch und nur seine x-Position kann sich ändern.). Eckentreffer oder ein vom Himmel auf das Ziel fallender Pfeil zählen nicht.- Es gilt die Norm Erde g (9,81 m / s ^ 2).
distance+1ist das Ende des Feldes, danach ist alles ein Fehlschuss und es darf kein Pfeil mehr gerendert werden.- Wenn der Pfeil das Ziel auf andere Weise trifft (
distance-1usw.), sollte kein Pfeil gerendert werden.
Fräulein
Dies ist ein Beispiel für eine fehlende Darstellung von Bob (Pfeil geht in 34 m Höhe in den Boden, Winkel ist 45 °, Zeit in Luft ist 10 s, Geschwindigkeit ist ~ 50 - aber es gibt viel mehr Eingabemöglichkeiten, um diese Ausgabe zu verursachen übliche Formeln zur Berechnung physikalisch "genauer" Ergebnisse.):
+-+
| |
c\ | |
/( ) v +++
L L | |
###########################################################################################
Schlagen
Dies ist ein Beispiel-Rendering der Bob-Wertung (Pfeil dringt in das Ziel ein (= kreuzt den Pfad)):
+-+
>--X |
\c/ | |
( ) +++
L L |
###########################################################################################
Beispiel
arrow_xist 7.arrow_yist immer 3.angleist30°oder0.523598776Bogenmaß.velocityist13m/s.distanceist 20.
Um das Ziel zu treffen, muss der Pfeil (19,3)oder kreuzen (19,4). Alles andere wird ein Fehlschlag sein. In diesem Fall wird geben Sie den Pfeil , um den Boden (Mittel ywird <1.0) an 12.9358m = ~13mnach 1.149s.
Limits & Scoring
- Das ist Code-Golf , also gewinnt die kürzeste Lösung. Es gibt keine Boni.
- Ihr Programm (wie in Funktion nicht ) muss Eingaben im oben beschriebenen Format akzeptieren, zusätzliche Eingaben sind nicht zulässig.
- Sie müssen nicht mit falschen / sinnlosen / unmöglichen Eingaben umgehen.
- Drucken Sie mit der kürzesten Ausgabe, die für Ihre Sprache zumutbar ist (Standard, Datei, ...).
- Es ist mir egal, ob Leerzeichen nachgestellt werden.
- Tipp: Die Ausgabebreite beträgt
distance+2. Die Höhe istapex+1.
The left foot of Bob in the output has to match the x coord. of the shooting Bob.undSee below for the two valid output-Bobs
