ciao , ti dico la mia opignone.
ho provato il programma , non presenta errori .
probabilmente , quello che a te sembra una anomalia del programma è dovuto ad assegnazioni diverse delle variabili delle due strutture .

Player giocatore1;
Player giocatore2;
giocatore1.vita = 45;
giocatore2.vita = 60;
giocatore1.danno = 5;
giocatore2.danno = 2;
giocatore1.frecce = 34;
giocatore2.frecce = 40;

ovvio che i risultati per i due giocatori siano diversi