   Question about making something like bejewelled
  Alright, I have the source for Miran's Gem Game over at allegro.cc, but I was thinking of making something similiar myself. I am avoiding looking at his source to see if this is something I can figure out on my own or not.. The basic gameplay seems simple enough for me to implement. Im curious about the checks to look for rows of 3 or more however. After thinking about it for a while, my 'map' would be stored in a 2d array [10][10] per se, then to check for lines, I would just iterate through the array one tile at a time, check to see if its neighbor below or to the right is the same, if it is check the next neighbor, otherwise move on. If we have 3, I would just clear those on the map, then drop in random new ones and move any tiles down as needed. After each move or drop, re-run through the array once again, to check for a cascade. Im still kinda thinking about how I would track it if removing a line caused a cascade and how I could determine it and display messages or handle scoring. Am I on the right track with my thinking here? Is this how a bejewelled type game is normally done?Edit: marked as solved, then removed it - decided always good to look at multiple viewpoints..   
  Your algorithm seems correct (I haven't played bejewelled but I know the idea).  The only thing that might be different is if you could have multiple removals at once.Also, make sure not to delete the set of 3 you find right away because if you do, then if you had 4 in a row, you wouldn't know because you deleted the past 3 (unless deleting doesn't imply your done).Good luck!   ;  Yeah, I see that's something I'll need to watch for.. more than 3 in a row. If I get brave as well I might throw in some oddball powerups that will shuffle the board, or shift everything 1 tile over in a random direction.. After the game is done though.I have to finish up my current one tho, gameplay is all done, just some tweaking animations and adding sound fx, adding dieing animations, etc.. Now that it work works, Im bored with it. lol So, I do have some time to work out the details on this one.. Would allowing diagonal rows be too much you think?   ;  You shouldn't restart after only finding one row, because you may get two or more rows from the same move.  Other than that, it sounds about right.   ;changes = True.Until not changes:  changes = False.  For rows in 1 to (last - 1):    For columns in 1 to (last - 1): Clear marking.  For rows in 1 to (last - 1):    For columns in 1 to (last - 1): If two adjacent tiles in opposite directions have the same colours:   Mark this tile.   Mark both those adjacent tiles.   changes = True.  For rows in 1 to (last - 1):    For columns in 1 to (last - 1): If this location is marked:   set this location as empty.  Fill in all empty locations as usual.Decorate with scoring logic as desired.   ;  Thanx for the help.. will be thinking about this and probably start working on it in a day or two...   