Kezdőoldal » Számítástechnika » Programozás » Hogyan tudok objektumot...

Hogyan tudok objektumot elmozdítani egy 2D-s tömbben?

Figyelt kérdés

if (lepes == "B" || lepes == "b") {

if (tomb.palya[i - 1][j] == tomb.etel) {

tomb.katona.energia += 1;

}

tomb.palya[i - 1][j] = tomb.palya[i][j];

tomb.palya[i][j] =null;

}


A Feladat hogy van egy 2D-s tömböm és abban katonák vannak.Bekérem hogy melyik irányba mozdítsa el a katonát. Ha beírja hogy B, akkor balra elmozdul a tömbben.

Ha ott egy étel van akkor az energiája növekedjen és lépjen oda.

Az a hiba hogy ha ezt lefuttatom és kirajzoltam a tömböt, akkor nem történik semmi. Nem mozdítja el, és ki se törli az eredeti helyéről.

Egyébként több katona van a pályán akiket egy kollekcióban tárolok.

A Tomb az egy osztály, amiben a palya[][] van.



2012. ápr. 21. 22:37
 1/6 anonim ***** válasza:
100%

tomb.katona

tomb.etel


Ezeket magyarázd meg nekünk, hogyan gondoltad? Hány katona van? tomb.katona az mi? A tömb az egy katona? Így értetted? Vagy esetleg a tomb.palya[i,j] elemének kéne egy katona objektumnak lennie?:)

2012. ápr. 21. 23:25
Hasznos számodra ez a válasz?
 2/6 anonim ***** válasza:

Nincs rálátásom hogy egyáltalán milyen típusú értékeket tárol a "palya[][]", annyit tudok hogy valamilyen objektum típus. Vagy egyáltalán a tomb.palya[i - 1][j] és a tomb.palya[i][j] mutat e valahova, vagy eleve mindkettő a null értéket tartalmazza ez ugyanis magyarázat lenne hogy változatlan a tömb.


"Egyébként több katona van a pályán akiket egy kollekcióban tárolok."

Erre sincs rálátásom és nem vagyok róla meggyőződve. Ezek szerint a "tomb.katona.energia += 1;" értelmében ha ott étel van akkor minden katona energiája 1-el növekszik?


Igaz hogy nincs rálátásom sok mindenre a kódban ( ugyanis nem látom), de nekem akkor is sántít. A tomb.palya[i][j] helyen étel és katona is lehet? A katona(katonák) energiáját egy külön tomb.katona.energia változó tárolja? Nincs minden katonának külön energiája? A tomb-on belul külön van egy katona osztálybeli objektum? Eleve a palya tömböt közvetlenül kívülről nem is lenne szabad elérni közvetlenül az OOP értelmében.

2012. ápr. 21. 23:25
Hasznos számodra ez a válasz?
 3/6 A kérdező kommentje:

Bekérem hogy melyik katonával szeretne lépni koordináta szerint [i][j].és ha balra lép akkor lesz [i-1].

Ezt a 2Ds tömböt egy ArrayListben lévő katonákból töltöm fel random helyekre.

Csak az a baj hogy nem tudom összekapcsolni a tömbbel őket rendesen.Tehát nekem tudnom kéne hogy melyik katona melyik koordinátán van.

Úgy szeretném hogy csak annak az egy katonának menjen fel az energiája.

A palya az a a katona és az étel közös ősét képes tárolni. Így tudtam megoldani hogy több féle objektumot tárolhassak a tömben.

2012. ápr. 21. 23:41
 4/6 anonim ***** válasza:

C#

Értem, tehát a tömbben vagy étel vagy katona vagy null lehet, ugye?

Ez esetben kell egy PályaElem osztály. Ennek az osztálynak minimum két propertyje van: x, y mint koordináták

Ebből az osztályból származtatod az Étel és a Katona nevű osztályokat.

A tömb PályaElem típusú lesz és tudsz beletenni Étel-t és Katona-t is. A többit megoldod magad:)

2012. ápr. 22. 00:19
Hasznos számodra ez a válasz?
 5/6 anonim ***** válasza:

Javítok: a palya legyen PályaElem tipusú.

Ja még annyit segítek, hogy így tudod tesztelni milyen mezőn vagy: tomb.palya[i-1][j] is Étel

2012. ápr. 22. 00:21
Hasznos számodra ez a válasz?
 6/6 A kérdező kommentje:
Nagyon szépen köszönöm!
2012. ápr. 22. 01:20

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

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!