Witam. Mam do napisania grę logiczną, która nazywa się "studnia". Plansza 6x8 i zrzucamy z góry koraliki które trzeba układać tak aby były uzyskać 4 tego samego koloru w pionie, poziomie lub skosie. Mój problem dotyczy tego ostatniego. Napisałem funkcję, która sprawdza czy na planszy istnieje jakiś skos, ale nie działa poprawnie. Może ktoś pomoże?
bool game::check_slant(char par_player){
int i,j,ile=0;
for(i=board_width-1; i>=0; i--)
for(j=board_height-1; j>=0; j--){
ile=0;
if(board[i][j]==par_player && board[i-1][j+1]==par_player){
for(int k=i; k>=0; k--)
for(int l=j; l<=board_height-1; l++) {
if(board[k][l]==par_player)
ile++;
if(ile==how_many_wins)
return true;
}
}
else if(board[i][j]==par_player && board[i+1][j-1]==par_player){
for(int k=i; k<=board_width-1; k++)
for(int l=j; l>=0; l--) {
if(board[k][l]==par_player)
ile++;
if(ile==how_many_wins)
return true;
}
}
ile=0;
if(board[i][j]==par_player && board[i-1][j-1]==par_player) {
for(int k=i; k>=0; k--)
for(int l=j; l>=0; l--) {
if(board[k][l]==par_player)
ile++;
if(ile==how_many_wins)
return true;
}
}
else if(board[i][j]==par_player && board[i+1][j+1]==par_player) {
for(int k=i; k<=board_width-1; k++)
for(int l=j; l<=board_height-1; l++) {
if(board[k][l]==par_player)
ile++;
if(ile==how_many_wins)
return true;
}
}
}
return false;
}