Jędnoręki bandyta – dodanie rankingu i rejestrowanie monet gracza wchodzącego do gry

0

Witam szukam kogoś kto pomoże mi zrobić ranking w mojej grze. Chciałbym aby każdy gracz który uruchomi grę zapisywał się z ilością monet którą wpiszę, chce aby ten ranking opierał się na tym jaki gracz wydał więcej monet na grę. Niestety oglądałem tutoriale, czytałem również jakieś poradniki i nic mi nie działa. Pomoże ktoś? Kod prezentuj się tak :

#include <iostream>
#include <conio.h>
#include <windows.h>
#include <cstdlib>
#include <ctime>
#include <string>
#include <fstream>
using namespace std; 
 
void dolary()
{
    HANDLE hOut;
hOut = GetStdHandle( STD_OUTPUT_HANDLE );
SetConsoleTextAttribute( hOut, FOREGROUND_GREEN | FOREGROUND_INTENSITY );
cout<<"   $ $          $ $         $ $          $ $     "<<endl;
cout<<"  $$$$$        $$$$$       $$$$$        $$$$$    "<<endl;
cout<<" $ $ $        $ $ $       $ $ $        $ $ $     "<<endl;
cout<<"  $$$$$        $$$$$       $$$$$        $$$$$    "<<endl;
cout<<"   $ $ $        $ $ $       $ $ $        $ $ $   "<<endl;
cout<<"  $$$$$        $$$$$       $$$$$        $$$$$    "<<endl;
cout<<"   $ $          $ $         $ $          $ $     "<<endl;
SetConsoleTextAttribute( hOut, 0 );
SetConsoleTextAttribute( hOut, FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_RED );
}
void moneta()
{
    cout<<"   __         "<<endl;
    cout<<"  |  |.....   "<<endl;
    cout<<"  | .|     .  "<<endl;
    cout<<"  |. |      .  "<<endl;
    cout<<"  |. |      .  "<<endl;
    cout<<"  |. |      . "<<endl;
    cout<<"  | .|     . "<<endl;
    cout<<"  |__|.....  "<<endl;
     
     
     
     
}
 
 
void nazwa()
{
     
HANDLE hOut;
hOut = GetStdHandle( STD_OUTPUT_HANDLE );
SetConsoleTextAttribute( hOut, FOREGROUND_RED | FOREGROUND_INTENSITY );     
cout<<"|=================================|"<<endl;  
cout<<"|R RRR     OOOOO    L       L     | "<<endl;
cout<<"|R    R   O     O   L       L     |" <<endl;
cout<<"|R    R  O       O  L       L     |" <<endl;
cout<<"|R RRR   O       O  L       L     |"<<endl;    
cout<<"|R   R   O       O  L       L     |"<<endl;
cout<<"|R    R   O     O   L       L     |" <<endl;
cout<<"|R    R    OOOOO    L LLLL  L LLLL|"<<endl; 
cout<<"|=================================|"<<endl;
SetConsoleTextAttribute( hOut, 0 );
SetConsoleTextAttribute( hOut, FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_RED );
}
 
 
 
int main(int argc, char** argv) {
     
    HANDLE hOut;
    hOut = GetStdHandle( STD_OUTPUT_HANDLE );          
    nazwa();
    setlocale(LC_ALL, "");
    srand(time(NULL));
 
    int wybor;
    string imie;
    cout << "Podaj swój nick" << endl;
    cin >> imie;
    system("cls");
 
    cout << "Witaj" << " " << imie << endl;
    Sleep(2000);
    system("cls");
    fstream plik; 
    int papa=1;
     
    do
    {
         
        int monety=0;
         
        moneta();
        cout << "Podaj ile chcesz wrzucić monet" << endl;
        cin >> monety;
        if (monety > 10)
        {
            cout << "Możesz wrzucić tylko 10 monet po nominale 1" << endl;
            continue;
        } 
         
        while (monety--)
        {
                 
            int tabo[3] = {};
            cout << "1.Nowa gra" << endl;
            cout << "2.Ranking" << endl;
            cout << "3.Koniec"<<endl;
            cin >> wybor;
            switch (wybor) {
            case 1:
                cout << "Losowanie!" << endl;
                Sleep(1000);
                system("cls");
                for (int i = 0; i < 3; i++) {
                    tabo[i] = rand() % 9 + 1;
                    cout << tabo[i];
                }
                cout << endl;
 
                if ((tabo[1] == tabo[0]) && (tabo[2] == tabo[0])) {
                    cout << "Wygrałeś!" << endl;
                    dolary();
                }
                else if (tabo[1] == tabo[0]) {
 
                    tabo[2] = rand() % 9 + 1;
                    cout << tabo[0] << tabo[1] << tabo[2] << endl;
                    if (tabo[2] == tabo[0]) {
                        cout << "Wygrałeś!" << endl;
                        dolary();
                    }
                }
                else if (tabo[2] == tabo[0]) {
 
                    tabo[1] = rand() % 9 + 1;
                    cout << tabo[0] << tabo[1] << tabo[2] << endl;
                    if (tabo[1] == tabo[0]) {
                        cout << "Wygrałeś!" << endl;
                        dolary();
                    }
                }
                else if (tabo[2] == tabo[1]) {
 
                    tabo[0] = rand() % 9 + 1;
                    cout << tabo[0] << tabo[1] << tabo[2] << endl;
                    if (tabo[0] == tabo[1]) {
                        cout << "Wygrałeś!" << endl;
                        dolary();
                    }
                }else
                 
                 
                break;
 
            case 2:
                ifstream plik;
                plik.open("ranking.txt", ios::out | ios::app);
                 
                plik<<imie<<monety<<endl;
                plik.close();
                break;
             
            case 3:
                exit (0);
                break;    
            }
 
            if (monety<=0)
                cout<<"Nie masz już więcej monet na grę"<<endl;
        }
 
        cout << "Czy chcesz zagrać ponownie ?"<<endl;
        cout << "1.Tak" << endl << "2.Nie" << endl;
         
        cin >> papa;
    } while (papa == 1);
 
 
    return 0;
}
0

ifstream służy do czytania z pliku
ofstream służy do pisania do pliku
fstream służy do odczytu i zapisu.

Tak więc ten kawałek kodu jest nieprawidłowy:

ifstream plik; // Tobie chodziło o ofstream
plik.open("ranking.txt", ios::out | ios::app);

plik << imie << monety << endl;

Input/output with files

0

To jak to powinno wygladać bo już kompletnie nie wiem :/

0

A co robisz? Piszesz do pliku a więc musisz użyć ofstream.
Musisz użyć { oraz } w case z tego powodu -> tu link
Efekt końcowy:

case 2:
{
    ofstream plik;
    plik.open("ranking.txt", ios::out | ios::app);

    plik << imie << monety << endl;
    plik.close();
    break;
}
0

int tabo[3] = {};
;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1