• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Dodawanie jezyków do programu, jednoręki bandyta

Aruba Cloud - Virtual Private Server VPS
+2 głosów
616 wizyt
pytanie zadane 5 maja 2017 w C i C++ przez Mechatron96 Nowicjusz (220 p.)

Witam :)  Piszę program jednoręki bandyta, w ramach projektu. Program mi działa, ale w założeniach programu są języki obce. Nie mam pomysłu jak mogę uniwersalnie w menu wyświetlać dowolny język, tzn jak to uniwersalnie napisać. Do tej pory poprostu skopiowałem całe menu i zamiast polskich komend wpisałem w języku obcym. Pierwszy pomysł to utworzenie plików tekstowych, w których będą komendy w danym języku i napisanie funkcji która będzie wczytywać z pliku komendy. Problem chyba jest taki, że linijki będą wczytywane po kolei, a przecież użytkownik może wybierać różne opcje i wtedy nastapi wczytanie nie tych koment co trzeba. Proszę bardzo o pomoc.

void menu_glowne(int &liczba, int &zeton,Lista *&g)
{
    Rolka A[3];
    string imie;
    char kontynuacja;
    int wygrane=50,a;
    int jezyk;
    bool czygral=false;
    bool ranking= false;

    cout<<"_______________________"<<endl;
    cout<<"  JEDNOREKI BANDYTA"<<endl;
    cout<<"_______________________"<<endl;
    cout<<endl;
    cout<<"     Witaj"<<endl;
    cout<<endl;
    cout<<"Wybierz jezyk:"<<endl;
    do
    {
        cin.clear();
        cin.sync();
        cout<<"[1].Polski"<<endl;
        cout<<"[2].Angielski"<<endl;
        cout<<"[3].Niemiecki"<<endl;
        cin>>jezyk;
    }while(jezyk<1 || jezyk>3);

    switch(jezyk)
    {
    case 1:
    {
    do
    {
        cout<<"Zetony:"<<endl;
        cout<<wygrane<<endl;
        cout<<"Menu wyboru: "<<endl;
        cout<<"[1].Start"<<endl;
        cout<<"[2].Lista graczy i wyniki"<<endl;
        cout<<"[3].Zakoncz"<<endl;
        cout<<endl;
        do
        {
            cin.clear();
            cin.sync();
            cout<<"Wybierz: "<<endl;
            cin>>liczba;
        }while(liczba<1 || liczba>3);

        switch(liczba)
        {
            case 1:
            {
                if(czygral==false)
                {
                    cout<<"Podaj imie"<<endl;
                    cin>>imie;
                }
                czygral=true;
                ranking=false;
                do
                {
                    cin.clear();
                    cin.sync();
                    cout<<"Wybierz ile zetonow chcesz postawic:"<<endl;
                    cout<<"[1]"<<endl;
                    cout<<"[2]"<<endl;
                    cout<<"[3]"<<endl;
                    cin>>zeton;
                }while((zeton<1 || zeton>3)||(zeton>wygrane));
                losowanie(A);
                switch(porownanie(A))
                    {
                    case 0:
                        cout<<"Niestety nic nie wygrales"<<endl;
                        wygrane=odejmowanie(wygrane,zeton);
                    break;
                    default:
                        a=przelicznik(porownanie(A),zeton);
                        cout<<"Wygrales "<<a<<" zetonow!"<<endl;
                        wygrane=dodawanie(wygrane,a,zeton);
                    break;
                    }
            }break;
            case 2:
            {
                ranking=true;
                if(czygral==true)
                {
                    dodaj_gracza(g,wygrane,imie);
                    zapisz_liste(g);
                    czygral=false;
                    wygrane=50;
                }
                wyswietl_liste(g);
            }
            break;
            case 3:
                cout<<"Zegnaj"<<endl;
                exit(0);
            break;
        }
        cin.clear();
        cin.sync();
        if(wygrane>0)
        {
            do
            {
                cout<<"Czy chcesz kontynuowac? [t/n]:"<<endl;
                cin>>kontynuacja;

                if(kontynuacja=='n'&&ranking==false)
                   {
                    dodaj_gracza(g,wygrane,imie);
                    zapisz_liste(g);
                   }

            }while(kontynuacja!='t' && kontynuacja!='n');
            system("cls");
        }
        else
            cout<<"Niestety nie masz wystarczajacej liczby zetonow by grac dalej."<<endl;
    }while(kontynuacja=='t' && wygrane>0);

    }break;


    case 2:
    {
    do
    {
        cout<<"Tokens:"<<endl;
        cout<<wygrane<<endl;
        cout<<"Selection menu: "<<endl;
        cout<<"[1].Start"<<endl;
        cout<<"[2].List of players"<<endl;
        cout<<"[3].Game over"<<endl;
        cout<<endl;
        do
        {
            cin.clear();
            cin.sync();
            cout<<"Choose: "<<endl;
            cin>>liczba;
        }while(liczba<1 || liczba>3);

        switch(liczba)
        {
            case 1:
            {
                if(czygral==false)
                {
                    cout<<"State your name"<<endl;
                    cin>>imie;
                }
                czygral=true;
                ranking=false;
                do
                {
                    cin.clear();
                    cin.sync();
                    cout<<"How much tokens can you get:"<<endl;
                    cout<<"[1]"<<endl;
                    cout<<"[2]"<<endl;
                    cout<<"[3]"<<endl;
                    cin>>zeton;
                }while((zeton<1 || zeton>3)||(zeton>wygrane));
                losowanie(A);
                switch(porownanie(A))
                    {
                    case 0:
                        cout<<"Sorry, but you lose"<<endl;
                        wygrane=odejmowanie(wygrane,zeton);
                    break;
                    default:
                        a=przelicznik(porownanie(A),zeton);
                        cout<<"You win "<<a<<" tokens!"<<endl;
                        wygrane=dodawanie(wygrane,a,zeton);
                    break;
                    }
            }break;
            case 2:
            {
                ranking=true;
                if(czygral==true)
                {
                    dodaj_gracza(g,wygrane,imie);
                    zapisz_liste(g);
                    czygral=false;
                   zeton=50;
                }
                wyswietl_liste(g);
            }
            break;
            case 3:
                cout<<"Goodbay"<<endl;
                exit(0);
            break;
        }
        cin.clear();
        cin.sync();
        if(wygrane>0)
        {
            do
            {
                cout<<"Do you want to continue? [y/n]:"<<endl;
                cin>>kontynuacja;

                if(kontynuacja=='n'&&ranking==false)
                   {
                    dodaj_gracza(g,wygrane,imie);
                    zapisz_liste(g);
                   }

            }while(kontynuacja!='y' && kontynuacja!='n');
            system("cls");
        }
        else
            cout<<"Sorry but you doesn't have tokens and you can't continue the game."<<endl;
    }while(kontynuacja=='y' && wygrane>0);

    }break;

    case 3:
    {
    do
    {
        cout<<"Geld:"<<endl;
        cout<<wygrane<<endl;
        cout<<"Auswahlmenu: "<<endl;
        cout<<"[1].Start"<<endl;
        cout<<"[2].Liste des Spieler"<<endl;
        cout<<"[3].Ende des Spiele"<<endl;
        cout<<endl;
        do
        {
            cin.clear();
            cin.sync();
            cout<<"Wahle: "<<endl;
            cin>>liczba;
        }while(liczba<1 || liczba>3);

        switch(liczba)
        {
            case 1:
            {
                if(czygral==false)
                {
                    cout<<"Geben Sie Ihren vollen Namen an: "<<endl;
                    cin>>imie;
                }
                czygral=true;
                ranking=false;
                do
                {
                    cin.clear();
                    cin.sync();
                    cout<<"Wie viele Geld konnen Sie stellen:"<<endl;
                    cout<<"[1]"<<endl;
                    cout<<"[2]"<<endl;
                    cout<<"[3]"<<endl;
                    cin>>zeton;
                }while((zeton<1 || zeton>3)||(zeton>wygrane));
                losowanie(A);
                switch(porownanie(A))
                    {
                    case 0:
                        cout<<"Es tut mir leid, aber verlieren Sie"<<endl;
                        wygrane=odejmowanie(wygrane,zeton);
                    break;
                    default:
                        a=przelicznik(porownanie(A),zeton);
                        cout<<"Gewinnen Sie "<<a<<" Geld!"<<endl;
                        wygrane=dodawanie(wygrane,a,zeton);
                    break;
                    }
            }break;
            case 2:
            {
                ranking=true;
                if(czygral==true)
                {
                    dodaj_gracza(g,wygrane,imie);
                    zapisz_liste(g);
                    czygral=false;
                    zeton=50;
                }
                wyswietl_liste(g);
            }
            break;
            case 3:
                cout<<"Auf Wiedersehen"<<endl;
                exit(0);
            break;
        }
        cin.clear();
        cin.sync();
        if(wygrane>0)
        {
            do
            {
                cout<<"Wollen Sie fortfahren? [j/n]:"<<endl;
                cin>>kontynuacja;

                if(kontynuacja=='n'&&ranking==false)
                   {
                    dodaj_gracza(g,wygrane,imie);
                    zapisz_liste(g);
                   }

            }while(kontynuacja!='j' && kontynuacja!='n');
            system("cls");
        }
        else
            cout<<"Tut mir leid, aber du hast keine Token und du kannst das Spiel nicht fortsetzen."<<endl;
    }while(kontynuacja=='j' && wygrane>0);

    }break;

}
}

 

