Exemple #1
0
        ///<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);
        }
Exemple #2
0
        ///<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);
        }
Exemple #3
0
 public void AddTile(GameTile p_gameTile)
 {
     EveryTile.AddGameTile(p_gameTile);
 }