find_and_crush() to find and mark crushable candies:
(r, c).board[r][c] is non-zero, check for three or more same-type candies horizontally or vertically.drop() to let candies fall into empty spaces:
find_and_crush() and drop() until the board is stable (no more candies are crushed).