allora, sto facendo un gioco di poker, il mazzo ha 52 carte quindi il vettore ne avrà pure 52, come prendo il 52esimo elemento con v[v.size()-1]il 52esimo non deve esistere più, ci sarà un banalissimo remove come in Java!!? pop_back() ho provato ma con questo codice non funzia, ovvero quando guardo le carte del giocatore sono tutte uguali:
codice:
Carta Mazzo::getCard()
{
Carta last = coda[coda.size()-1];
coda.pop_back();
return last;
}
Cmq il problema dell'ultima è momentaneamente risolto, ora il problema più grosso è quello del cambio della carta, chiedo il numero di carte da cambiare e faccio un ciclo, per per ogni carta ne chiedo il numero(ogni carta della mano ha un id a seconda della posizione), solo che gli elementi vengono semplicemente spostati in su, ecco il codice:
codice:
...
cout << "Inizia il giocatore 1, ecco le tue carte:\n\n";
cout << g1;
int nums;
cout << "\nQuante carte vuoi cambiare?(da 0 a 4)\n";
do {
cin >> nums;
if(!(nums >= 0 && nums < 5)) {
cout << "\nNumero da Da 0 a 4!\n";
}
} while(!(nums >= 0 && nums < 5));
system(PULISCI);
cout << g1;
int count = 0;
int idCard;
while(count < nums) {
cout << "\nInserire numero carta da sostituire\n";
cin >> idCard;
if(idCard < 1 || idCard > 5) {
cout << "\nNon valido\n";
continue;
}
g1.cambia(m.getCard(), idCard-1);
count++;
}
cout << g1;
return 0;
}
cambia agisce così:
codice:
vector<Carta>::iterator I = mano.begin();
mano.insert(I+1, c);
Praticamente la domanda è come sostituire un elemento all'indice i da un nuovo elemento
aiuto! sarà anche ora di prendersi un libro su 'ste cose...