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)); }