Digital Paint Discussion Board
Digital Paint Community => Other Stuff => Topic started by: ic3y on May 26, 2009, 04:09:17 PM
-
I hope someone can help me.
This is my function:
int gewinnpruefung(char matrix[][8], char symbol, int zug_auswahl, int zl)
{
int i, j, tmp;
/* senkrecht */
tmp = 1;
for(j = zl + 1; j < HOEHE && matrix[(zug_auswahl-1)][j] == symbol; ++j, ++tmp);
if(tmp >= GEWONNEN)
return 1;
/* waagerecht */
tmp = 1;
for(i = (zug_auswahl-1) - 1; i >= 0 && matrix[i][zl] == symbol; --i, ++tmp);
for(i = (zug_auswahl-1) + 1; i < BREITE && matrix[i][zl] == symbol; ++i, ++tmp);
if(tmp >= GEWONNEN)
return 1;
/* diagonal \ */
tmp = 1;
for(i = (zug_auswahl-1) - 1, j = zl - 1; i >= 0 && j >= 0 && matrix[i][j] == symbol; --i, --j, ++tmp);
for(i = (zug_auswahl-1) + 1, j = zl + 1; i < BREITE && j < HOEHE && matrix[i][j] == symbol; ++i, ++j, ++tmp);
if(tmp >= GEWONNEN)
return 1;
/* diagonal / */
tmp = 1;
for(i = (zug_auswahl-1) - 1, j = zl + 1; i >= 0 && j < HOEHE && matrix[i][j] == symbol; --i, ++j, ++tmp);
for(i = (zug_auswahl-1) + 1, j = zl - 1; i < BREITE && j >= 0 && matrix[i][j] == symbol; ++i, --j, ++tmp);
if(tmp >= GEWONNEN)
return 1;
return 0;
}
I need it for my program, four wins.
Hoehe -> height
gewonnen -> win
Any ideas, if this works?
-
no
-
What's the problem?
I'm not incredibly familiar with C, but is the last statement in those for loops valid?