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
 11/18 tabaki ***** válasza:

„...nem kaptam választ, melyet hasznosnak, vagy érthetőnek találtam volna.”

No igen, mindössze a probléma gyökerére világítottunk rá, és egy működőképes megoldást kaptál a választásra – ja, meg egy tiszteletteljes kérést, hogy ugyan, mutasd már be, mivel próbálkoztál, hátha kiélhetjük a segítő szándékunkat. És mi lett volna, ha a három napos lapítás helyett inkább rákérdezel arra, amit nem értesz? Na mindegy, én legalább jól szórakoztam, amíg megírtam a játékodat, ha hiába, hát hiába...

[link]

2020. okt. 9. 22:49
Hasznos számodra ez a válasz?
 12/18 A kérdező kommentje:
Ezért nem akartam szólni, mert tudtam, hogy belémkötnek
2020. okt. 10. 01:53
 13/18 tabaki ***** válasza:

@01:53;


Ennek a szentenciának bizonyára valami értelmet tulajdonítasz, de biztosíthatlak, hogy nincs neki.

Már elsőre egy kissé kifejtetlenül maradt, de segítőkész választ kaptál. Ez is egy lehetséges megoldás, szerintem nem olyan haszontalan, mint amennyire le lett pontozva. Másodikra a legkézenfekvőbb lehetőségre figyelmeztettek: Dönts a bevitelkor kapott string alapján. Utána jeleztem, hogy tudnunk kéne, mit művelsz egyáltalán, és a tapasztalatlanságodra való tekintettel még két linket is adtam, ahol közszemlére teheted a saját állításod szerint létező programodat. Továbbá megerősítettem, hogy a kapott adat azonnali intként való értelmezése talán nem a legszerencsésebb ötlet. Ezután két futtatható példán bemutattam, hogy a string alapján milyen egyszerű a választások szétszálazása, mellesleg a gyakorlatban is megfigyelhetted a .NET Fiddle oldal működését. Mindezekből te annyit tudtál kiokoskodni, hogy beléd akarunk kötni, és jobb, ha meghúzod magad. Bravó. Hát bocs, a programozáshoz ennél azért jobb logikai készség szükségeltetik.

2020. okt. 10. 08:22
Hasznos számodra ez a válasz?
 14/18 tabaki ***** válasza:
A világért sem szeretnék rossz színben feltűnni az izgágaságom miatt, de mire jutottál végül?
2020. okt. 20. 11:34
Hasznos számodra ez a válasz?
 15/18 A kérdező kommentje:
Nem kaptam arra választ, mit tegyek, hogy a betüt is, számot is elfogadja egy darab változónál. Szerintem ehhez nem kell 40 sor. De ők tudják
2020. okt. 20. 12:32
 16/18 anonim ***** válasza:
Csak ismételni tudom magam: "Ne int típusú legyen, hanem string."
2020. okt. 20. 13:43
Hasznos számodra ez a válasz?
 17/18 A kérdező kommentje:
Jó akkor majd az lesz
2020. okt. 20. 13:46
 18/18 tabaki ***** válasza:

„Nem kaptam arra választ, mit tegyek, hogy a betüt is, számot is elfogadja egy darab változónál.”


De bizony kaptál, például a #7 hozzászólásom két programjában is, csak éppen tovább is kellett volna gondolnod. Minthogy a Console.ReadLine() stringet eredményez, azt nem tudod átalakítás nélkül egy számváltozóba olvasni. Ha viszont már úgyis átalakítod, miért ne lehetne a "k" helyett akármilyen, a célodnak megfelelő számértéket beletenni? Az kétségtelen, hogy én a példaprogramjaimban a kapott stringnek csupán az első karakterét vizsgáltam, hogy az ugyanott felsorolt rengeteg esetleges bonyodalomnak legalább egy jelentéktelen részét orvosoljam. De ugyanúgy működik stringekkel is, amint ezt nyilván ki is próbáltad:

[link]

Alappal, de nem joggal kérdezed: Mire jó az, hogy a program buta módon, szöveggel kifirkálja a választásodat, és annyi? Senki nem írta elő neked, hogy a te programodnak is ugyanezt kell csinálnia. Lehet ott ehelyett valami hasznos dolog is – például értéket adhatsz egy int változónak, amelyet aztán felhasználsz a programodban. Példának okáért, van egy 𝗷𝗮𝘁𝗲𝗸𝗼𝘀 nevű int változód, amelynek az a célja, hogy a játékos választása alapján meghatározott értékével vegyen részt a játékban, mivel az értékelést majd számtani műveletekkel kívánod elvégezni. Ha az 1, 2, 3 érték valamelyikét kapja, az a kő-papír-olló háromságnak felel meg, a 0 pedig a kilépést jelenti. A billentyűzetről ugyebár egy stringet kapsz, az "1", "2", "3", illetve "k" szövegek valamelyikét (egyelőre tételezzük fel az ideális felhasználót, aki semmi rendelleneset nem ír be). Az a nagy kérdés, hogy ezekből hogyan állítod elő a 𝗷𝗮𝘁𝗲𝗸𝗼𝘀 változó megkívánta egészértéket. Elnézést, ha a megoldás kiábrándítóan, bántóan, már-már megalázóan egyszerű lesz:


switch (Console.ReadLine()) {

      case "1": jatekos = 1; break;

      case "2": jatekos = 2; break;

      case "3": jatekos = 3; break;

      case "k": jatekos = 0; break;

}


Ez persze nem kezeli az említett problémákat, mint ahogy azzal sem foglalkozik, hogy te esetleg más értékeket látsz hasznosnak a saját programod szempontjából. Természetesen arra is alkalmatlan, hogy nyolcvanhétmillió számot és negyven szöveget különböztess meg hasonló módon. Arra viszont megfelel, hogy átlépd ezt a küszöböt, és bemutathasd az immár működő programodat, hátha abban is találunk még igazítani valót.

2020. okt. 20. 15:49
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!