Cześć
Mam pewien problem. Stworzyłem prostą grę - Kamień Papier Nożyce i chciałbym wyświetlić (po wybraniu drugiej opcji w menu) statystyki gracza z jego wszystkich rozegranych gier oraz z aktualnej sesji (to drugie już zrobiłem).
Chodzi o to że po wygraniu gry zostawałaby ona dodana do liczby wszystkich wygranych gier w pliku. Po wybraniu opcji statystyk z menu chce odczytać z pliku ilość wygranych, przegranych i remisów niezależnie od tego czy program był zamykany czy nie. Na podstawie tego chcę zrobić procentowy stosunek wygranych do przegranych, ale z tym sobie już poradzę ;)
Znalazłem taki temat który prawdopodobnie jest rozwiązaniem tego problemu: https://forum.pasja-informatyki.pl/38285/dodawanie-liczb-w-pliku-txt jednak nie wiem jak to zaimplementować do tego programu...
Tutaj daję cały kod bo nie wiem co konkretnie będzie potrzebne:
#include <iostream>
#include <cstdlib>
#include <time.h>
#include <fstream>
using namespace std;
int choice; //wybór w menu gry
int ingamemenu; //menu po ukonczeniu gry
int movement; //ruch gracza
int bot_movement; //ruch bota
int win_counter=0; //licznik zwyciestw
int lose_counter=0; //licznik przegranych
int draw_counter=0; //licznik remisow
void InGameMenu() //menu po wybraniu opcji w menu glownym (patrz main())
{
cout << " Rock Paper Scissors" << endl;
cout << "Kamien - 1, Papier - 2, Nozyce - 3" << endl << endl;
cout << "Wybierz numer ruchu: ";
cin >> movement;
cout << endl;
}
void Bot() //losuje ruch komputera, wypisuje go oraz sprawdza kto wygrał; zapisuje statystyki
{
bot_movement = rand()%3+1;
if(bot_movement == 1 && movement == 1)
{
cout << "Przeciwnik wybral kamien." << endl;
draw_counter++;
cout << "Remis" << endl;
}
if(bot_movement == 1 && movement == 2)
{
cout << "Przeciwnik wybral kamien." << endl;
win_counter++;
cout << "Wygrana" << endl;
}
if(bot_movement == 1 && movement == 3)
{
cout << "Przeciwnik wybral kamien." << endl;
lose_counter++;
cout << "Przegrana" << endl;
}
if(bot_movement == 2 && movement == 1)
{
cout << "Przeciwnik wybral papier." << endl;
lose_counter++;
cout << "Przegrana" << endl;
}
if(bot_movement == 2 && movement == 2)
{
cout << "Przeciwnik wybral papier." << endl;
draw_counter++;
cout << "Remis" << endl;
}
if(bot_movement == 2 && movement == 3)
{
cout << "Przeciwnik wybral papier." << endl;
win_counter++;
cout << "Wygrana" << endl;
}
if(bot_movement == 3 && movement == 1)
{
cout << "Przeciwnik wybral nozyce." << endl;
win_counter++;
cout << "Wygrana" << endl;
}
if(bot_movement == 3 && movement == 2)
{
cout << "Przeciwnik wybral nozyce." << endl;
lose_counter++;
cout << "Przegrana" << endl;
}
if(bot_movement == 3 && movement == 3)
{
cout << "Przeciwnik wybral nozyce." << endl;
draw_counter++;
cout << "Remis" << endl;
}
}
int main()
{
srand(time(NULL));
cout << "Menu Gry" << endl;
cout << "1. Graj" << endl;
cout << "2. Zobacz statystyki" << endl;
cout << "3. Zakoncz program" << endl;
cin >> choice;
do
{
switch(choice)
{
case 1:
{
system("cls");
InGameMenu();
Bot();
cout << endl << "Co chcesz zrobic?" << endl;
cout << "1. Zagraj ponownie!" << endl;
cout << "2. Wroc do menu" << endl;
cout << "3. Zakoncz program" << endl;
cin >> ingamemenu;
if(ingamemenu == 2)
{
system("cls");
main();
}
break;
}
case 2:
{
system("cls");
cout << "Statystyki podczas tej sesji:" << endl;
cout << "Wygrane: " << win_counter << endl;
cout << "Przegrane: " << lose_counter << endl;
cout << "Remisy: " << draw_counter << endl;
int x;
cout << endl << "Nacisnij dowolna liczbe, aby wrocic do menu." << endl;
cin >> x;
system("cls");
main();
}
case 3:
{
exit(0);
}
default:
{
system("cls");
cout << "Wybrales zla liczbe. Sprobuj jeszcze raz." << endl << endl;
main();
}
}
}while(ingamemenu == 1);
return 0;
}
Z góry dzięki za pomoc ^^