willbend Skrevet 13. juli 2005 Del Skrevet 13. juli 2005 (endret) Jeg startet enkelt så dette programmet er laget for bare 4 spillere. Dere trenger egentlig ikke å lese all koden, det er bare en liten bit jeg har problemer med. #include <iostream> #include <string> #include <stdio.h> using namespace std; void startround(int id); void result(int score1, int score2, int player1, int player2); string players[4]; struct player { string name; int wins; int losses; }; player p1, p2, p3, p4; void startround(int id) { players[0]=p1.name; players[1]=p2.name; players[2]=p3.name; players[3]=p4.name; int number1; int number2; int number3; int number4; // Lager random tall number1 = rand() % 4 + 1; number2 = rand() % 4 + 1; number3 = rand() % 4 + 1; number4 = rand() % 4 + 1; int score1; int score2; int player1; int player2; int player3; int player4; // Finner ut hvilken runde det er switch (id) { case 1: cout<<" Runde 1 \n"; cout<<""<< players[number1-1] <<" vs "<< players[number2-1] <<"\n"; cin>> score1; cin>> score2; result(score1, score2, number1-1, number2-1); cout<<""<< players[number3-1] <<" vs "<< players[number4-1] <<"\n"; cin>> score1; cin>> score2; result(score1, score2, number1-1, number2-1); break; case 2: cout<<" Runde 2 \n"; break; case 3: cout<<" Runde 3 \n"; break; default: cout<<" Hva skjedde ?? \n"; } } void result(int score1, int score2, int player1, int player2) { if(score1>score2) { p1.wins++; } else { p2.wins++; } } int main() { cout << "Tast inn alle fira namna..." << endl; cin >> p1.name; cin >> p2.name; cin >> p3.name; cin >> p4.name; startround(1); startround(2); startround(3); cout<<"Resultat: \n\n"; cout<<""<< players[0] << ": "<< p1.wins*3<<"\n"; cout<<""<< players[1] << ": "<< p2.wins*3<<"\n"; cout<<""<< players[2] << ": "<< p3.wins*3<<"\n"; cout<<""<< players[3] << ": "<< p4.wins*3<<"\n"; } Hvis dere ser her: void result(int score1, int score2, int player1, int player2) { if(score1>score2) { p1.wins++; } else { p2.wins++; } } Så skal jeg jo oppdatere spillerne sine wins og losses, men problemet er på denne linjen: p1.wins++; Det skal jo egentlig ikke stå p1, men det skal stå verdien av player1(pluss en "p" foran, altså p1, p2, p3 eller p4). Håper dere skjønner hva jeg mener, hvis ikke si ifra. Endret 13. juli 2005 av willbend Lenke til kommentar
Mr.Garibaldi Skrevet 13. juli 2005 Del Skrevet 13. juli 2005 Hvis du hadde hatt en array med player objekter kunne du jo lett hentet ut hvilket objekt du trengte fra den... Og heller kalle opp navnene fra objektene når du trenger dem... Ellers kan du gjøre noe slikt... Litt mye kode, men skulle ikke være særlig tregt.. void result(int score1, int score2, int player1, int player2) { if(score1>score2) { switch(player1){ case 0: p1.wins++; break; case 1: p2.wins++; break; case 2: p3.wins++; break; case 3: p4.wins++; break; } } else { switch(player2){ case 0: p1.wins++; break; case 1: p2.wins++; break; case 2: p3.wins++; break; case 3: p4.wins++; break; } } } Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå