Exemplo n.º 1
0
    List <Tile> MatchTileCheckNeighbours(int x, int y)
    {
        HashSet <Tile> MatchSet = new HashSet <Tile>();
        //Debug.Log("x: " + x + " y: " + y);
        int       x1, x2, x3, y1, y2, y3;
        ColorTile ColorTarget = boardGame.GetColorTileFormCoord(x, y);

        int[] Template = new int[] { -2, -1, 0 };

        for (int i = 0; i < 3; i++)
        {
            x1 = x + Template[0] + i;
            x2 = x + Template[1] + i;
            x3 = x + Template[2] + i;
            //Debug.Log("x1: " + x1 + " x2: " + x2 + " x3: " + x3);

            if (x1 >= 0 && x2 >= 0 && x3 >= 0 && boardGame.Width > x1 && boardGame.Width > x2 && boardGame.Width > x3)
            {
                if (ColorTarget == boardGame.GetColorTileFormCoord(x1, y) &&
                    ColorTarget == boardGame.GetColorTileFormCoord(x2, y) &&
                    ColorTarget == boardGame.GetColorTileFormCoord(x3, y))
                {
                    MatchSet.Add(boardGame.GetTileFormCoord(x1, y));
                    MatchSet.Add(boardGame.GetTileFormCoord(x2, y));
                    MatchSet.Add(boardGame.GetTileFormCoord(x3, y));
                }
            }

            y1 = y + Template[0] + i;
            y2 = y + Template[1] + i;
            y3 = y + Template[2] + i;
            //Debug.Log("y1: " + y1 + " y2: " + y2 + " y3: " + y3);
            if (y1 >= 0 && y >= 0 && y3 >= 0 && boardGame.Height > y1 && boardGame.Height > y2 && boardGame.Height > y3)
            {
                if (ColorTarget == boardGame.GetColorTileFormCoord(x, y1) &&
                    ColorTarget == boardGame.GetColorTileFormCoord(x, y2) &&
                    ColorTarget == boardGame.GetColorTileFormCoord(x, y3))
                {
                    MatchSet.Add(boardGame.GetTileFormCoord(x, y1));
                    MatchSet.Add(boardGame.GetTileFormCoord(x, y2));
                    MatchSet.Add(boardGame.GetTileFormCoord(x, y3));
                }
            }
        }
        foreach (var item in MatchSet)
        {
            //Debug.Log("item: " + item.PositionX + " " + item.PositionY);
        }
        return(new List <Tile>(MatchSet));
    }