private void playerMakeMoveHisTurn() { m_MoveNum = eMoveNum.FirstMove; m_FirstMovePoint = askPlayingPlayerForMoveCheckMoveAndMakeCoordinate(); m_FirstMoveSymbol = m_GameBoard.ExposeSymbolAndTakeValue(m_FirstMovePoint); m_FormGame.showBoardFromLogic(m_GameBoard.Board, PlayerOne, PlayerTwo); m_FormGame.WaitForPushButtom = false; m_FormGame.ShowDialog(); m_FormGame.WaitForPushButtom = true; m_MoveNum = eMoveNum.SecondMove; m_SecondMovePoint = askPlayingPlayerForMoveCheckMoveAndMakeCoordinate(); m_SecondMoveSymbol = m_GameBoard.ExposeSymbolAndTakeValue(m_SecondMovePoint); m_FormGame.showBoardFromLogic(m_GameBoard.Board, PlayerOne, PlayerTwo); m_FormGame.WaitForPushButtom = false; m_FormGame.ShowDialog(); if (m_SecondMoveSymbol != m_FirstMoveSymbol) { cancelLastPlayingPlayerPlay(); } else { if (m_PlayerTurn == eTurn.PlayerOne) { m_PlayerOne.GivePlayerOnePoint(); m_GameBoard.PaintCubeInColor(m_FirstMovePoint, m_SecondMovePoint, PlayerOne.Color); } else { m_PlayerTwo.GivePlayerOnePoint(); m_GameBoard.PaintCubeInColor(m_FirstMovePoint, m_SecondMovePoint, m_PlayerTwo.Color); } m_FormGame.showBoardFromLogic(m_GameBoard.Board, PlayerOne, PlayerTwo); } if (m_PlayerTwo.IsAi() == true) { m_PlayerTwo.AiBrain.SetCardRevealedFromLastMove(m_FirstMovePoint, m_FirstMoveSymbol, m_SecondMovePoint, m_SecondMoveSymbol); } }
private void playerMakeMoveHisTurn(GameBoard io_Board, eTurn i_PlayingPlayer) { eMoveNum moveNum = eMoveNum.FirstMove; Coordinate firstMoveCoordinate = askPlayingPlayerForMoveCheckMoveAndMakeCoordinate(io_Board, i_PlayingPlayer, moveNum, null); int symbolOfFirstMove; symbolOfFirstMove = m_Ui.representTheBoardWithMove(io_Board, firstMoveCoordinate); moveNum = eMoveNum.SecondMove; Coordinate secondMoveCoordinate = askPlayingPlayerForMoveCheckMoveAndMakeCoordinate(io_Board, i_PlayingPlayer, moveNum, symbolOfFirstMove); int symbolOfSecondMove; symbolOfSecondMove = m_Ui.representTheBoardWithMove(io_Board, secondMoveCoordinate); if (symbolOfSecondMove != symbolOfFirstMove) { System.Threading.Thread.Sleep(2000); cancelLastPlayingPlayerPlay(io_Board, firstMoveCoordinate, secondMoveCoordinate); } else { if (i_PlayingPlayer == eTurn.PlayerOne) { m_PlayerOne.GivePlayerOnePoint(); } else { m_PlayerTwo.GivePlayerOnePoint(); } } if (m_PlayerTwo.IsAi() == true) { m_PlayerTwo.AiBrain.SetCardRevealedFromLastMove(firstMoveCoordinate, symbolOfFirstMove, secondMoveCoordinate, symbolOfSecondMove); } }
private Coordinate askPlayingPlayerForMoveAndMakeCoordinate(GameBoard io_Board, eTurn io_PlayingPlayer, eMoveNum io_MoveNum, int?i_SymbolOfFirstMoveCardRevealed) { Coordinate moveCoordinate; if (io_PlayingPlayer == eTurn.PlayerOne) { moveCoordinate = getMoveFromHumanPlayerAndMakeCoordinate(io_Board); } else { if (m_PlayerTwo.IsAi() == true) { UI.printComputerMakingAMove(); if (io_MoveNum == eMoveNum.FirstMove) { moveCoordinate = m_PlayerTwo.AiBrain.MakingFirstMove(); } else { moveCoordinate = m_PlayerTwo.AiBrain.MakingSecondMove(i_SymbolOfFirstMoveCardRevealed.Value); } System.Console.Write(UI.sr_ColSymbol[moveCoordinate.Col]); System.Console.WriteLine(UI.sr_RowSymbol[moveCoordinate.Row]); System.Threading.Thread.Sleep(2000); } else { moveCoordinate = getMoveFromHumanPlayerAndMakeCoordinate(io_Board); } } return(moveCoordinate); }
private Coordinate askPlayingPlayerForMoveCheckMoveAndMakeCoordinate(GameBoard io_Board, eTurn io_PlayingPlayer, eMoveNum i_MoveNum, int?i_SymbolOfFirstMoveCardRevealed) { Coordinate moveCoordinate; bool v_AlreadyExposed; do { m_Ui.printMakeAMove(m_PlayerOne.NameOfPlayer, m_PlayerTwo.NameOfPlayer, io_PlayingPlayer); moveCoordinate = askPlayingPlayerForMoveAndMakeCoordinate(io_Board, io_PlayingPlayer, i_MoveNum, i_SymbolOfFirstMoveCardRevealed); v_AlreadyExposed = CheckInput.IssueErrorMessageExposedCube(CheckIfCoordinateisExposed(io_Board, moveCoordinate)); }while (v_AlreadyExposed == true); return(moveCoordinate); }