Kezdőoldal » Számítástechnika » Programozás » Hogyan tudnék kiíratni a...

Hogyan tudnék kiíratni a consolera normálisan 2d-s tömböket? (C++)

Figyelt kérdés

Sziasztok!

Itt a kód:


[link]


Amikor beírok valami inputot, akkor ilyen 8 tagú, számokból és betűkből álló sort ír ki a tömb helyett. (Pl: 00EFF904) (egyszerű amőba játék lenne)



2021. febr. 16. 17:04
1 2
 1/11 anonim ***** válasza:

cout << amoba -> ez így az amoba tömb memóriacímét írja ki

Ha ki akarod íratni a tömb összes elemét, for ciklussal végig kell menned rajta. Például:


for(int i=0; i<3; i++){

for(int j=0; j<3; j++){

cout << amoba[i][j] << " ";

}

cout << endl;

}


Ha definiálsz egy függvényt és abba ezt belerakod, akkor nem kell kiírni mind a 9 esetben.

2021. febr. 16. 17:20
Hasznos számodra ez a válasz?
 2/11 anonim ***** válasza:
Sőt, alapból fölösleges a cout részt berakni az összes if és else if ágba. Elég, ha az utolsó else if után egyszer kiírod (ez a program működése szempontjából mindegy, csak könnyebb átlátni, módosítani a programot ha nem írod ki ugyanazt a kódrészt egy csomószor fölöslegesen).
2021. febr. 16. 17:24
Hasznos számodra ez a válasz?
 3/11 A kérdező kommentje:

Szia, sztem mukodik amit irtal, koszi. De azt vettem eszre, hogy mivel az amoba tomb az int, ezert char nem lehet benne. Tehat ott van mindegyik if elagazasnal, hogy pl:

if(XjatekosSzam == 1){

amoba[0][0] = 'X';

}

ezzel ezt iraja ki:

88 2 1

...


DE, ha egy szamot adok meg, pl:

if(XjatekosSzam == 1){

amoba[0][0] = 19;

}

akkor igy irja:

19 2 3

...

2021. febr. 16. 17:56
 4/11 anonim ***** válasza:

"mivel az amoba tomb az int, ezert char nem lehet benne"


int amoba helyett char amoba, probléma megoldva. Csak arra figyelj, hogy akkor a számok is '' jelek között legyenek.

2021. febr. 16. 18:03
Hasznos számodra ez a válasz?
 5/11 anonim ***** válasza:
Az két sima ' jel akart lenni, nem dupla idézőjel (az akkor kell, ha string tömböt csinálsz, azzal is működik).
2021. febr. 16. 18:04
Hasznos számodra ez a válasz?
 6/11 A kérdező kommentje:

Köszi az eddigi segítségedet. Ha van még türelmed, akkor abban még tudnál segíteni, hogy ezt hogy csináljam meg?


Tehát: Lenne egy ciklus (gondolom while), ami addig megy, amig az amoba tomb-ben 3 X vagy 3 O lesz a sorban/átlóban. Addig ismetelten kerdezgesse meg a jatek, hogy Elso jatekos:, Masodik jatekos:...

2021. febr. 16. 18:58
 7/11 A kérdező kommentje:

Egyebkent a kod most igy nez ki:


[link]

2021. febr. 16. 19:24
 8/11 anonim ***** válasza:

Mondjuk valami ilyesmit lehetne:


while(true){

cout << "Elso jatekos [X]: ";

...

if(jatek_vege()){

if(van_gyoztes()){

cout << Elso jatekos [X] a gyoztes! << endl;

} else {

cout << Dontetlen! << endl;

}

break;

}

cout << "Masodik jatekos [O]: ";

...

if(jatek_vege()){

if(van_gyoztes()){

cout << Masodik jatekos [O] a gyoztes! << endl;

} else {

cout << Dontetlen! << endl;

}

break;

}

}


A két új függvény:


bool van_gyoztes(){

if(amoba[0][0] == amoba[0][1] && amoba[0][0] == amoba[0][2]){

return true;

}

else if(...){

return true;

}

...

itt végignézed azokat az eseteket amikor 3 egyforma van egy sorban, oszlopban vagy átlóban és ha van ilyen true-t ad vissza.

a végén az utolsó else if után (ha nem talált 3-at egy vonalban) return false;

}


bool jatek_vege(){

if(van_gyoztes()){

return true;

}

for(int i=0; i<3; i++){

for(int j=0; j<3; j++){

if(amoba[i][j] != 'X' && amoba[i][j] != 'O'){

return false;

}

}

}

return true;

}


Ez ellenőrzi, hogy van-e győztes vagy betelt-e a tömb X-ekkel és O-kkal.

2021. febr. 16. 20:38
Hasznos számodra ez a válasz?
 9/11 anonim ***** válasza:

Még annyi hogy ha az amoba tömböt a main() függvényben hozod létre akkor a függvényeknek át kell majd adni paraméterként. pl:

bool jatek_vege(char[][] amoba){...}

és aztán if(jatek_vege(amoba)) stb.

Másik lehetőség, hogy az amoba tömböt is a main() előtt definiálod.

2021. febr. 16. 21:28
Hasznos számodra ez a válasz?
 10/11 A kérdező kommentje:

Szia! Koszi, mukodik a kod! Nem tudom, hogy igy ertetted-e a dolgokat:


[link]

2021. febr. 17. 10:45
1 2

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!