Kezdőoldal » Számítástechnika » Programozás » Mi lehet a hiba? (C#)

Mi lehet a hiba? (C#)

Figyelt kérdés

Egy jól ismert játékocskát szerettem volna megírni C#-ban. A játék lényege, hogy furcsa szituációkat állít össze: Kiválaszt egy nevet, egy helyszínt, egy cselekményt és egy társat az adatbázisból, majd mondattá rakja össze azokat pl.: Jóska a focipályán tv-t néz Pistával. Mindezt teljesen véletlenszerűen. A következő mondat már teljesen más lesz pl.: Marci az étteremben autót vezet Andrással.

A programom bár működik, van egy kis baj vele. Olyan, mint ha előre összerakná a mondatokat, majd azokból választana ki egyet véletlenszerűen. Itt a forráskód, mi lehet a hiba?

Tudom, nem könnyű átlátni egy ilyen amatőr forráskódot, de igyekeztem mindent érthetővé tenni.

[link]

Köszönöm a válaszokat, minden hasznosra megy a zöld kéz.


2016. okt. 7. 17:03
1 2 3
 11/22 anonim ***** válasza:
Ami beszédes, nem kell bogarászni hogy mit csinálhat, egyértelmű. A tömböket tök jól elnevezted - a "csinal" kicsit fura, de így hirtelen én sem tudnék jobb nevet adni neki.
2016. okt. 7. 21:52
Hasznos számodra ez a válasz?
 12/22 anonim ***** válasza:

Én így nevezném el őket:

nevek - nevekLista

hely - helyekLista

csinál - tevekenységLista

szam1 - nevekIndex

szam2 - helyekIndey

szam3 - tevekenysegIndex

r1/r2/r3/r4 - rnd


Mivel a visual studio max 3-4 betű után felajánlja a változóneveket, így tetszőleges hosszú lehet.


A nevek2-nek semmi értelme, ha ugyanaz van benne mint a nevekben


string tömbök helyett használj string listákat


Ha a külső while ciklus végtelenciklus akkor elég annyi, hogy

while(true)

nem kell hozzá változó

De én azért megkérdezném a végén, hogy akar-e újra játszani, és ha nem akar akkor beleraksz egy "break;"-et és kilép a ciklusból

2016. okt. 8. 05:22
Hasznos számodra ez a válasz?
 13/22 anonim ***** válasza:

1. Magyar neveket használni eleve problémás.

2. Az indexeket elnevezni eleve fölösleges, rögtön beszúrhatóak a [] operátor közé.

3. Az index generálásnál nagyon rossz ötlet beégetni magic numbereket. A tömb vagy lista hosszát érdemes lekérdezni.

2016. okt. 8. 07:58
Hasznos számodra ez a válasz?
 14/22 anonim ***** válasza:

Indexek tárolása nélkül hogy ellenőrzöd, hogy a nevek különbözőek legyenek.


A helyet és a cselekvés indexét viszont el lehet hagyni

2016. okt. 8. 10:20
Hasznos számodra ez a válasz?
 15/22 A kérdező kommentje:
Köszönöm az újabb tippeket is! Ment a zöld.
2016. okt. 8. 10:25
 16/22 anonim ***** válasza:

Még egy tipp: a cikluson kívül példányosítsad a Random-ot. Nem fog a működés változni, csak nem hozza létre folyton feleslegesen a program újra és újra. Ez így most elvileg memory leaket fog csinálni (persze itt most ez rohadtul nem számít gyakorlatilag).


Többiektől kérdezem: vagy ezt még megoldja a garbage collector?

2016. okt. 8. 15:56
Hasznos számodra ez a válasz?
 17/22 anonim ***** válasza:
Szerintem ezt maga a fordító oldja meg
2016. okt. 8. 16:17
Hasznos számodra ez a válasz?
 18/22 anonim ***** válasza:

C#-ban nincs olyan, hogy memory leak.

Azokat az objektumokat, amikre nincs referencia a GC előbb utóbb felszabadítja.

Ettől függetlenül Randomból egy közöset érdemes használni mindenre.

2016. okt. 8. 16:26
Hasznos számodra ez a válasz?
 19/22 anonim ***** válasza:

"C#-ban nincs olyan, hogy memory leak."


Nem vagyok egy expert, de nagyon egyszerűen tudnék neked memory leaket írni szándékosan.


Van itt is memóriaszivárgás, csak ebben az esetben nem tudom, hogy megoldaná e a GC (valószínűleg igen).

2016. okt. 8. 16:29
Hasznos számodra ez a válasz?
 20/22 anonim ***** válasza:
Nem, nem tudnál.
2016. okt. 8. 16:46
Hasznos számodra ez a válasz?
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!