public Computer(Board i_GameBoard)
 {
     m_ListOfMemoryLetters = new List<CellForComputer>();
     CreateListOfEmptyIndex(i_GameBoard);
     m_RandomCell = new Random();
     m_Score = 0;
 }
        public static void ShowBoard(Board i_Board)
        {
            StringBuilder BoradToPrint = new StringBuilder();

            BoradToPrint.AppendFormat("    " + 'A');
            for (char j = 'B'; j < 'A' + i_Board.Columns; j++)
            {
                BoradToPrint.AppendFormat("   " + j);
            }

            BoradToPrint.AppendFormat(Environment.NewLine);
            BoradToPrint.AppendFormat("  ");
            BoradToPrint.AppendFormat("=");
            BoradToPrint.AppendFormat("======================");
            for (int j = 0; j < i_Board.Columns; j++)
            {
                BoradToPrint.AppendFormat("====");
            }

            BoradToPrint.AppendFormat(Environment.NewLine);

            for (int i = 0; i < i_Board.Rows; i++)
            {
                BoradToPrint.AppendFormat("{0}" + " ", i + 1);
                for (int j = 0; j < i_Board.Columns; j++)
                {
                    if (i_Board.BoardData[i, j].IsVisible)
                    {
                        BoradToPrint.AppendFormat("|" + " " + "{0}" + " ", char.ToUpper(i_Board.BoardData[i, j].Data));
                    }
                    else
                    {
                        BoradToPrint.AppendFormat("|" + " " + "  ");
                    }
                }

                BoradToPrint.AppendFormat("|");
                BoradToPrint.AppendFormat(Environment.NewLine);
                BoradToPrint.AppendFormat("  ");
                for (int j = 0; j < i_Board.Columns; j++)
                {
                    BoradToPrint.AppendFormat("====");
                }

                BoradToPrint.AppendFormat("=");
                BoradToPrint.AppendFormat("=");
                BoradToPrint.AppendFormat(Environment.NewLine);
            }

            Console.WriteLine(BoradToPrint);
        }
        private void AddToMemory(Board i_GameBoard, Computer i_Pc, int i_SaveIndexRowTurn1, int i_SaveIndexColumnTurn1, int i_SaveIndexRowTurn2, int i_SaveIndexColumnTurn2)
        {
            CellForComputer cellMemoryExist;
            if (!i_Pc.isLetterExist(i_SaveIndexRowTurn1, i_SaveIndexColumnTurn1, i_GameBoard.BoardData[i_SaveIndexRowTurn1, i_SaveIndexColumnTurn1].Data, out cellMemoryExist))
            {
                i_Pc.InsertToMemory(i_SaveIndexRowTurn1, i_SaveIndexColumnTurn1, i_GameBoard.BoardData[i_SaveIndexRowTurn1, i_SaveIndexColumnTurn1].Data);
            }

            if (!i_Pc.isLetterExist(i_SaveIndexRowTurn2, i_SaveIndexColumnTurn2, i_GameBoard.BoardData[i_SaveIndexRowTurn2, i_SaveIndexColumnTurn2].Data, out cellMemoryExist))
            {
                i_Pc.InsertToMemory(i_SaveIndexRowTurn2, i_SaveIndexColumnTurn2, i_GameBoard.BoardData[i_SaveIndexRowTurn2, i_SaveIndexColumnTurn2].Data);
            }
        }
 public void MakeComputerInstance(Board i_Board)
 {
     m_Pc = new Computer(i_Board);
 }
 public void BuildBoard(int i_Rows, int i_Colums)
 {
     m_GameBoard = new Board(i_Rows, i_Colums);
 }
        public void CreateListOfEmptyIndex(Board i_GameBoard)
        {
            List<List<char>> boardList = new List<List<char>>();

            for (int i = 0; i < i_GameBoard.Rows; i++)
            {
                List<char> listOfChars = new List<char>();
                for (char j = 'A'; j < i_GameBoard.Columns + 'A'; j++)
                {
                    listOfChars.Add(j);
                }

                boardList.Add(listOfChars);
            }

            m_ListOfEmptyIndex = boardList;
        }