Tapasztalattal rendelkező ember megnézné az egyik kezdetleges programom és véleményezné? (c#)
Még csak konzolban csinálok mindent, egyenlőre form-ban nem, viszont írtam egy kő papír olló játékot és kíváncsi lennék a véleményére és építő kritikájára.
Privátban elküldöm a kódot.
Oszd meg a kódot - például az alábbi oldallal:
majd a kapott címet oszd meg velünk.
Ne privátban - ez egy fórum - ide, hozzászólásba.
De mi a kérdésed?
Egy javaslat: ismerkedj meg a függvény és a strukturált programozás fogalmával.
Rengeteg benne az ismértlés.
Tehát a játékos beüt egy számot eddig oké. Innentől az számnak megfelelően csak annyit kell kiírtani, hogy mit mutatott a játékos. Ezt célszerű egy többen tárolni.
Nem vagyok otthon C#-ban, de pszeudo kódban:
tömb = ["kővet", "papírt", "ollót"]
print(tömb[bemenet-1] + "mutatsz")
ezután jöhet a várakoztatás, amit te mind a három bemenetnél ismételsz, feleslegesen.
Ezután ugyanilyen logika alapján kírathatod, hogy mit mutat a számítógép, majd eldöntöd, hogy ki nyert. Ezt úgy a legegyszerűbb megértened ha felírod a lehetséges állapotok igazságtábláját. Nem nehéz, mert csak 9 lehetőség van. Abból pedig három döntetlen.
Ha döntetlen, akkor ismételheted az egészet, ha nem döntetlen, akkor egyszerűen kiíratod, hogy ki nyert.
Ha így írod meg a programot, akkor kb harmadára csökkentheted a méretét.
A for ciklusok használatát is gyakorlohatod...
for (int i=1; i++; i<4):
print(i + "...")
nem c# kód, de a lényeg látszik.
Hát, van benne egy-két csemege, de becsülendő, hogy legalább működőképes programot gyötörtél ki magadból. Nekem ez a kedvencem:
switch (bemenet)
{
case 1:
break;
case 2:
break;
case 3:
break;
default:
Console.WriteLine("1-től 3-ig adj meg számot."); i--;
break;
}
Ha (egy másik programban) a játékosnak nem 3, hanem mondjuk 194 választási lehetősége van, akkor ugyanígy, switch-csel zársz ki minden egyes helyes választ, míg kiderül, hogy rosszat adott meg? A helytelennek azon túl, hogy természetesen egyenként vizsgálva sem egyezik meg egyik helyes válasszal sem, van egy általános tulajdonsága: Nincs benne a helyes válaszok (itt 1-3 közé eső) tartományában. Ha tehát a bemenet 1-nél kisebb, vagy háromnál nagyobb érték, akkor helytelen. Vagyis a bonyodalmas switch-létra helyett elég ennyi:
if((bemenet<1)||(bemenet>3)) Console.WriteLine("1-től 3-ig adj meg számot.");
(az i csökkentésének jelentőségére eddig nem tudtam rájönni, az lehagytam a végéről)
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, 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!