Mit írtam el a programban? (C#)
Nemrég keztem tanulni a c#-ot. Egy egyszerű kis program amelyben 3 gomb közül választhatunk, hogy melyik kategóriából írja ki az angol szavakat(állat,színek, testrészek) ezután kiírja egy textboxba a kategória szavait, utánna pedig nekünk a második szövegdobozba kell írni a magyar megfelelőjét. Ezt az egészet le okézni és kiírja a válasz helyességét. Nos probléma az, hogy az angol szavakat kiírja válaszolsz rá megírja hogy rossz e vagy sem de utánna nema tömb 2. elemével folytatja hanem véletlenszerűen választ következő angol szót a tömb tagjai közül.(látszólag gondolom...) de ezután az "ellenőrző" gomb nem funkcionál sem nem írja ki a válasz helyességét se nem ad új szót. Ezt mindegyik kategóriánál. Mit rontottam el? Kösz előre a válaszokat.
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
string[,] allatok={{"monkey","dog","wasp","crawfish","fox","mole","spa
rrow","butterfly","deer","chappie"},{"majom","kutya","darázs"
,"rák","róka","vakond","veréb","pillangó","őz","mókus"}};
string[,] szinek={{"red","blue","green","yellow","white","black","brow
n","orange"},{"piros","kék","zöld","sárga","fehér","fekete","
barna","narancs"}};
string[,] testreszek = { { "head", "leg", "hend", "ear", "eye", "arm", "knee", "fool", "back", "chic" }, { "fej", "láb", "kéz", "fül", "szem", "kar", "térd", "lábfej", "hát", "áll", } };
int szam = 0;
public Form1()
{
InitializeComponent();
}
private void allat_Click(object sender, EventArgs e)
{
angolszavak.Text = allatok[0, 0];
}
private void szin_Click(object sender, EventArgs e)
{
angolszavak.Text = szinek[0, 0];
}
private void test_Click(object sender, EventArgs e)
{
angolszavak.Text = testreszek[0, 0];
}
private void enter_Click(object sender, EventArgs e)
{
if (angolszavak.Text == allatok[0, 0])
{
if (magyarszavak.Text == allatok[1, szam])
{
valasz.Text = "Jó válasz!";
magyarszavak.Clear();
szam++;
angolszavak.Text = allatok[0, szam];
}
else valasz.Text="Rossz válasz! A helyes válasz: "+allatok[1,szam];
magyarszavak.Clear();
szam++;
angolszavak.Text = allatok[0, szam];
}
else if (angolszavak.Text == szinek[0, 0])
{
if (magyarszavak.Text == szinek[1, szam])
{
valasz.Text = "Jó válasz!";
magyarszavak.Clear();
szam++;
angolszavak.Text = szinek[0, szam];
}
else valasz.Text = "Rossz válasz! A helyes válasz: " + szinek[1, szam];
magyarszavak.Clear();
szam++;
angolszavak.Text = szinek[0, szam];
}
else if (angolszavak.Text == testreszek[0, 0])
{
if (magyarszavak.Text == testreszek[1, szam])
{
valasz.Text = "Jó válasz!";
magyarszavak.Clear();
szam++;
angolszavak.Text = testreszek[0, szam];
}
else valasz.Text = "Rossz válasz! A helyes válasz: " + testreszek[1, szam];
magyarszavak.Clear();
szam++;
angolszavak.Text = testreszek[0, szam];
}
}
}
}
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
if (angolszavak.Text == allatok[0, 0])
39. sor, javítva: if (angolszavak.Text == allatok[0, szam])
Meg a 3 gombnál is mehet "szam"-adikra az angolszo.text
Ha jól értem akkor Case of használatával lehetne egyszerűsíteni a programot, illetve mindig az első szót nézed, nem az aktuálisat.
Illetve még egy lehetséges elvi hiba: ha az első szót mondjuk az állatosból kérdezed, akkor a színekre nyomva az elsőröl vagy a másodikról kellene indulnia? (Mert akkor 3 külön számláló kell a 3 kategóriának.)
És még a véletlenszám-generálással, szólistát fájlból olvasással lehet feldobni a programot.
Bocsi ha nagyon összeszedetlenül írtam, remélem érthető valamennyire.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
string[,] allatok={{"monkey","dog","wasp","crawfish","fox","mole","sparrow","butterfly","deer","chappie"},{"majom","kutya","darázs","rák","róka","vakond","veréb","pillangó","őz","mókus"}};
string[,] szinek={{"red","blue","green","yellow","white","black","brown","orange","gray","violet"},{"piros","kék","zöld","sárga","fehér","fekete",barna","narancs","szürke","ibolya"}};
string[,] testreszek = { { "head", "leg", "hend", "ear", "eye", "arm", "knee", "fool", "back", "chic" }, { "fej", "láb", "kéz", "fül", "szem", "kar", "térd", "lábfej", "hát", "áll" } };
int szam = 0;
public Form1()
{
InitializeComponent();
}
private void allat_Click(object sender, EventArgs e)
{
angolszavak.Text = allatok[0, szam];
}
private void szin_Click(object sender, EventArgs e)
{
angolszavak.Text = szinek[0, szam];
}
private void test_Click(object sender, EventArgs e)
{
angolszavak.Text = testreszek[0, szam];
}
private void enter_Click(object sender, EventArgs e)
{
case angolszavak.text of
allatok[0,szam] : {if (magyarszavak.Text == allatok[1, szam])
{
valasz.Text = "Jó válasz!";
} else { valasz.Text="Rossz válasz! A helyes válasz: "+allatok[1,szam]; }
}
szinek[0,szam] : {if (magyarszavak.Text == szinek[1, szam])
{
valasz.Text = "Jó válasz!";
} else { valasz.Text="Rossz válasz! A helyes válasz: "+szinek[1,szam]; }
}
testreszek[0,szam] : {if (magyarszavak.Text == testreszek[1, szam])
{
valasz.Text = "Jó válasz!";
} else { valasz.Text="Rossz válasz! A helyes válasz: "+testreszek[1,szam]; }
}
szam++;
if szam==10 {szam=0;}
magyarszavak.clear();
angolszavak.clear();
}
}
Szintaktikailag tuti elrontottam, de valahogy így képzelem el. Remélem használható.
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!