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

powrot do menu glownego

Object Storage Arubacloud
0 głosów
773 wizyt
pytanie zadane 30 lipca 2018 w C i C++ przez kam1lk Nowicjusz (120 p.)
Witam, jestem nowy w programowaniuale mam wielkie ambicje. I już napotykam problemy, pewnie z tego powodu że nie wiem na tyle dużo.

Sprawa wygląda prosto - zamierzam miec aplikacje ktora umozliwi mi powrot do menu.

Schemat jak to wygląda : jest sobie menu switcha i po nacisnieciu odpowiedniego case`a przeskakuje do kolejnego menu switch, w ktorym jedna z jego opcji umozliwia powrot do tego poczatkowego menu. Chce tez dodac, ze to 2 menu jest utworzonym obiektem innej klasy po wczytaniu zawartosci pliku tekstowego.

Czyli:

cout<<"1.Walki z gladiatorami."<<endl;
    cout<<"2.Walki z Bossami."<<endl;
    cout<<"3.Sklep z bronia."<<endl;
    cout<<"4.Sklep ze zbroja."<<endl;
    cout<<"5.Sklep z tarczami."<<endl;
    cout<<"6.Sklep z magia (odblokowany od pokonania 7 Bossa)."<<endl;
    cout<<"7.Zapisz gre."<<endl;
    cout<<"8.Wczytaj gre."<<endl;
    cout<<"9.Wyjscie."<<endl;
    cout<<": ";
    cin>>wartosc[3];

    switch(wartosc[3])
    {
    case 1:break;
    case 2: {system("cls");
             Bossowie bb1;
             bb1.zaladuj();}
             getchar();break;
    case 3:
        { system("cls");
            Bronie b1;
             b1.zaladuj();}
             getchar();

 

Tutaj jest to główne menu, a teraz już w innej klasie takie:

       int w;
            cout<<"Wybierz: ";
            cin>>w;
            switch (w)
            {
                case 1: break;
                case 2: break;
                case 3: break;
                case 4: break;
                case 5: break;
                case 6: break;
                case 7: break;
                case 8: break;
                case 9: break;
                case 10:break;
                case 11: break;

            }

 

Jezeli chodzi o wyswietlanie naekranie wszystko dziala jak nalezy, tylko nie mam pomyslu jak wlasnie móc po wcisnieciu w 2 menu case`a 11 powrocić do menu wyboru mojego głównego menu.

Poratujcie pomysłami, gdyż po tym rusze mocno do przodu, a na razie moge bezradnie przeglądać fora
komentarz 30 lipca 2018 przez niezalogowany

polecam wstawiać kod w przeznaczonym do tego bloczku code(ten przycisk w edytorze z napisem code)

podgląd

 

komentarz 30 lipca 2018 przez cprn Początkujący (380 p.)

@kam1lk, poszukaj, co to game-loop, bo tego Ci brakuje - pętli, która w kółko odpala m.in. Twojego switch-a. Najlepiej przejdź jakiś tutorial z pisania gier (wystarczy tekstowych), trochę lepiej zrozumiesz ich architekturę. Game loop odpala w kółko (można powiedzieć "co klatka") kilka rzeczy, m.in. obsługę inputu (wejścia: z klawiatury, myszy, gamepada, etc.), puszczanie muzyki, aktualizuje stan obiektów, jak np. ilość punktów, etc., i jeszcze kilka innych rzeczy. Twój `switch` to tylko input.

komentarz 30 lipca 2018 przez kam1lk Nowicjusz (120 p.)
polecasz jakiś dobry poradnik ?
komentarz 1 sierpnia 2018 przez cprn Początkujący (380 p.)

Nie, po Polsku nie znam, nie siedzę w temacie. Widzę, że uczysz się C++, ale koncepcje możesz poznać w dowolnym języku i najprościej obecnie jest chyba w JavaScript. Jeśli nie przeszkadza Ci język, to tutaj masz link do w kosmos odjechanej serii na YouTube gościa, który tłumaczy dokładnie jak działają gry i ich uproszczona fizyka - najbardziej otwierający oczy tutorial o budowie gier, jaki znam. Gość najpierw pisze po najprostszej linii oporu, potem gdzieś w połowie kursu wyjaśnia jakie to ma wady i uczy jak zrefaktorować architekturę do czegoś bardziej rozwijalnego.

Coding Math on YouTube

1 odpowiedź

0 głosów
odpowiedź 30 lipca 2018 przez Marcin_N_97 Stary wyjadacz (10,290 p.)

Cześć!

Nie do końca zrozumiałem o co dokładnie Ci chodzi, ale zakładam, że masz problem z możliwością wielokrotnego powrotu do menu.

cin >> menu;
while(menu != 'q')
{
   switch(menu)
   {
      case1: break;
      ...
   }
   cin >> menu;
}

