Bob l'archer
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 |
###########################################################################################
Tâche
Votre tâche consiste à rendre une image d'art ASCII de Bob frappant ou manquant la cible. Pour le calcul:
- Votre programme recevra
arrow_x,angle,velocity,distanceune entrée séparée par des virgules dans l'ordre que vous souhaitez. - Un caractère ASCII est égal à
1m. - Le premier caractère de la dernière ligne a les coordonnées
(0,0), donc le sol (rendu comme#) est ày=0. - Bob se tient toujours au sol, sa
yposition ne change pas. - Il n'y a pas de max
y. Cependant, le sommet des flèches doit tenir dans l'image rendue. - Toutes les entrées sont fournies sous forme d'entier décimal.
- Pendant le calcul, supposez que la flèche est un point.
- L'origine de la flèche est la tête
>de flèche d'un Bob qui tire (voir ci-dessus). Donc, étant donnéarrow_x, vous devez calculerarrow_y. Le pied gauche de Bob dans la sortie doit correspondre à laxcoord. du tournage de Bob. distanceest laxcoordonnée du pied de la cible . (c.-à-d. au milieu de la cible).- Toutes les mesures sont fournies en mètres et degrés respectivement.
- Attention: Le tournage de Bob n'est jamais rendu, uniquement utilisé pour les calculs! Voir ci-dessous pour les deux bobines de sortie valides
- Frapper la cible signifie que le chemin des flèches traverse l'un des deux murs cibles les plus à gauche (
|) (c'est-à-dire (distance-1,3) ou (distance-1,4). Si à un moment donné la flèche se trouve dans ces 2 m², placez le X au lieu du mur qu'il frappe. La cible a toujours la même hauteur et seule sa position x peut changer.). Les coups de coin ou une flèche tombant du ciel sur la cible ne comptent pas. - La terre standard g s'applique (9,81 m / s ^ 2).
distance+1est la fin du champ, après cela, tout est raté et aucune flèche ne doit être rendue.- Si la flèche atteint la cible d'une autre manière (
distance-1etc.), aucune flèche ne doit être rendue.
Mademoiselle
Ceci est un exemple de rendu de Bob manquant (la flèche pénètre dans le sol à 34m, l'angle est à 45 °, le temps dans l'air est de 10s, la vitesse est ~ 50 - mais il y a beaucoup plus d'entrées possibles pour provoquer cette sortie. Montrez simplement que votre programme utilise le formules habituelles pour calculer des résultats physiquement "précis".):
+-+
| |
c\ | |
/( ) v +++
L L | |
###########################################################################################
Frappé
Ceci est un exemple de rendu du score de Bob (la flèche entre dans la cible (= croise son chemin)):
+-+
>--X |
\c/ | |
( ) +++
L L |
###########################################################################################
Exemple
arrow_xest 7.arrow_yest toujours 3.angleest30°ou0.523598776radians.velocityest13m/s.distancea 20 ans.
Donc, pour toucher la cible, la flèche doit traverser (19,3)ou (19,4). Tout le reste sera un échec. Dans ce cas, la flèche entrera dans le sol (les moyens yseront <1.0) 12.9358m = ~13maprès 1.149s.
Limites et notation
- Il s'agit de code-golf , donc la solution la plus courte l'emporte. Il n'y a pas de bonus.
- Votre programme (comme dans not function ) doit accepter les entrées dans le format décrit ci-dessus, aucune entrée supplémentaire n'est autorisée.
- Vous n'avez pas à gérer les entrées incorrectes / inutiles / impossibles.
- Imprimez sur ce qui est la sortie raisonnable la plus courte pour votre langue (std, fichier, ...).
- Je ne me soucie pas de laisser un espace vide.
- Astuce: La largeur de sortie est
distance+2. La hauteur estapex+1.
The left foot of Bob in the output has to match the x coord. of the shooting Bob.etSee below for the two valid output-Bobs
