///<summary> /// Same as GameTileSameColorArranger, just different comparisons /// The problem here is that, if there is a case for 7-7-7-7, it's included /// but 7-7-7 7 is not, it cannot find subgroups, so FindAll does not find every possibilty under this GroupMethod ///</summary> protected GameTileGroup GroupMethod(GameTile p_selectedTile, GameTileGroup p_gameTileGroup) { GameTileGroup result = new GameTileGroup(); result.AddGameTile(p_selectedTile); for (int i = p_gameTileGroup.GameTiles.IndexOf(p_selectedTile); i < p_gameTileGroup.GameTileCount; i++) { if (p_gameTileGroup[i].CompareNumber(p_selectedTile)) { bool sameColorExists = false; for (int j = 0; j < result.GameTileCount; j++) { if (result[j].CompareColor(p_gameTileGroup[i])) { sameColorExists = true; } } if (!sameColorExists) { p_selectedTile = p_gameTileGroup[i]; result.AddGameTile(p_selectedTile); } } } return(result); }
///<summary> /// Grouping method that works on o(n^2) since GameTileGroup is iterated for every GameTile inside the group ///</summary> protected GameTileGroup GroupMethod(GameTile p_selectedTile, GameTileGroup p_gameTileGroup) { GameTileGroup result = new GameTileGroup(); result.AddGameTile(p_selectedTile); for (int i = 0; i < p_gameTileGroup.GameTileCount; i++) { if (p_gameTileGroup[i].CompareColor(p_selectedTile) && p_gameTileGroup[i].IsNextOf(p_selectedTile)) { p_selectedTile = p_gameTileGroup[i]; result.AddGameTile(p_selectedTile); i = -1; } } return(result); }
public void AddTile(GameTile p_gameTile) { EveryTile.AddGameTile(p_gameTile); }