Exemple #1
0
        //----------------------------------------------------------------------//
        internal Board.Tile ReturnARandomTileFromBoard(GuessingGame i_Game)
        {
            int rowIndex = i_Game.RandomNumber.Next(0, i_Game.Board.RowBorder);
            int colIndex = i_Game.RandomNumber.Next(0, i_Game.Board.ColumnBorder);

            while (i_Game.Board[rowIndex, colIndex].IsOpen)
            {
                rowIndex = i_Game.RandomNumber.Next(0, i_Game.Board.RowBorder);
                colIndex = i_Game.RandomNumber.Next(0, i_Game.Board.ColumnBorder);
            }

            return(i_Game.Board[rowIndex, colIndex]);
        }
Exemple #2
0
        //----------------------------------------------------------------------//
        internal bool findAMatchingSet(Board.Tile i_FirstTile, out Board.Tile o_SecondTile, GuessingGame i_Game)
        {
            o_SecondTile = null;
            bool isMatchFound = false;

            foreach (Board.Tile currentTile in this.m_RememberFlips)
            {
                if (i_Game.IsMatchingFlip(i_FirstTile, currentTile))
                {
                    if (currentTile != i_FirstTile)
                    {
                        o_SecondTile = currentTile;
                        isMatchFound = true;
                        break;
                    }
                }
            }

            return(isMatchFound);
        }
Exemple #3
0
        //----------------------------------------------------------------------//
        private bool findAMatchInList(out Board.Tile o_FirstTile, out Board.Tile o_SecondTile, GuessingGame i_Game)
        {
            bool isFoundMatch = false;

            o_SecondTile = o_FirstTile = null;

            foreach (Board.Tile currentTile in this.m_RememberFlips)
            {
                if (!currentTile.IsOpen)
                {
                    isFoundMatch = this.findAMatchingSet(currentTile, out o_SecondTile, i_Game);

                    if (isFoundMatch)
                    {
                        o_FirstTile = currentTile;
                        break;
                    }
                }
            }

            if (!isFoundMatch)
            {
                o_FirstTile = this.ReturnARandomTileFromBoard(i_Game);

                if (!this.m_RememberFlips.Contains(o_FirstTile))
                {
                    this.m_RememberFlips.Add(o_FirstTile);

                    if (findAMatchingSet(o_FirstTile, out o_SecondTile, i_Game))
                    {
                        isFoundMatch = true;
                    }
                }
            }

            return(isFoundMatch);
        }
 //----------------------------------------------------------------------//
 public UserInterface()
 {
     this.m_Game = new GuessingGame();
 }