///<summary> /// This is used during collision search between arrangements, /// since every arragnment is created with duplicate tiles. ///</summary> public bool HasDuplicateTile(GameTile p_gameTile) { for (int i = 0; i < ArrangedGroups.Count; i++) { if (ArrangedGroups[i].HasDuplicate(p_gameTile)) { return(true); } } if (RemainderGroup != null && RemainderGroup.HasDuplicate(p_gameTile)) { return(true); } return(false); }
///<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); }
public GameTileArranger(GameTile p_okeyTile) { _okeyTile = p_okeyTile; }
///<summary> /// For some reason sorting algorithm leaves some ungroups single tiles, /// that's a bug, this is a brute fix ///</summary> public void AddTile(GameTile p_gameTile) { RemainderGroup.AddGameTile(p_gameTile); }
public GameTileSameNumberArranger(GameTile p_okeyTile) : base(p_okeyTile) { }
public GameTileSameColorArranger(GameTile p_okeyTile) : base(p_okeyTile) { }
public GameTileSmartArranger(GameTile p_okeyTile) : base(p_okeyTile) { }