Computer Science Canada

Connect 4 Checking Procedure Help

Author:  KennEH! [ Tue Jan 26, 2010 5:58 pm ]
Post subject:  Connect 4 Checking Procedure Help

What is it you are trying to achieve?
I am working on a connect four program and I'm trying to checking for four pieces in a line.


What is the problem you are having?
My check works, but only if you placed the first or last piece in the line of four.

Describe what you have tried to solve this problem
I have tried using a nested loop to check every piece in the grid, but it ends up not checking until the last possible piece is played.

Turing:


%checks pieces in every direction around placed piece to see if won
%win - if false program will continue to loop, if fails program exits loop
%pc - colour of piece
%x - x coordinate of piece
%y - y coordinate of piece
proc check
    for x : 25 .. 325 by 50
        for y : 20 .. 275 by 50
            if whatdotcolour (x, y) = pc and whatdotcolour (x + 50, y) = pc and whatdotcolour (x + 100, y) = pc and whatdotcolour (x + 150, y) = pc or
                    whatdotcolour (x, y) = pc and whatdotcolour (x, y + 50) = pc and whatdotcolour (x, y + 100) = pc and whatdotcolour (x, y + 150) = pc or
                    whatdotcolour (x, y) = pc and whatdotcolour (x + 50, y + 50) = pc and whatdotcolour (x + 100, y + 100) = pc and whatdotcolour (x + 150, y + 150) = pc or
                    whatdotcolour (x, y) = pc and whatdotcolour (x - 50, y) = pc and whatdotcolour (x - 100, y) = pc and whatdotcolour (x - 150, y) = pc or
                    whatdotcolour (x, y) = pc and whatdotcolour (x, y - 50) = pc and whatdotcolour (x, y - 100) = pc and whatdotcolour (x, y - 150) = pc or
                    whatdotcolour (x, y) = pc and whatdotcolour (x - 50, y - 50) = pc and whatdotcolour (x - 100, y - 100) = pc and whatdotcolour (x - 150, y - 150) = pc then
                win := true
            else
                win := false
            end if
        end for
    end for
end check



Please specify what version of Turing you are using
4.1.1


: