Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Tiro con l'arco
- Un certo numero di persone giocano al tiro con l'arco, ognuna facendo un tiro.
- Il vincitore è quella persona il cui punto dove la freccia ha colpito è più vicino al centro.
- Il tuo compito è scrivere un programma che permetta al computer di decidere il vincitore.
- I giocatori scrivono nel stdin del tuo programma in quanti sono, e poi inizia il gioco:
- quando il bersaglio viene colpito esso scrive sul stdin del tuo programma la x e la y relativa al centro dove è stato colpito.
- Dopo aver letto tanti colpi quanti sono i giocatori, mostri il vincitore.
- Inoltre, per una regola del gioco, il primo giocatore è avvantaggiato: il suo colpo viene considerato distante solo la il 75% di quanto è realmente (puoi moltiplicare per 0.75 o le coordinate del punto o la distanza dal centro).
- Scrivi quindi un programma che:
- Legge da stdin un numero intero n che rappresenta il numero di giocatori e poi n coppie di numeri double x y,
- infine stampa il numero del giocatore che ha tirato più vicino al centro (considerando che il primo viene considerato e la posizione del colpo.
- Esempio di output:
- N: 3
- Tiro 1
- X: -5.33
- Y: 2
- Tiro 2
- X: 0.312
- Y: -0.05
- Tiro 3
- X: 5.23
- Y: 20
- Il vincitore è 2, con il tiro (0.312, -0.05).
- https://i.imgur.com/faRo1am.png
- A tal scopo scrivi e utilizza una classe Vec2 che rappresenta un vettore in due dimensioni (più o meno un punto).
- Ogni Vec2 ha una x e una y, entrambi di tipo double.
- Dovrà avere i seguenti metodi:
- Formatta(), che restituisce una stringa che rappresenta il Vec2 nel formato (x, y) (es (3, 5) );
- Un costruttore di default che inizializza il Vec2 a un vettore nullo (0, 0);
- Un costruttore standard;
- Lunghezza() che rappresenta la lunghezza del vettore (se il vettore rappresentasse un punto questa è la distanza dal punto (0,0), cioè il centro), che si calcola come la radice quadrata di x^2 + y^2 .
- Dovrà avere i seguenti operatori:
- +, che somma due Vec2 (la somma è la somma delle componenti: (x1, y1) + (x2, y2) = (x1 + x2, y1 + y2))
- *, che moltiplica un Vec2 per un numero double: (x, y) * mul = (x * mul, y * mul)
- >, che restituisce vero se il primo Vec2 ha lunghezza maggiore del secondo Vec2.
- <, che restituisce vero se il primo Vec2 ha lunghezza minore del secondo Vec2.
Advertisement
Add Comment
Please, Sign In to add comment