ITAsimo456

Tiro con l'arco

Nov 23rd, 2020 (edited)
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.27 KB | None | 0 0
  1. Tiro con l'arco
  2.  
  3. Un certo numero di persone giocano al tiro con l'arco, ognuna facendo un tiro.
  4. Il vincitore è quella persona il cui punto dove la freccia ha colpito è più vicino al centro.
  5.  
  6. Il tuo compito è scrivere un programma che permetta al computer di decidere il vincitore.
  7.  
  8. I giocatori scrivono nel stdin del tuo programma in quanti sono, e poi inizia il gioco:
  9. quando il bersaglio viene colpito esso scrive sul stdin del tuo programma la x e la y relativa al centro dove è stato colpito.
  10. Dopo aver letto tanti colpi quanti sono i giocatori, mostri il vincitore.
  11.  
  12. 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).
  13.  
  14. Scrivi quindi un programma che:
  15. Legge da stdin un numero intero n che rappresenta il numero di giocatori e poi n coppie di numeri double x y,
  16. infine stampa il numero del giocatore che ha tirato più vicino al centro (considerando che il primo viene considerato e la posizione del colpo.
  17.  
  18. Esempio di output:
  19.  
  20. N: 3
  21.  
  22. Tiro 1
  23. X: -5.33
  24. Y: 2
  25.  
  26. Tiro 2
  27. X: 0.312
  28. Y: -0.05
  29.  
  30. Tiro 3
  31. X: 5.23
  32. Y: 20
  33.  
  34. Il vincitore è 2, con il tiro (0.312, -0.05).
  35.  
  36.  
  37.  
  38.  
  39. https://i.imgur.com/faRo1am.png
  40.  
  41. A tal scopo scrivi e utilizza una classe Vec2 che rappresenta un vettore in due dimensioni (più o meno un punto).
  42. Ogni Vec2 ha una x e una y, entrambi di tipo double.
  43.  
  44. Dovrà avere i seguenti metodi:
  45. Formatta(), che restituisce una stringa che rappresenta il Vec2 nel formato (x, y) (es (3, 5) );
  46.  
  47. Un costruttore di default che inizializza il Vec2 a un vettore nullo (0, 0);
  48. Un costruttore standard;
  49.  
  50. 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 .
  51.  
  52. Dovrà avere i seguenti operatori:
  53. +, che somma due Vec2 (la somma è la somma delle componenti: (x1, y1) + (x2, y2) = (x1 + x2, y1 + y2))
  54. *, che moltiplica un Vec2 per un numero double: (x, y) * mul = (x * mul, y * mul)
  55. >, che restituisce vero se il primo Vec2 ha lunghezza maggiore del secondo Vec2.
  56. <, che restituisce vero se il primo Vec2 ha lunghezza minore del secondo Vec2.
Advertisement
Add Comment
Please, Sign In to add comment