Diagonals in winning conditions in connect four program are not working correctly and I do not know why

55 Views Asked by At

My winning conditions for rows and columns works completely fine. However, my diagonals do not. It will say you have won if you get your own number in 4 different rows and not in a direct diagonal as the game is meant to be played.

%check if won by columns
for column = 1:7
    counter = 0;
    for row = 1:6
        if(board(row,column) == players(1,2))
            counter = counter + 1;
            if(counter == 4)
                fprintf('You win! \n')
                break
            end
        else
            counter = 0;
        end
    end
end

%check if won by rows
for row = 1:6
    counter = 0;
    for column = 1:7
        if(board(row, column) == players(1,2))
            counter = counter + 1;
            if(counter == 4)
                fprintf('You win! \n')
                break
            end
        else 
            counter = 0;
        end
    end
end

%check if won by diagonal \ 1
for column = 1:4
    for row = 1:3
        counter = 0;
        if(board(row, column) == players(1))
            counter = (row+1), (column+1), (row+2), (column+2), (row+3), (column+3);
            if(counter == 4)
                fprintf('You win! \n')
                break
            end
        else 
            counter = 0;
        end
    end
end




%check if won by diagonal / 1
for column = 7:-1:4
    for row = 1:3
    counter = 0;
        if(board(row, column) == players(1))
            counter = (row+1), (column-1), (row+2), (column-2), (row+3), (column-3);
            if(counter == 4)
                fprintf('You win! \n')
                break
            end
        else 
            counter = 0;
        end
    end
end
0

There are 0 best solutions below