komentarz 5 maja 2017 przez 10kw10 Pasjonat (22,880 p.)
Nie musisz przeciez wczytywac linii po kolei. Mozesz wczytac np. 20 linie. Musisz tylko to dobrze rozplanowac.
1
komentarz 5 maja 2017 przez Ehlert Ekspert (214,940 p.)

W założeniach języki obce i ten polski w kodzie frown

2 odpowiedzi

+2 głosów
odpowiedź 6 maja 2017 przez Marcin_N_97 Stary wyjadacz (10,290 p.)
A ja bym przerzucił to w programowanie obiektowe zrobił sobie z tego klasę, która będzie po prostu mechanizmem gry i robiła poszczególna rzeczy (oprócz wyświetlania). Potem zrobić klasy pochodne jako poszczególne języki i w nich po prostu rzucać metody ojca z wyświetleniem w jednym rodzaju języka. Więcej się napracujesz, ale nauczysz się dużo więcej + będziesz mógł z dużo większą łatwością dodawać kolejny język do programu.
+1 głos
odpowiedź 5 maja 2017 przez Rout Bywalec (2,350 p.)

Jest biblioteka która to umożliwia. Sprawdź biblioteke gettext. Oczywiście opcja pliki tekstowe też podziała ale tak jest niewygodna :D

komentarz 5 maja 2017 przez Mechatron96 Nowicjusz (220 p.)
Ok, ale jak wymusić aby dane słowo z pliku tekstowego było odczytywane w danym momencie??
komentarz 5 maja 2017 przez QizmoPL Stary wyjadacz (11,440 p.)
mysle, ze plik tekstowy dziala ze masz kilka plikow i wybierasz odpowiedni

Podobne pytania

0 głosów
2 odpowiedzi 327 wizyt
pytanie zadane 22 maja 2017 w C i C++ przez Mechatron96 Nowicjusz (220 p.)
0 głosów
1 odpowiedź 161 wizyt
pytanie zadane 22 kwietnia 2017 w C i C++ przez Mechatron96 Nowicjusz (220 p.)
0 głosów
0 odpowiedzi 376 wizyt
pytanie zadane 19 grudnia 2016 w C i C++ przez mzcmc Użytkownik (620 p.)

93,327 zapytań

142,325 odpowiedzi

322,396 komentarzy

62,657 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...