三目並べの配列に同じ文字が3つあるかどうかをチェックする関数があります。問題は、ロジックに問題があることです。
for (int i = 0; i < SIZE; i++){
for (int j = 0; j < SIZE; j++){
if (board[i][j] != '*'){
if (i != j){
if (board[i][i] == board[i][j]){
matches++;
}
else if (board[i][j] == board[j][i]){
matches++;
}
else if (board[i][j] == board[j][j]){
matches++;
}
else if (board[i][j] == board[j][i]){
matches++;
}
else {
matches = 0;
}
}
}
}
}
水平方向と垂直方向に一致するかどうかを確認できるようです。しかし、対角線の一致を見つける方法を完全に理解することはできません。このコードは機能すると思いましたが、今のところ機能していません。
何が悪いのかについて何か提案はありますか?