We will create two methods for checking the neighboring tiles, as we need to do this for each axis (x
and y)
, separately.
1. Inside the
game
class, add a new method calledCheckGemsX
. As parameters, it will take the column and row, the gem type, and a mark flag.Method CheckGemsX:Int(column:Int, row:Int, gem:Int, mark:Bool = False)
2. First, add a local
found
variable of the type INT. It will be set once we find similar gems.Local found:Int = 0
3. Initialize the slot.
tileMap[column-1][row-1] = -1
4. Check if
column
is greater than1
. It means there must be gems on the left.If column > 1 Then
5. Start a FOR loop, stepping backwards from
column -1
to the first gem on the left.For Local c:Int = (column-1) To 1 Step -1
6. If the gem found isn't the same, exit the FOR loop.
If tileMap[c-1][row-1] <> gem Then Exit
7. If the
mark
flag was set, fill the value99
into the tile slot. It is used if we want to mark tiles to delete them...