This is probably easier if I actually posted my code.
Anywhos, this is the current game as it stands. Please note that I am not a programmer so my coding won't be clean or efficient:
Rem Project: Conveyer Cubes
Rem Created: 1/23/2010 5:56:36 PM
Rem ***** Main Source File *****
SET DISPLAY MODE 1024, 768, 32
SYNC ON
SYNC RATE 60
`Setting the Camera
MAKE CAMERA 1
POSITION CAMERA 1, 0, 50, 0
POINT CAMERA 1, 0, 0, 0
`Setting up Player Variables
GLOBAL toggle AS INTEGER = 0
GLOBAL moves AS INTEGER = 0
GLOBAL score AS INTEGER = 0
`Setting up UDT
TYPE cube_info
column AS INTEGER = 0
row AS INTEGER = 0
colour AS INTEGER = 0
ENDTYPE
`Setting up Cube Array
DIM cubes(25) AS cube_info
`Setting up Possible Colours
DIM PossibleColours(8)
PossibleColours(1) = RGB(255, 0, 0) `Red
PossibleColours(2) = RGB(255, 127, 0) `Orange
PossibleColours(3) = RGB(255, 255, 0) `Yellow
PossibleColours(4) = RGB(0, 255, 0) `Green
PossibleColours(5) = RGB(0, 0, 255) `Blue
PossibleColours(6) = RGB(128, 0, 128) `Purple
PossibleColours(7) = RGB(150, 75, 0) `Brown
PossibleColours(8) = RGB(0, 0, 0) `Black
`Setting up the Colour Count
DIM ColourCount(8)
ColourCount(1) = 0 `Red
ColourCount(2) = 0 `Orange
ColourCount(3) = 0 `Yellow
ColourCount(4) = 0 `Green
ColourCount(5) = 0 `Blue
ColourCount(6) = 0 `Purple
ColourCount(7) = 0 `Brown
ColourCount(8) = 0 `White
`Setting up Cubes
`Row 1
FOR n = 1 to 5
IF n = 1
MAKE OBJECT CUBE n, 10
POSITION OBJECT n, -20, 0, 20
cubes(n).row = 1
cubes(n).column = 1
ELSE
MAKE OBJECT CUBE n, 10
POSITION OBJECT n, -30 + (10 * n), 0, 20
cubes(n).row = 1
cubes(n).column = n
ENDIF
NEXT n
`Row 2
FOR n = 6 to 10
MAKE OBJECT CUBE n, 10
POSITION OBJECT n, -80 + (10 * n), 0, 10
cubes(n).row = 2
cubes(n).column = n - 5
NEXT n
`Row 3
FOR n = 11 to 15
MAKE OBJECT CUBE n, 10
POSITION OBJECT n, -130 + (10 * n), 0, 0
cubes(n).row = 3
cubes(n).column = n - 10
NEXT n
`Row 4
FOR n = 16 to 20
MAKE OBJECT CUBE n, 10
POSITION OBJECT n, -180 + (10 * n), 0, -10
cubes(n).row = 4
cubes(n).column = n - 15
NEXT n
`Row 5
FOR n = 21 to 25
MAKE OBJECT CUBE n, 10
POSITION OBJECT n, -230 + (10 * n), 0, -20
cubes(n).row = 5
cubes(n).column = n - 20
NEXT n
`Colouring each Cube
FOR n = 2 to 25
recolour:
colour = 1 + RND(7)
IF ColourCount(colour) < 3
COLOR OBJECT n, PossibleColours(colour)
ColourCount(colour) = ColourCount(colour) + 1
cubes(n).colour = colour
ELSE
GOTO recolour
ENDIF
NEXT n
`Setting up the Target Object
MAKE OBJECT SPHERE 9999, 5
POSITION OBJECT 9999, 20, 5, -20
DO
moving_cube()
position_cube()
reaching_the_target()
connected_cubes()
TEXT 0, 0, "Player Column: " +str$(cubes(1).column)
TEXT 0, 15, "Player Row: " +str$(cubes(1).row)
TEXT 0, 30, "Toggle: " +str$(toggle)
TEXT 0, 45, "Number of Moves: " +str$(moves)
TEXT 0, 60, "Score: " +str$(score)
TEXT 0, 75, "Colour: " +str$(cubes(2).colour)
SYNC
LOOP
`===================================================
`THE FOLLOWING FUNCTION IS FOR MOVING THE WHITE CUBE
`===================================================
FUNCTION moving_cube()
`Turn toggle off if the player is not pressing any button
IF RIGHTKEY() = 0 AND LEFTKEY() = 0 AND UPKEY() = 0 AND DOWNKEY() = 0
toggle = 0
ENDIF
`=====================================================
`THE FOLLOWING CODE IS TO MOVE THE CUBES LEFT OR RIGHT
`=====================================================
`=====
`ROW 1
`=====
`Move cubes in row 1 to the right
IF RIGHTKEY() = 1 AND cubes(1).row = 1 AND toggle = 0
INC moves, 1
toggle = 1
FOR n = 1 to 25
IF cubes(n).row = 1
IF cubes(n).column < 5
cubes(n).column = cubes(n).column + 1
ELSE
cubes(n).column = 1
ENDIF
ENDIF
NEXT n
ENDIF
`Move cubes in row 1 to the left
IF LEFTKEY() = 1 AND cubes(1).row = 1 AND toggle = 0
INC moves, 1
toggle = 1
FOR n = 1 to 25
IF cubes(n).row = 1
IF cubes(n).column > 1
cubes(n).column = cubes(n).column - 1
ELSE
cubes(n).column = 5
ENDIF
ENDIF
NEXT n
ENDIF
`=====
`ROW 2
`=====
`Move cubes in row 2 to the right
IF RIGHTKEY() = 1 AND cubes(1).row = 2 AND toggle = 0
INC moves, 1
toggle = 1
FOR n = 1 to 25
IF cubes(n).row = 2
IF cubes(n).column < 5
cubes(n).column = cubes(n).column + 1
ELSE
cubes(n).column = 1
ENDIF
ENDIF
NEXT n
ENDIF
`Move cubes in row 2 to the left
IF LEFTKEY() = 1 AND cubes(1).row = 2 AND toggle = 0
INC moves, 1
toggle = 1
FOR n = 1 to 25
IF cubes(n).row = 2
IF cubes(n).column > 1
cubes(n).column = cubes(n).column - 1
ELSE
cubes(n).column = 5
ENDIF
ENDIF
NEXT n
ENDIF
`=====
`ROW 3
`=====
`Move cubes in row 3 to the right
IF RIGHTKEY() = 1 AND cubes(1).row = 3 AND toggle = 0
INC moves, 1
toggle = 1
FOR n = 1 to 25
IF cubes(n).row = 3
IF cubes(n).column < 5
cubes(n).column = cubes(n).column + 1
ELSE
cubes(n).column = 1
ENDIF
ENDIF
NEXT n
ENDIF
`Move cubes in row 3 to the right
IF LEFTKEY() = 1 AND cubes(1).row = 3 AND toggle = 0
INC moves, 1
toggle = 1
FOR n = 1 to 25
IF cubes(n).row = 3
IF cubes(n).column > 1
cubes(n).column = cubes(n).column - 1
ELSE
cubes(n).column = 5
ENDIF
ENDIF
NEXT n
ENDIF
`=====
`ROW 4
`=====
`Move cubes in row 4 to the right
IF RIGHTKEY() = 1 AND cubes(1).row = 4 AND toggle = 0
INC moves, 1
toggle = 1
FOR n = 1 to 25
IF cubes(n).row = 4
IF cubes(n).column < 5
cubes(n).column = cubes(n).column + 1
ELSE
cubes(n).column = 1
ENDIF
ENDIF
NEXT n
ENDIF
`Move cubes in row 4 to the right
IF LEFTKEY() = 1 AND cubes(1).row = 4 AND toggle = 0
INC moves, 1
toggle = 1
FOR n = 1 to 25
IF cubes(n).row = 4
IF cubes(n).column > 1
cubes(n).column = cubes(n).column - 1
ELSE
cubes(n).column = 5
ENDIF
ENDIF
NEXT n
ENDIF
`=====
`ROW 5
`=====
`Move cubes in row 5 to the right
IF RIGHTKEY() = 1 AND cubes(1).row = 5 AND toggle = 0
INC moves, 1
toggle = 1
FOR n = 1 to 25
IF cubes(n).row = 5
IF cubes(n).column < 5
cubes(n).column = cubes(n).column + 1
ELSE
cubes(n).column = 1
ENDIF
ENDIF
NEXT n
ENDIF
`Move cubes in row 5 to the right
IF LEFTKEY() = 1 AND cubes(1).row = 5 AND toggle = 0
INC moves, 1
toggle = 1
FOR n = 1 to 25
IF cubes(n).row = 5
IF cubes(n).column > 1
cubes(n).column = cubes(n).column - 1
ELSE
cubes(n).column = 5
ENDIF
ENDIF
NEXT n
ENDIF
`==================================================
`THE FOLLOWING CODE IS TO MOVE THE CUBES UP OR DOWN
`==================================================
`========
`COLUMN 1
`========
`Move cubes in column 1 down
IF DOWNKEY() = 1 AND cubes(1).column = 1 AND toggle = 0
INC moves, 1
toggle = 1
FOR n = 1 to 25
IF cubes(n).column = 1
IF cubes(n).row < 5
cubes(n).row = cubes(n).row + 1
ELSE
cubes(n).row = 1
ENDIF
ENDIF
NEXT n
ENDIF
`Move cubes in column 1 up
IF UPKEY() = 1 AND cubes(1).column = 1 AND toggle = 0
INC moves, 1
toggle = 1
FOR n = 1 to 25
IF cubes(n).column = 1
IF cubes(n).row > 1
cubes(n).row = cubes(n).row - 1
ELSE
cubes(n).row = 5
ENDIF
ENDIF
NEXT n
ENDIF
`========
`COLUMN 2
`========
`Move cubes in column 2 down
IF DOWNKEY() = 1 AND cubes(1).column = 2 AND toggle = 0
INC moves, 1
toggle = 1
FOR n = 1 to 25
IF cubes(n).column = 2
IF cubes(n).row < 5
cubes(n).row = cubes(n).row + 1
ELSE
cubes(n).row = 1
ENDIF
ENDIF
NEXT n
ENDIF
`Move cubes in column 2 up
IF UPKEY() = 1 AND cubes(1).column = 2 AND toggle = 0
INC moves, 1
toggle = 1
FOR n = 1 to 25
IF cubes(n).column = 2
IF cubes(n).row > 1
cubes(n).row = cubes(n).row - 1
ELSE
cubes(n).row = 5
ENDIF
ENDIF
NEXT n
ENDIF
`========
`COLUMN 3
`========
`Move cubes in column 3 down
IF DOWNKEY() = 1 AND cubes(1).column = 3 AND toggle = 0
INC moves, 1
toggle = 1
FOR n = 1 to 25
IF cubes(n).column = 3
IF cubes(n).row < 5
cubes(n).row = cubes(n).row + 1
ELSE
cubes(n).row = 1
ENDIF
ENDIF
NEXT n
ENDIF
`Move cubes in column 3 up
IF UPKEY() = 1 AND cubes(1).column = 3 AND toggle = 0
INC moves, 1
toggle = 1
FOR n = 1 to 25
IF cubes(n).column = 3
IF cubes(n).row > 1
cubes(n).row = cubes(n).row - 1
ELSE
cubes(n).row = 5
ENDIF
ENDIF
NEXT n
ENDIF
`========
`COLUMN 4
`========
`Move cubes in column 4 down
IF DOWNKEY() = 1 AND cubes(1).column = 4 AND toggle = 0
INC moves, 1
toggle = 1
FOR n = 1 to 25
IF cubes(n).column = 4
IF cubes(n).row < 5
cubes(n).row = cubes(n).row + 1
ELSE
cubes(n).row = 1
ENDIF
ENDIF
NEXT n
ENDIF
`Move cubes in column 4 up
IF UPKEY() = 1 AND cubes(1).column = 4 AND toggle = 0
INC moves, 1
toggle = 1
FOR n = 1 to 25
IF cubes(n).column = 4
IF cubes(n).row > 1
cubes(n).row = cubes(n).row - 1
ELSE
cubes(n).row = 5
ENDIF
ENDIF
NEXT n
ENDIF
`========
`COLUMN 5
`========
`Move cubes in column 5 down
IF DOWNKEY() = 1 AND cubes(1).column = 5 AND toggle = 0
INC moves, 1
toggle = 1
FOR n = 1 to 25
IF cubes(n).column = 5
IF cubes(n).row < 5
cubes(n).row = cubes(n).row + 1
ELSE
cubes(n).row = 1
ENDIF
ENDIF
NEXT n
ENDIF
`Move cubes in column 5 up
IF UPKEY() = 1 AND cubes(1).column = 5 AND toggle = 0
INC moves, 1
toggle = 1
FOR n = 1 to 25
IF cubes(n).column = 5
IF cubes(n).row > 1
cubes(n).row = cubes(n).row - 1
ELSE
cubes(n).row = 5
ENDIF
ENDIF
NEXT n
ENDIF
ENDFUNCTION
`=========================================================================================
`THE FOLLOWING FUNCTION IS TO POSITION ALL CUBES IN THEIR CORRECT PLACES WHEN MOVED AROUND
`=========================================================================================
FUNCTION position_cube()
`==================
`FOR CUBES IN ROW 1
`==================
`Row 1, Column 1
FOR n = 1 to 25
IF cubes(n).row = 1 AND cubes(n).column = 1
POSITION OBJECT n, -20, 0, 20
ENDIF
NEXT n
`Row 1, Column 2
FOR n = 1 to 25
IF cubes(n).row = 1 AND cubes(n).column = 2
POSITION OBJECT n, -10, 0, 20
ENDIF
NEXT n
`Row 1, Column 3
FOR n = 1 to 25
IF cubes(n).row = 1 AND cubes(n).column = 3
POSITION OBJECT n, 0, 0, 20
ENDIF
NEXT n
`Row 1, Column 4
FOR n = 1 to 25
IF cubes(n).row = 1 AND cubes(n).column = 4
POSITION OBJECT n, 10, 0, 20
ENDIF
NEXT n
`Row 1, Column 5
FOR n = 1 to 25
IF cubes(n).row = 1 AND cubes(n).column = 5
POSITION OBJECT n, 20, 0, 20
ENDIF
NEXT n
`==================
`FOR CUBES IN ROW 2
`==================
`Row 2, Column 1
FOR n = 1 to 25
IF cubes(n).row = 2 AND cubes(n).column = 1
POSITION OBJECT n, -20, 0, 10
ENDIF
NEXT n
`Row 2, Column 2
FOR n = 1 to 25
IF cubes(n).row = 2 AND cubes(n).column = 2
POSITION OBJECT n, -10, 0, 10
ENDIF
NEXT n
`Row 2, Column 3
FOR n = 1 to 25
IF cubes(n).row = 2 AND cubes(n).column = 3
POSITION OBJECT n, 0, 0, 10
ENDIF
NEXT n
`Row 2, Column 4
FOR n = 1 to 25
IF cubes(n).row = 2 AND cubes(n).column = 4
POSITION OBJECT n, 10, 0, 10
ENDIF
NEXT n
`Row 2, Column 5
FOR n = 1 to 25
IF cubes(n).row = 2 AND cubes(n).column = 5
POSITION OBJECT n, 20, 0, 10
ENDIF
NEXT n
`==================
`FOR CUBES IN ROW 3
`==================
`Row 3, Column 1
FOR n = 1 to 25
IF cubes(n).row = 3 AND cubes(n).column = 1
POSITION OBJECT n, -20, 0, 0
ENDIF
NEXT n
`Row 3, Column 2
FOR n = 1 to 25
IF cubes(n).row = 3 AND cubes(n).column = 2
POSITION OBJECT n, -10, 0, 0
ENDIF
NEXT n
`Row 3, Column 3
FOR n = 1 to 25
IF cubes(n).row = 3 AND cubes(n).column = 3
POSITION OBJECT n, 0, 0, 0
ENDIF
NEXT n
`Row 3, Column 4
FOR n = 1 to 25
IF cubes(n).row = 3 AND cubes(n).column = 4
POSITION OBJECT n, 10, 0, 0
ENDIF
NEXT n
`Row 3, Column 5
FOR n = 1 to 25
IF cubes(n).row = 3 AND cubes(n).column = 5
POSITION OBJECT n, 20, 0, 0
ENDIF
NEXT n
`==================
`FOR CUBES IN ROW 4
`==================
`Row 4, Column 1
FOR n = 1 to 25
IF cubes(n).row = 4 AND cubes(n).column = 1
POSITION OBJECT n, -20, 0, -10
ENDIF
NEXT n
`Row 4, Column 2
FOR n = 1 to 25
IF cubes(n).row = 4 AND cubes(n).column = 2
POSITION OBJECT n, -10, 0, -10
ENDIF
NEXT n
`Row 4, Column 3
FOR n = 1 to 25
IF cubes(n).row = 4 AND cubes(n).column = 3
POSITION OBJECT n, 0, 0, -10
ENDIF
NEXT n
`Row 4, Column 4
FOR n = 1 to 25
IF cubes(n).row = 4 AND cubes(n).column = 4
POSITION OBJECT n, 10, 0, -10
ENDIF
NEXT n
`Row 4, Column 5
FOR n = 1 to 25
IF cubes(n).row = 4 AND cubes(n).column = 5
POSITION OBJECT n, 20, 0, -10
ENDIF
NEXT n
`==================
`FOR CUBES IN ROW 5
`==================
`Row 5, Column 1
FOR n = 1 to 25
IF cubes(n).row = 5 AND cubes(n).column = 1
POSITION OBJECT n, -20, 0, -20
ENDIF
NEXT n
`Row 5, Column 2
FOR n = 1 to 25
IF cubes(n).row = 5 AND cubes(n).column = 2
POSITION OBJECT n, -10, 0, -20
ENDIF
NEXT n
`Row 5, Column 3
FOR n = 1 to 25
IF cubes(n).row = 5 AND cubes(n).column = 3
POSITION OBJECT n, 0, 0, -20
ENDIF
NEXT n
`Row 5, Column 4
FOR n = 1 to 25
IF cubes(n).row = 5 AND cubes(n).column = 4
POSITION OBJECT n, 10, 0, -20
ENDIF
NEXT n
`Row 5, Column 5
FOR n = 1 to 25
IF cubes(n).row = 5 AND cubes(n).column = 5
POSITION OBJECT n, 20, 0, -20
ENDIF
NEXT n
ENDFUNCTION
`=======================================================================
`THE FOLLOWING FUNCTION IS FOR WHEN THE PLAYER REACHES THE TARGET OBJECT
`=======================================================================
FUNCTION reaching_the_target()
IF OBJECT COLLISION(1, 9999) = 1
score = score + 100
location = 25 - RND(23)
POSITION OBJECT 9999, OBJECT POSITION X(location), OBJECT POSITION Y(location) + 5, OBJECT POSITION Z(location)
ENDIF
ENDFUNCTION
If you press the directional keys, you move the row or column that the white box is in. What I wanted was something to happen when 3 of the same coloured cube are in a row.