Hogyan tudok objektumot elmozdítani egy 2D-s tömbben?
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.
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?:)
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.
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.
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:)
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
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!