Jason,
The answer to your question depends a great deal on how you are
representing your 5 by 5 matrix (i.e. are you using a single 25
element list, or a list of 5 lists where each sublist contains 5
elements). But if you can do the proper translation, here's an
approach.
Pe-calculate all possible winning combinations and make a list of
lists out of them. That is, make one list, where each element in the
list is a list of a single winning combination. To make this most
simple, let's just assume that you are using a single list with
elements 1 to 25 to represent your game:
lCombinations = [\
[1, 2, 3, 4, 5],\
[6, 7, 8, 9, 10],\
...
[21, 22, 23, 24, 25],\
[1, 6, 11, 16, 21],\
...
[5, 10, 15, 20, 25]]
Then given this list of lists, you write a handler to step through
these combinations to see if all elements are the same color.
Completely untested:
-- I'm assuming that you have some global list, let's call it gBoard
that contains the game elements
on CheckForMatch
nCombinations = count(lCombinations)
repeat with i = 1 to nCombinations
lThisCombination = lCombinations[i]
indexOfFirstItemInThisCombination = lThisCombination[1]
valueToMatch = gBoard[indexofFirstItemInThisCombination]
nItemsInThisCombination = count(lThisCombination)
fMatched = TRUE -- assume a match until proven otherwise
repeat with j = 2 to nItemsInThisCombination
indexOfNextItemInThisCombination = lThisCombination[j]
thisValue = gBoard[indexofNextItemInThisCombination]
if thisValue <> valueToMatch then
fMatched = FALSE -- sorry Charlie
exit repeat
end if
end repeat
if fMatched then
-- This items in the list lThisCombination are all the
same value, do whatever you want here
end if
end repeat
end
Hope this gives you some inspiration.
Irv
At 11:46 PM -0500 1/28/02, Jason Je wrote:
>Hi... I am building a simple game and I need some help here...
>
>Let's just say that I am making a tetris-like game... The basic
>thing I have to check is if the blocks are same color or not... I'm
>using 5X5 matrix here...
>The basic things that I have to check in this game is to see if any
>three(four and five) consecutive blocks in any direction within the
>matrix have the same value or not... And I also check if any
>five(seven and nine) blocks are making any cross shape with same
>value and so on...
>Currently I am just using simple if statement to check all of
>occurence... but I think there should be some simple method that I
>could use rather than using if statements on all occasions...
>Can someone help me out here???
>
>TIA
>Jason
--
Lingo / Director / Shockwave development for all occasions.
(Home-made Lingo cooked up fresh every day just for you.)
[To remove yourself from this list, or to change to digest mode, go to
http://www.penworks.com/lingo-l.cgi To post messages to the list, email
[EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for
learning and helping with programming Lingo. Thanks!]