public static bool CheckIsNULL(ref List <GemBrick> listGems, GemBrick gem) { if (gem.brickType != BrickList.BRICK_TYPE.NONE) { listGems.Add(gem); return(true); } return(false); }
void FloodFill(GemBrick node) { List <GemBrick> gemList = new List <GemBrick>(); if (node.brickType != BrickList.BRICK_TYPE.NONE) { return; } int x = 0, y = 0; //RIGHT CHECK for (x = node.colID; x < gems[node.rowID].Count; x++) { if (BrickList.CheckIsNULL(ref gemList, gems[node.rowID][x])) { break; } } //LEFT CHECK for (x = node.colID; x >= 0; x--) { if (BrickList.CheckIsNULL(ref gemList, gems[node.rowID][x])) { break; } } //TOP CHECK for (y = node.rowID; y < gems.Count; y++) { if (BrickList.CheckIsNULL(ref gemList, gems[y][node.colID])) { break; } } //BOTTOM CHECK for (y = node.rowID; y >= 0; y--) { if (BrickList.CheckIsNULL(ref gemList, gems[y][node.colID])) { break; } } //FINISH CHECK FinishCheckGem(gemList); }
public void StartCheckGems(GemBrick gem) { FloodFill(gem); }