Hogyan tudnék kiíratni a consolera normálisan 2d-s tömböket? (C++)
Sziasztok!
Itt a kód:
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)
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.
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
...
"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.
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:...
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.
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.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, 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!