Egy konzolos kvízjáték hogyan épül fel?
Tele van if-el pl:
kérdés kiirat
válasz bekér
ha válasz jó akkor
következő kérdés
különben
játék vége
Vagy van valami egyszerűbb mód mert így lesz 20-30 ilyen algoritmus :D
Hol lesz a 20-30 algoritmus?
Ez 1 db algoritmus.
Egyébként nem hiszem, hogy érdemes konzolos kvízjátékot csinálni, inkább valami egyszerű ablakos formában.
De a kövi kérdésnél megint egy ilyen
..aztán megint..megint...stb.
Azért nem ablakos, mert ott még nem tartok (Python)
"De a kövi kérdésnél megint egy ilyen
..aztán megint..megint...stb. "
Függvény, ciklus?
Alapesetben a jovalaszok változó 0.
Létrehozol egy listát ( [link] ), ami könyvtárakat ( [link] ) tartalmaz.
Egy könyvtár tartalmazza:
- a kérdést: 'kerdes': 'Melyik egy római császár?',
- a válaszokat: '1': 'Napoleon', '2': 'Hitler', '3': 'Zámbó Jimmy', '4': 'Julius Caesar',
- a helyes választ: 'helyes': '4'
Összekevered a kérdéseket (random.shuffle(): [link] )
Kiírod a lista első eleméből a kérdést és a 4 választ.
Bekéred a felhasználótól a választ (1-4).
Ha nem megfelelő bemenetet adott meg, akkor addig (while), amíg nem ad meg megfelelő bemenetet, választ vársz.
Ha helyes a válasz (a megadott válasz megegyezik a helyes válasz sorszámával) növeled a jovalaszok valtozó számát. Ha van még kérdés, akkor következő kérdés.
Ha nem, akkor kiírod az összes kérdés számát és a jovalaszok változó értékét, majd végül kilépés.
Persze hogy van egyszerűbb módja.
A programok nem csak algoritmusból áll. Ahhoz hogy jó programot írj jó adatszerkezetet kell kitalálni hozzá. It is ez a kulcs. Meg kell tervezned azt az adatszerkezetet ami képes tárolni a kérdéseket és a válaszokat is. Ráadásul a válaszokról azt is kell tudni hogy melyik kérdéshez tartozik és még azt is hogy helyes-e az adott válasz. Ez tipikusan összetett adatszerkezet lesz (pl lista) ráadásul lehet hogy nem is egy, hanem kettő... Tervezés kérdése.
Ha megvan az adatszerkezet és fel van töltve, akkor már csak egy egyszerű iteráció kell amivel végigjárod a listát. Kiíratod a kérdést, majd a hozzá tartozó lehetséges válaszokat. Bekéred a felhasználótól a választ, majd lekezeled (pl kiértékeled egyből, vagy letárolod és a végén értékeled).
Általánosan megfogalmazva ennyi a kvízprogram.
Olvastam itt a válaszok között hogy miért karakteres, miért nem tkinter vagy valami grafikus interfész. Ne hagyd eltéríteni magad a feladattól. A megjelenés nagyon fontos, de úgy érzem hogy neked még inkább az alapokkal kell foglalkozni és tapasztalatot szerezni az algoritmusok és adatszerkezetek témakörben.
Konkrétan is tudok segíteni ha kell, de megírni nem fogom helyetted.
1. Csinálsz egy struktúrát, ami a kérdéseket és a hozzá tartozó válaszokat tartalmazza, pl:
struct kerdesvalasz
{
std::string kerdes;
std::vector<std::string> valaszok;
std::vector<std::string>::iterator helyes_valasz;
};
2. Csinálsz egy vektort ilyen kérdésekkel:
std::vector<kerdesvalasz> kecske;
3. Feltöltöd a struktúrákat
4. Egy random_shuffle-vel összekevered mindegyik kérdésnél a válaszokat, de megjegyzed, hogy melyik a helyes
4. Egy random_shuffle-vel összekevered a kérdéseket
5. Egy ciklussal kiírod a kérdéseket és a hozzájuk tartozó válaszokat, játékos választ egy választ, ellenőrzöd, hogy helyes-e.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!