예제 #1
0
    public static bool CheckIsNULL(ref List <GemBrick> listGems, GemBrick gem)
    {
        if (gem.brickType != BrickList.BRICK_TYPE.NONE)
        {
            listGems.Add(gem);
            return(true);
        }

        return(false);
    }
예제 #2
0
    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);
    }
예제 #3
0
 public void StartCheckGems(GemBrick gem)
 {
     FloodFill(gem);
 }