Kezdőoldal » Számítástechnika » Programozás » C# ban kő papír olló játéknál...

C# ban kő papír olló játéknál akadtam el?

Figyelt kérdés

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


2020. okt. 6. 00:51
1 2
 1/18 A kérdező kommentje:
Kezdő vagyok ne szídjatok le!
2020. okt. 6. 00:56
 2/18 anonim ***** válasza:
34%
Át kell konvertálni a char-t int-re.
2020. okt. 6. 01:42
Hasznos számodra ez a válasz?
 3/18 anonim ***** válasza:
90%
Ne int típusú legyen, hanem string.
2020. okt. 6. 06:08
Hasznos számodra ez a válasz?
 4/18 anonim ***** válasza:
13%
3: Húúú baz +!
2020. okt. 6. 06:14
Hasznos számodra ez a válasz?
 5/18 anonim ***** válasza:
79%
Milyen jó kis program, mi anno mikor kezdtük nem is csináltunk ilyent, pedig egész egyszerű...na majd mikor kisebbeket oktatok, akkor bevetem:D
2020. okt. 6. 06:41
Hasznos számodra ez a válasz?
 6/18 tabaki ***** válasza:
50%

„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.

2020. okt. 6. 10:18
Hasznos számodra ez a válasz?
 7/18 tabaki ***** válasza:

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.

[link]

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?

[link]

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.

2020. okt. 6. 14:04
Hasznos számodra ez a válasz?
 8/18 tabaki ***** válasza:
50%
Ja, hogy ennyi volt csak a kérdés célja – némi trolletetés; Ahhoz képest, hogy kezdő vagy, igazán jól csinálod. Dehogy szidlak le, hát mikor tombold ki magadat, ha nem most? Elháríthatatlanul közeleg az idő, amikor benő a fejed lágya, és már névtelenül is kínosnak érzed ezt a fajta viselkedést.
2020. okt. 9. 18:03
Hasznos számodra ez a válasz?
 9/18 A kérdező kommentje:
A kérdésre nem kaptam választ, melyet hasznosnak, vagy érthetőnek találtam volna. Köszönöm a válaszokat.
2020. okt. 9. 21:13
 10/18 anonim ***** válasza:
A probléma veled van, ha nem érted.
2020. okt. 9. 21:31
Hasznos számodra ez a válasz?
1 2

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

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!