Grazie infinite, ho cambiato l' impostazione e ora funziona però non ho ben capito come si comporta la divisione del valore assoluto.
Cioè i=(i+1)%N con N=4 al primo giro i= 2, al secondo dovrebbe essere i=(2+1)%4 --> che valore ritorna?
cont++ serve perchè essendo un pezzo o meglio una funzione del gioco la parte del gioco effettivo non è ancora stata fatta, ora ho sistemato la parte che indica quale giocatore deve iniziare il turno.
Ora che il codice funziona vorrei esportarlo in una funzione in modo che quando chiamata restituisca il valore del giocatore che deve giocare. Ho pensato ad una cosa del genere:
ma secondo me non e corretta o meglio non vorrei che quando la chiamo si impalli nel ciclo.
Dovrebbe essere svincolata dalle istruzioni del turno che ancora devo scrivere.
#include <iostream>
#include <cstdlib>
#include <string>
using namespace std;
//string chi_deve_giocare(int iniziale, int dim_vet, string vet[]) {
// int i;
// for (i = iniziale;; i = (i + 1) % dim_vet) {
// cout << "tocca a: " << vet[i] << endl;
// }
// return vet[i];
//}
//
void stampa_stringa_vincitore(string stringa_da_stampare) {
cout << "ha vinto: " << stringa_da_stampare << endl;
}
int main() {
string giocatori[4] = { "luca", "max", "tommy", "alle" };
bool victory = false; // condizone di uscita dal gioco se diventa true
int i, cont = 0, dim = 4;
int iniziale = 2, vincitore;
while (!victory) { // ciclo nel quale si svilupperà il gioco
for (i = iniziale;; i = (i + 1) % dim) {
cout << "tocca a: " << giocatori[i] << endl;
// {-------ISTRUZIONI DEL TURNO
cont++;
if (cont == 10) { // COTNTROLLO SULLA CONDIZIONE DI VITTORIA
string vincente;
victory = true;
vincente = giocatori[i];
stampa_stringa_vincitore(vincente);
break;
}
// }-----FINE TURNO, TOCCA AL SUCCESSIVO
}
}
}