Ezt egyszerűbben meg lehet oldani c++-ban?
Sziasztok, igen, megint én.. :')
Na szóval, működik a "menü", csak szerintem nagyon túlbonyolítottam. Feltétlenül kell ehhez a 3 while loop? Mert amig a 2 while-t nem raktam be egy nagy while loopba, addig bizonyos inputoknál nem azt kaptam amit szerettem volna.
ÁLLAPOTGÉP!!
Ezt a förtelmet nem akarom látni :(
Csinálj egy értelmes állapotgépet a menünek.
A külsö while ciklus, amit felfedeztél magadnak, az egy kezdetleges formája az úgynevezett "game loop"-nak: [link]
Itt annyit változtatnék, hogy eltüntetném azt a változót és átírnám a feltételt true-ra: [link]
Ezek után csináltam egy minimális refactort, csak kiszerveztem függvényekbe dolgokat: [link]
Itt egy kicsit ki van csavarva a logikát: A belsö két while-nak inkább if-nek kellene lennie. + amikor a vissza gombot beolvasod, ott if helyett while kéne, hisz addig akarsz az aktuális menüponton maradni, amíg meg nem nyomja a 'v'-t: [link]
Itt kéne egy minimális refactor. Ha megnézed, mindenhol ahol a vissza_kiir van hívva, ott mindíg egy ciklusban van -> ezt a ciklust is belerakjuk a ciklusba: [link]
Most itt van egy bug (már a te verziódban is benne volt, de most, hogy letisztult kicsit a kód, elég szembeötlö): Mi történik, ha a menüben nem az 1-est vagy a 2-est nyomjuk, hanem valami mást? Beragadunk egy végtelen ciklusba, úgy hogy nincs kiút. Szerencsére ezt könnyen fixálhatjuk: a legelsö menü kiiratást betesszük a fö ciklusba, így mindíg kiíródik, nem csak akkor, ha elözöleg sikerült az 1-est vagy a 2-est kiválasztani. Így kétszer fog kiíródni, hisz mindegyik menüpont alatt szintén kiíratjuk. Ezeket a sorokat simán kivesszük: [link]
Még itt van egy aprócska javítás: Amíg nem volt a menü kiszervezve egy függvénybe, addig a menü kezelésnél nem volt gond, hogy olyanok a feltételek, hogy valasztas == '1', mivel pár sorral feljebb kellett csak nézni, és már tudtad is, hogy mi az az '1'. Most viszont jó lenne valami értelmes nevet adni az '1'-nek, meg a '2'-nek: [link]
Kedves utolso. Nagyon koszi a valaszt :). A fuggvenyeket eddig nem is akartam hasznalni, de mostmar ertem h mire jok :D. Par kerdesem meg lenne, ha nem baj:
1. az enum-os reszt a 4. sorban mashogy meg lehetne oldani?
2. a main fv-ben mi ez: "Valasztas valasztas;"?
JAAAj.. na akkor leszogezem:
https://www.youtube.com/watch?v=vLnPwxZdW4Y&t=7196s&ab_chann..
ezt az egy videot neztem meg eddig a c++-rol, es itt is csak a While loop-ig. Ez a masodik programnyelvem a python utan, (a pythont kb fel eve elkezdtem, de meguntam par het utan)
Ertitek? :)
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!