Java programozás feladat?

Figyelt kérdés

int[] gameState = {2,2,2,2,2,2,2,2,2};


int[][] winningPositions = {

{0,1,2}, {3,4,5}, {6,7,8},

{0,3,6}, {1,4,7}, {2,5,8},

{0,4,8}, {2,4,6}

};


for (int[] winningPosition:winningPositions){


if (gameState[winningPosition[0]] == gameState[winningPosition[1]] &&

gameState[winningPosition[1]] == gameState[winningPosition[2]]&&

gameState[winningPosition[0]] != 2){}

}


a kérdés a kiválasztási folyamat lenne. Mit takar a gamestate[winningPosition[0]] ?

milyen számokat hasonlít össze és mivel?



2017. nov. 30. 13:23
 1/5 anonim ***** válasza:

Csak nem egy 3x3-as amőba játék? :)


0-1-2 az első sor

0-3-6 az első oszlop

0-4-8 és 2-4-6 a két átló.


Be lehet vezetni további változókat, hogy tisztább legyen, hogy mi micsoda:


//winningPosition tömb az egy sorban lévő 3 cella indexét tárolja

for (int[] winningPosition:winningPositions){


int firstPosition = winningPosition[0];

int secondPosition = winningPosition[1];

int thirdPosition = winningPosition[2];


int value1 = gameState[firstPosition];

int value2 = gameState[secondPosition];

int value2 = gameState[thirdPosition];


if (value1 == value2 && value2 == value3 && value1 != 2){

//A három érték ugyanaz a sorban és nem az előre beállított üres érték (2), akkor valaki nyert

}

}



winningPositions helyett lehetne hívni a változót rows-nak például.

2017. nov. 30. 14:06
Hasznos számodra ez a válasz?
 2/5 anonim ***** válasza:

Azt kellene megérteni, hogy mit jelent ez a kifejezés és akkor a többi már egyértelmű lesz utána:


gameState[winningPosition[0]]


1.) gameState: Ez egy integereket tartalmazó tömb, amit az első sorban hoztál létre.


Na most, ha hivatkozni akarsz ennek a tömbnek egy elemére, akkor így tudnád megtenni:

gameState[3] (2. elemet adja vissza, ami "2"). - Ez a kis megjegyzés a későbbiekben még fontos lesz!



2.) winningPosition ("s" nélkül a végén): Ez egy integereket tartalmazó tömb, amit a for() ciklusban hozol létre és a winningPositions ("s"-el a végén) 2-dimenziós tömb aktuális sorát tartalmazza mindig, ahogy megy a ciklus.


Tehát a ciklus 0. körében: {0,1,2}

1. körében: {3,4,5}

2. körében: {6,7,8}

[...]


Ha hivatkozni akarsz az egyik elemére, akkor nyilván így tudnád megtenni:

winningPosition[0]


3.) Akkor most rakjuk össze:


gameState[winningPosition[0]]


* Vesszük a gameState változót, annak is valahányadik elemét.

* Hányadik elemét? -> winningPosition[0] -> A winningPosition tömb 0. eleme által visszaadott értéket.


Tehát egész konkrétan a ciklus 1-3. körében ez a kifejezés behelyettesítések után így néz ki:


ciklus 1. körében: gameState[0] (="2")

ciklus 2. körében: gameState[3] (="2")

ciklus 3. körében: gameState[6] (="2")

2017. nov. 30. 15:08
Hasznos számodra ez a válasz?
 3/5 anonim ***** válasza:
Ha még így sem érthető, akkor gondolj a rekurzióra. Lényegében ez is egy rekurzív kifejezés: Hivatkozik a gameState egy elemére (winningPosition[0]), ami hivatkozik a winningPosition egy elemére ([0]).
2017. nov. 30. 15:13
Hasznos számodra ez a válasz?
 4/5 anonim ***** válasza:

"Na most, ha hivatkozni akarsz ennek a tömbnek egy elemére, akkor így tudnád megtenni:

gameState[3] (2. elemet adja vissza, ami "2")."


Asszem itt elgépeltél valamit.

A gameState[3] nem a 3. elemet adja vissza?

Vagy a 4. et ha 1 től kezded a tömböt sorszámozni (nem tudom ki az az állat aki az egytől való sorszámozást kitalálta...).


int[] gameState = {0,1,2,3,4,5,6,6,7};

System.out.println(gameState[3]); // 3



int[] gameState = {1,2,3,4,5,6,6,7,9};

System.out.println(gameState[3]); // 4

2017. nov. 30. 18:49
Hasznos számodra ez a válasz?
 5/5 anonim ***** válasza:
Valóban, a gameState[3] a 4. elemet adja vissza (ugye 0-tól indexel a java), csak nagyon ráfeszültem a 2-es int-ekre a tömbben. :D
2017. nov. 30. 20:17
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!