Kezdőoldal » Számítástechnika » Programozás » Hogyan tudom kinyerni az...

Hogyan tudom kinyerni az adott elem koordinátáit?

Figyelt kérdés

Eddig amikor csináltam táblás játékokat akkor mindig nxn-es táblával volt dolgom és ott mikor a táblához adtam hozzá a mezőket, akkor a paraméterként adtam hozzá minden mezőhöz egy azonosítót,ami 0-val indult és ha pl. 8x8-as volt a táblám akkor 63-volt az utolsó elemnek az azonosítója , amikor clickeltem egy mezőre ezzel a módszerrel tudtam meg, hogy hányadik sorban és ha hányadik oszlopban van:

int oszlop = Integer.parseInt(fieldID)%n;

int sor = (Integer.parseInt(fieldID)-oszlop)/n;

De most adott esetben egy 10x4-es tábla játékot készítek és ehhez ez a módszer nem jó, hogyan tudnám ezt megoldani, hogy megtudjam az adott elemnek amire clickelek a koordinátáit?



2017. jan. 12. 19:51
 1/6 anonim ***** válasza:
Objektumot kell létrehoznod, amiben tárolod az X;Y koordinátákat.
2017. jan. 12. 20:19
Hasznos számodra ez a válasz?
 2/6 coopper ***** válasza:

Szia.


Sima maradékos és egész részes osztás 10-zel.


Pl. ha a 2-dik sor ötödik cellára klikkelsz akkor az érték 14 lesz, ennek pediglen a 10-zel történő maradékos osztása 4, egész részes osztása pediglen 1, tehát második sor ötödik oszlop (ha nullától számoljuk az indexeket).


Sok sikert.

üdv.

2017. jan. 12. 20:25
Hasznos számodra ez a válasz?
 3/6 anonim ***** válasza:

Ugyan úgy kell. Az n változó az oszlopok száma.


Megjegyzés: egész számok közötti osztásnál a program levágja a nem egész részt (lefelé kerekít), ezért ez így is helyes:


int oszlop = Integer.parseInt(fieldID)%n;

int sor = Integer.parseInt(fieldID)/n;

2017. jan. 12. 20:35
Hasznos számodra ez a válasz?
 4/6 A kérdező kommentje:
Uhhh ez tényleg jó, csak ugyanúgy kell ezt megcsinálni az oszlopok számával köszönöm szépen <3 :)
2017. jan. 12. 20:45
 5/6 anonim ***** válasza:
De mi a fenének osztogatni, amikor tárolhatsz két koordinátát is?
2017. jan. 13. 07:13
Hasznos számodra ez a válasz?
 6/6 anonim ***** válasza:
#5 Mert így nem tárol el minden mezőhöz 2-2 integer elemet még. Feltételezve, hogy a mezők értéke is egy integer értékkel van leírva, ezzel effektíve megtriplázza a tábla méretét. Egy egyszerű osztás, moduló művelettel megkapja a koordinátát, gyakorlatilag semmi műveletigénnyel nem rendelkezik, és független a futási idő a tábla méretétől. Ellenben ha mindenhova eltárol még 2 koordinátaértéket, akkor minél nagyobb a tábla, annál több memóriát emészt fel vele. Persze, nem foglal sok helyet egy integer, sőt, egymillió integer sem különösebben, de azért optimálisabb egy konstans művelettel kiváltani egy lineárisan növekvő memóriahasználatot. Szerintem.
2017. jan. 13. 12:11
Hasznos számodra ez a válasz?

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!