Miałem za zadanie napisać troszkę bardziej rozbudowaną wersję gry Kamień, papier, nożyce (dodatkowo dwa elementy, jaszczurka i Spock) i po wyjściu z pętli wyświetlić statystyki rozgrywek dla gracza, jeśli uczestniczył w danej sesji. Problem w tym, że program wyświetla statystyki tylko dla tych graczy, którzy brali udział w ostatniej grze sesji, a ja nie wiem, co zrobić, żeby wyświetlał je poprawnie.
// Konrad Korus
// Gra "Kamień, papier, nożyce, jaszczurka, Spock"
#include <iostream>
using namespace std;
int main(){
int ilosc;
int i=1;
int wygrane_a=0;
int remisy_a=0;
int gry_a=0;
int porazki_a=0;
int wygrane_b=0;
int remisy_b=0;
int gry_b=0;
int porazki_b=0;
int wygrane_c=0;
int remisy_c=0;
int gry_c=0;
int porazki_c=0;
char id1,id2,w1,w2;
cin >> ilosc; //liczba rozgrywek
while(i<=ilosc){
cin >> id1 >> w1 >> id2 >> w2; //identyfikator wybor identyfikator wybor
if(id1=='a'){
gry_a += 1;
if((w1=='J' && (w2=='P' || w2=='S')) || (w1=='K' && (w2=='J' || w2=='N')) ||
(w1=='N' && (w2=='J' || w2=='P')) || (w1=='P' && (w2=='K' || w2=='S')) ||
(w1=='S' && (w2=='K' || w2=='N'))){
wygrane_a += 1;
}
else if(w1==w2){
remisy_a += 1;
}
else
porazki_a += 1;
}
if(id2=='a'){
gry_a += 1;
if((w2=='J' && (w1=='P' || w1=='S')) || (w2=='K' && (w1=='J' || w1=='N')) ||
(w2=='N' && (w1=='J' || w1=='P')) || (w2=='P' && (w1=='K' || w1=='S')) ||
(w2=='S' && (w1=='K' || w1=='N'))){
wygrane_a += 1;
}
else if(w1==w2){
remisy_a += 1;
}
else
porazki_a += 1;
}
if(id1=='b'){
gry_b += 1;
if((w1=='J' && (w2=='P' || w2=='S')) || (w1=='K' && (w2=='J' || w2=='N')) ||
(w1=='N' && (w2=='J' || w2=='P')) || (w1=='P' && (w2=='K' || w2=='S')) ||
(w1=='S' && (w2=='K' || w2=='N'))){
wygrane_b += 1;
}
else if(w1==w2){
remisy_b += 1;
}
else
porazki_b += 1;
}
if(id2=='b'){
gry_b += 1;
if((w2=='J' && (w1=='P' || w1=='S')) || (w2=='K' && (w1=='J' || w1=='N')) ||
(w2=='N' && (w1=='J' || w1=='P')) || (w2=='P' && (w1=='K' || w1=='S')) ||
(w2=='S' && (w1=='K' || w1=='N'))){
wygrane_b += 1;
}
else if(w1==w2){
remisy_b += 1;
}
else
porazki_b += 1;
}
if(id1=='c'){
gry_c += 1;
if((w1=='J' && (w2=='P' || w2=='S')) || (w1=='K' && (w2=='J' || w2=='N')) ||
(w1=='N' && (w2=='J' || w2=='P')) || (w1=='P' && (w2=='K' || w2=='S')) ||
(w1=='S' && (w2=='K' || w2=='N'))){
wygrane_c += 1;
}
else if(w1==w2){
remisy_c += 1;
}
else
porazki_c += 1;
}
if(id2=='c'){
gry_c += 1;
if((w2=='J' && (w1=='P' || w1=='S')) || (w2=='K' && (w1=='J' || w1=='N')) ||
(w2=='N' && (w1=='J' || w1=='P')) || (w2=='P' && (w1=='K' || w1=='S')) ||
(w2=='S' && (w1=='K' || w1=='N'))){
wygrane_c += 1;
}
else if(w1==w2){
remisy_c += 1;
}
else
porazki_c += 1;
}
i++;
}
if(id1=='a' || id2=='a'){
cout << "gracz a" << endl;
if(wygrane_a>0)
cout << " wygrane: " << (double(wygrane_a)/double(gry_a))*100 << "%" << endl;
if(remisy_a>0)
cout << " remisy: " << (double(remisy_a)/double(gry_a))*100 << "%" << endl;
if(porazki_a>0)
cout << " przegrane: " << (double(porazki_a)/double(gry_a))*100 << "%" << endl;
}
if(id1=='b' || id2=='b'){
cout << endl << "gracz b" << endl;
if(wygrane_b>0)
cout << " wygrane: " << (double(wygrane_b)/double(gry_b))*100 << "%" << endl;
if(remisy_b>0)
cout << " remisy: " << (double(remisy_b)/double(gry_b))*100<< "%" << endl;
if(porazki_b>0)
cout << " przegrane: " << (double(porazki_b)/double(gry_b))*100 << "%" << endl;
}
if(id1=='c' || id2=='c'){
cout << endl << "gracz c" << endl;
if(wygrane_c>0)
cout << " wygrane: " << (double(wygrane_c)/double(gry_c))*100 << "%" << endl;
if(remisy_c>0)
cout << " remisy: " << (double(remisy_c)/double(gry_c))*100 << "%" << endl;
if(porazki_c>0)
cout << " przegrane: " << (double(porazki_c)/double(gry_c))*100 << "%" << endl;
}
return 0;
}