Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem C++ Draci doupe

Zdravim, snazim se naprogramovat v jazyce C++ vlastni pribeh draciho doupete. Jsem zacatecnik a rad bych se zeptal jestli je nejaky prikaz na to abych mohl prechazet v techto zavorkach {} ... ci jestli to jde nejak jednoduseji napsat.

priklad: if (a == 1)
{
cin >> a;
if (a == 1)
cout << "Jsi uvnitr krcmy. Citis zapach zvratek" << endl;
if (a == 2)
cout << "Obchazis krcmu kolem dokola, v krovi nachazis par zlatych." << endl;
cout << "+ 5 zlatych" << endl;

}
ˇ================================================= ================================================== =============================
Jde mi o to ze kdyz dam poprve prikaz 2 ( porozhlednout se kolem) tak abych nemusel psat znovu prikaz 1 timto zpusobem ale abych se vratil zpet nahoru na tento prikaz

{
cout << "Rozhodnul jsi se jit rovne. Po nejake dobe dojdes ke krcme.Chces jit dovnitr nebo se porozhlidnes kolem." << endl;
cout << endl;
cout << "1. Jit dovnitr" << endl;
cout << "2: Porozhledou se kolem!" << endl;
}
a jeste pokud bych si vybral znovu 2 tak aby me to zase neposlalo v tomto pripade pro zlaty ale abych to naprogramoval tak aby tam vyskocilo treba : Tuto moznost nemuzes znovu provest.

Dekuji

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Jde mi o to ze kdyz dam poprve prikaz 2 ( porozhlednout se kolem) tak abych nemusel psat znovu prika…
XoXoChanel 25.04.2017 20:09
XoXoChanel
v tomto pripade zpet ne tento vyber, cout << "1. Jit dovnitr" << endl; cout << "2: Porozhledou se ko…
kecep 25.04.2017 20:21
kecep
# Zkuz ty moznosti dat a cist treba ze : Switch - Nebo pouzit 'Boolean'. bool Mistnost_1(true); if…
XoXoChanel 25.04.2017 20:36
XoXoChanel
Díky :) zkusim nový
Kecep 26.04.2017 12:30
Kecep
Najprv si zvoľ dátové štruktúry, v ktorých budeš mať uložené dáta hry, ako napr. popis miestností, m… nový
los 25.04.2017 22:05
los
Díky moc :) nový
Kecep 26.04.2017 12:31
Kecep
Mozno by bolo dobre keby si si nastudoval ze co to je stavovy automat. Da sa to aj kreslit. poslední
MM.. 26.04.2017 16:49
MM..

Jde mi o to ze kdyz dam poprve prikaz 2 ( porozhlednout se kolem) tak abych nemusel psat znovu prikaz 1 timto zpusobem ale abych se vratil zpet nahoru na tento prikaz

# Zpet na jaky prikaz ?
* Zpusobu jde pouzit vice..

v tomto pripade zpet ne tento vyber,
cout << "1. Jit dovnitr" << endl;
cout << "2: Porozhledou se kolem!" << endl;
int a;
cin >> a;

ja vlastne zadam cislo bud 1 nebo 2 a ten program vybere to cislo jaky zadam ale nevim jak se vratit k tomu puvodnimu prikazu abych to nemusel znovu psat. :)

# Zkuz ty moznosti dat a cist treba ze : Switch

- Nebo pouzit 'Boolean'.

bool Mistnost_1(true);

if (Mistnost_1 == true)
{
    cout << "" << endl;
    xxxxx
    xxxxx
   rozhledni se kolem sebe - - -  xx.Mistnost_1 = true;
}

- Nebo kondici : 'While' :

while (kondice)
{
    /* Opakovat instrukci */
}

# Pocetl bych i co znamena a jak se pouziva : Do, a For..

Najprv si zvoľ dátové štruktúry, v ktorých budeš mať uložené dáta hry, ako napr. popis miestností, možné akcie, aktuálny stav a pod. Potom môžeš písať hlavnú slučku hry.

Napríklad v tvojom konkrétnom prípade môžeš uložiť informácie o miestnostiach do objektov triedy Room. Tá by mala mať metódu print, ktorá sa vypíše, keď sa v nej budeš nachádzať. Tiež bude mať zoznam akcií actions, ktoré môžeš vykonať a zoznam vecí items, ktoré sa v nej nachádzajú. Vykonateľné akcie budú objekty triedy Action a budú mať vlastnosť pre svoj názov a metódu pre vykonanie. Veci v miestnosti, ktoré môže hráč zbierať, budú objekty triedy Item. Tie budú mať tiež minimálne svoj názov.

V stave hry si potrebuješ pamätať miestnosť, kde sa hráč nachádza a inventár vecí, ktoré má pri sebe.

Hlavná slučka potom bude vyzerať nejako takto:

while (!state.finished) {
    printRoom(state);

    while (true) {
        Action* action = promptAction(state);
        if (action != nullptr) {
            action->execute(state);
            break;
        }
    }
}

Miestnosti budeš definovať na začiatku. Akcie budeš mať rôzne, napr. MoveAction, TakeAction, CompositeAction a pod. Vykonanie akcie môže modifikovať stav hry, stav miestnosti a stav akcie.

Zpět do poradny Odpovědět na původní otázku Nahoru