Dzięki temu będziesz mógł ponownie wybierać rzeczy z menu, aż wczytany przeez Ciebie znak nie będzie równał się 'q'

komentarz 30 lipca 2018 przez kam1lk Nowicjusz (120 p.)
Sprobowalem zrobić jak pisałeś więc testowałem coś łatwiejszego, mianowicie:

#include <iostream>

using namespace std;
int w, w1, w2;
int main()
{
    cout << "Wybierz 1 lub 2";
    cin>>w;
    while (w=!'3')
    {
        switch(w)
        {
            case 1 : cout<<"Wybierz 3 lub 4"<<endl;
            cin>>w1;
            while (w1=!'1')
            {
                switch (w1)
                {
                    case 1: cout<<"3"; break;
                    case 2: cout<<"4"; break;
                }
            }

            break;

            case 2 : cout<<"Wybierz 5 lub 6"<<endl;
            cin>>w2;
            while (w2=!'1')
            {
                switch(w2)
                {
                    case 1: cout<<"5"; break;
                    case 2: cout<<"6"; break;
                }
            }
        }
    }
}

 

Ale po kliknieciu 1, 2, 3 lub czegokolwiek program i tak mi nie chce dzialac, czuje sie bez pomysłów
komentarz 30 lipca 2018 przez Marcin_N_97 Stary wyjadacz (10,290 p.)
Twój kod jest strasznie nieczytelny oraz zawiera błędy logiczne w whilu -> wykrzyknik powinien być przed znakiem =

 

Wrzucaj go proszę używając formatowania.
komentarz 30 lipca 2018 przez kam1lk Nowicjusz (120 p.)
#include <iostream>

using namespace std;
int w, w1, w2;
int main()
{
    cout << "Wybierz 1 lub 2";
    cin>>w;
    do
    {
        switch(w)
        {
            case 1 : cout<<"Wybierz 3 lub 4"<<endl;
            cin>>w1;
            do
            {
                switch (w1)
                {
                    case 3: cout<<"3"; break;
                    case 4: cout<<"4"; break;
                }
            }while(w1!='3');

            break;

            case 2 : cout<<"Wybierz 5 lub 6"<<endl;
            cin>>w2;
           do
            {
                switch(w2)
                {
                    case 5: cout<<"5"; break;
                    case 6: cout<<"6"; break;
                }
            }while(w2!='q');
        }
    }while(w!='3');
}

mam nadzieje że teraz będzie lepiej widoczne, chodzi mi o to aby już po wybraniu 3-4 albo 5-6 znowu była opcja wyboru między 1-2, to jest mój główny zamysł.

komentarz 30 lipca 2018 przez Marcin_N_97 Stary wyjadacz (10,290 p.)
A mógłbyś to wytłumaczyć na jakimś przykładzie?
komentarz 30 lipca 2018 przez kam1lk Nowicjusz (120 p.)
jest menu główne zawierające opcje: Podaj słowo, podaj liczbe, podaj symbol, i po wybraniu jednej opcji wyswietla mi sie kolejne menu pyatjące co zrobić z wybraną opcją, wybrałem slowo i wyswietla mi się kolejne menu: Dopisz słowo, odwróc słowo, albo powroc do menu wyboru. I chodzi mi właśnie o powrót do tego menu wyboru, że można co chwila wchodzić w opcję i wracać do tego menu, w grze to np wejdz do sklepu i kup albo wejdz i wroc za drzwi, takie żonglowanie w zależności od wyboru które menu ma się wyświetlać.
komentarz 30 lipca 2018 przez Marcin_N_97 Stary wyjadacz (10,290 p.)
Musisz stworzyć sobie switcha w switchu oraz jeden z casów musi pozwalać powrócić do poprzedniej kategorii. Jeśli chcesz mówić, że nie istnieje taki znak to wtedy musisz jeszcze zazębić whila.
komentarz 30 lipca 2018 przez kam1lk Nowicjusz (120 p.)
Właśnie cały problem tkwi w tym, że nie mam pojęcia jak taki case może pozwolić powrócić do poprzedniej kategorii, to jest cały mój problem, a chyba za słabo szukam bo nie widze tego w internecie.

Podobne pytania

0 głosów
1 odpowiedź 587 wizyt
pytanie zadane 24 listopada 2019 w C i C++ przez Hardwell Dyskutant (8,980 p.)
0 głosów
1 odpowiedź 175 wizyt
pytanie zadane 14 kwietnia 2017 w C i C++ przez DragonCoder Nałogowiec (36,500 p.)
0 głosów
2 odpowiedzi 217 wizyt
pytanie zadane 5 października 2017 w HTML i CSS przez Justyna Obywatel (1,210 p.)

92,620 zapytań

141,474 odpowiedzi

319,813 komentarzy

62,004 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...