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.