C# ban kő papír olló játéknál akadtam el?
Hellosztok!
Van a program
Console.Write("Kő(1), Papír(2), Olló(3), VAGY Kilépés(k)");
És itt kiválasztja a játékos mit szeretne. AEddig tök jó, de viszont a k betüt kéne használni a kilépéshez(nem a 4-es gombot). Ezzel az a baj, hogy a valasztás int tipusu, de nem fogadja el a k betüt. Mi lehet a megoldás? Köszi




















„Van a program”
Ez azért különösen jó hír, mert legalább te is be tudod mutatni, mint mindenki más, hogy mivel próbálkoztál. Tedd föl egy kódmegosztó oldalra, és kérjük a linket. Bár a C#-re inkább a [link] javasolható, neked még valószínűleg egyszerűbb, ha ide írod a kódodat: [link]
„Ezzel az a baj, hogy a valasztás int tipusu...”
Hogyne-hogyne, hát persze, hogy int típusú... Izé, miért is? Ja, bizonyára azt írtad a számunkra egyelőre ismeretlen programodba. Hát akkor ez van, tényleg nyakunkon a baj. Konvertálás helyett talán érdemesebb lett volna békén hagyni a beolvasott stringet, és annak alapján választani.





Cáfolj rám, de azt gyanítom, hogy ez a magyarázat nélkül levegőben lógó „int típusú választás” nem egy függvény, hanem közvetlenül az egész számmá konvertált bemenet alapján akarsz dönteni – amely esetben a k betű értelmezhetetlen. Ezért javasoltam, hogy ne ragaszkodj okvetlenül az inthez. C#-ben a stringek összehasonlításának nincs akadálya, de itt még praktikusabb a bemenetnek csak az első (avagy nulladik) karakterével foglalkozni. Alább egy próbálkozás, persze nem az egész játék, csak a választás vázlata. A profi kollégák nyilván okát tudják adni, hogy a .NET Fiddle oldal miért ragaszkodik a public Main()-hez, én nem értek hozzá; Mindenesetre esélyes, hogy át kell írnod static void Main()-re, ha offline akarod lefordítani.
Azt egyébként nem értem az eddig eltitkolt programodban, hogy miért is ne lehetne 4 (vagy a logikusabbnak tűnő 0) a kilépés, ha már számozott menüt használsz. Ha viszont a kilépésnél ragaszkodol a betűhöz, miért kéne a többit számozni betűk helyett?
Mint látod, a begépelt adatot egyik esetben sem alakítottam intté, a string első karakterét vizsgálom. Lehetne ügyeskedni, hogy "k" esetén a választás egy annak megfelelő számot kapjon, máskor pedig nyomban konvertálja int értékké a választ, de ennek nem sok értelme nem volna. Te bizonyára az 1-2-3-k válaszok valamelyikét adnád, de a programot nemcsak magadnak írod, egyéb felhasználókról meg ne tételezz fel se megfontoltságot, se jóindulatot. Megeshet, hogy üres Entert üt, félrenyúlva rossz számot ír be, nagybetűt használ, lelkiismeretesen begépeli a teljes "kilépés" szót, vagy "Dögölj meg!" válasszal kedveskedik, stb. Ezeknek a problémáknak szövegkezeléssel tudod elejét venni, nem véletlen, hogy a Console.ReadLine() éppen stringet eredményez. Ha a választásnak int értéket akarsz átadni (a későbbiekre nézve ez nagyon is helyénvaló elgondolás), akkor a szöveg vizsgálatával és igazgatásával el kell érned, hogy a konvertáló metódus garantáltan használni tudja. Amikor a nem túl távoli jövőben saját függvényeket is alkalmazol, ezeket a bonyodalmakat letudhatod egy függvényben, ami aztán biztosítja ezt a megbízható értéket, hogy maga a döntés már tiszta és átlátható legyen.










További 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!