Kezdőoldal » Számítástechnika » Programozás » Ezt egyszerűbben meg lehet...

Ezt egyszerűbben meg lehet oldani c++-ban?

Figyelt kérdés

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.


[link]



2021. febr. 12. 17:26
1 2 3
 1/24 anonim ***** válasza:
0%
Igen, hát ez így egy sz.r, írd újra az alábbi mint szerint: while(true) { <kód> }. Több while nem lehet benne, mert amúgy nem is kell.
2021. febr. 12. 17:59
Hasznos számodra ez a válasz?
 2/24 A kérdező kommentje:

Szia, nem tudom, hogy igy ertetted-e, de itt van az if-es valtozat (else-t majd rakok bele)


[link]

2021. febr. 12. 18:11
 3/24 anonim ***** válasza:
0%

ÁLLAPOTGÉP!!

Ezt a förtelmet nem akarom látni :(

Csinálj egy értelmes állapotgépet a menünek.

2021. febr. 12. 18:31
Hasznos számodra ez a válasz?
 4/24 A kérdező kommentje:
#3 De csak console-ban csinálom a "játékot". Ott lehet ilyen kattintgatós menüt is csinálni? Angolul nem találtam meg mit hogy kell írni az "Állapotgép"-et.
2021. febr. 12. 18:35
 5/24 A kérdező kommentje:
mit hogy kell írni = hogy kell írni
2021. febr. 12. 18:36
 6/24 A kérdező kommentje:
Edit: State machine lenne az?
2021. febr. 12. 18:37
 7/24 anonim ***** válasza:
100%

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]

2021. febr. 12. 18:43
Hasznos számodra ez a válasz?
 8/24 A kérdező kommentje:

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;"?

2021. febr. 12. 18:58
 9/24 anonim ***** válasza:
A menüre miért nem hozol létre egy enum-ot és uparrow + downarrow billentyűket használva lehessen navigálni fel-le, majd enterrel belépni ?
2021. febr. 12. 18:58
Hasznos számodra ez a válasz?
 10/24 A kérdező kommentje:

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? :)

2021. febr. 12. 19:04
1 2 3

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!