mam taketo piskovrky ale nefunguje mi tam kopa veci ako napr nevypisuje to zadaj poziciu dalej TO JE PROTI PRAVIDLAM dalej nwm zastavit aby mi vypisal to kto vyhral pls poradte
skús sa formatovať kod podľa normy, a takýmto chybám sa vyhneš (minimálne ich bude menej). Kto sa v tom má vyznať keď je to maximálne neprehľadné napísané?
//autoeditácia príspevku ( 21 Nov 2009, 18:10 )
budem ti to postupne opravovať, takže:
void vytvor(char plocha[][4]) {
for (int i = 0; i < 4; i++){ //chýbala zátvorka
for (int m = 0; m < 4; m++) {
printf("%c", plocha[i][m]);
//if (i % 2 == 0 && i != 0)
//cout << endl;
}
cout << endl; //endl má byť tu a nie tam kde si ho mal
} //chýbala zátvorka
return;
}
//autoeditácia príspevku ( 21 Nov 2009, 18:11 )
2)
int znak(int pom1, int pom2, int tah, char plocha[][4]) { //radšej nech má návratový typ, inak nevieme či bol ťah platný
if (plocha[pom1][pom2] != '.'){
cout << "TO JE PROTI PRAVIDLAM!\n";
return 0; //chýbal return /ak je zlý ťah, treba ukončiť a nie pokračovať lebo sa potiahne/
}
if (tah % 2 == 0)
plocha[pom1][pom2] = 'X';
else
plocha[pom1][pom2] = 'O';
return 1;
}
dakujem posnazim sa das sem kompletny kod este s nejakymi upravami ak by sa ziadali? pls a zase mi nefunguje to TO JE PROTI PRAVIDLAM a ani to zadaj poziciu sa nezmenilo a tiez to nezastvi pls pomozte
#include <iostream>
#include <stdio.h>
using namespace std;
int znak(int pom1, int pom2, int tah, char plocha[][4]);
void vytvor(char plocha[][4]);
char over(char plocha[][4], int tah);
void hra(void);
int main() {
hra();
return 0;
}
void hra() {
char plocha[4][4];
int tah = 0;
int pom1, pom2;
for (int i = 0; i < 4; i++)
for (int m = 0; m < 4; m++)
plocha[i][m] = '.';
vytvor(plocha);
while (1) {
cout << "Zadaj poziciu: \n";
cin >> pom1 >> pom2;
tah += znak(pom1, pom2, tah, plocha); //ťah zvyšujem iba ak je platný
if (char x = over(plocha, tah)) {
cout << x << " vyhrali\n";
system("pause");
break;
} else if (tah == 8) { //na toto si ako preboha prišiel?
cout << "Remiza\n";
system("pause");
break;
}
//tah++; toto by ti bralo ťah aj keby ťahám neplatne a pokazí sa poradie hráčov
vytvor(plocha); //chýbalo znovuvykreslenie
}
return;
}
void vytvor(char plocha[][4]) {
for (int i = 0; i < 4; i++){ //chýbala zátvorka
for (int m = 0; m < 4; m++) {
printf("%c", plocha[i][m]);
//if (i % 2 == 0 && i != 0)
//cout << endl;
}
cout << endl; //endl má byť tu a nie tam kde si ho mal
} //chýbala zátvorka
return;
}
int znak(int pom1, int pom2, int tah, char plocha[][4]) { //radšej nech má návratový typ, inak nevieme či bol ťah platný
if (plocha[pom1][pom2] != '.'){
cout << "TO JE PROTI PRAVIDLAM!\n";
return 0; //chýbal return /ak je zlý ťah, treba ukončiť a nie pokračovať lebo sa potiahne/
}
if (tah % 2 == 0)
plocha[pom1][pom2] = 'X';
else
plocha[pom1][pom2] = 'O';
return 1;
}
//tú poslednú funkciu sa mi nechce prerábať, ale je poriadne chaotická
audiotrack ked uz si taaky inciativny, tak mu tam poopravuj aj tie napoli kopirovacie polia vo volaniach funkcii void (char plocha[][4]) ; ono ti to rezaz mozno ako tak funguje aj takto, ale je to zle pochopene redom. Mne sa mu to nechce robit. Ja som mu tam hodil aj ukazku v programatorskom kutiku, nech sa clapec uz konecne nauci programovat .
Redo alebo to sprav obiektovo a vtedy ti odpadaju vsetky tie problemy s ukazovatelmi. .
johny3212 napísal:audiotrack ked uz si taaky inciativny, tak mu tam poopravuj aj tie napoli kopirovacie polia vo volaniach funkcii void (char plocha[][4]) ; ono ti to rezaz mozno ako tak funguje aj takto, ale je to zle pochopene redom. Mne sa mu to nechce robit. Ja som mu tam hodil aj ukazku v programatorskom kutiku, nech sa clapec uz konecne nauci programovat .
Redo alebo to sprav obiektovo a vtedy ti odpadaju vsetky tie problemy s ukazovatelmi. .
mne sa tiež nechce, a tvoja ukážka bola zmes céčka a c++ takže zas tak hrdý na ňu nemusíš byť
zmes cecka a c++ ? :DDD,sak to je jedno. Ja som zvyknuty v c++ pouzivat na vypis do konzoli prikazy z C, 80% kniznic pre c++ je kodenych v c . neak moc hrdy na ten kod?, sak ma pak riadkov, ide tam iba o tie pointre, iny vyznam ten kod nemal.
//audiotrack: to že môžeš v c++ používať príkazy z c ešte neznamená že je to to isté