//----------------------------------------------------------------------// 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]); }
//----------------------------------------------------------------------// 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); }
//----------------------------------------------------------------------// 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(); }