public void CurrentPlayerWon() { _currentState = PhutballGameStateEnum.CurrentPlayerWon; _playersState.Stop(); _eventPublisher.Publish(new PhutballGameEnded()); _eventPublisher.Publish(new PlayersStateChanged()); }
public void Restart() { CancelComputerMove(); _currentState = PhutballGameStateEnum.NotStarted; _playersState.Stop(); _eventPublisher.Publish(new PlayersStateChanged()); _eventPublisher.Publish(new PhutballGameEnded()); }
public PhutballGameState( IEventPublisher eventPublisher, IPhutballBoard phutballBoard, IPlayersState playersState, BestMoveApplier bestMoveApplier, Func<IHandlePlayerMoves> handlePlayerMovesFactory) { _currentState = PhutballGameStateEnum.NotStarted; _eventPublisher = eventPublisher; _phutballBoard = phutballBoard; _playersState = playersState; _bestMoveApplier = bestMoveApplier; _handlePlayerMovesFactory = handlePlayerMovesFactory; _handlePlayerMoves = handlePlayerMovesFactory(); _eventPublisher.Subscribe<PlayerWonEvent>((e)=> CurrentPlayerWon()); _eventPublisher.Subscribe<PlayerOnTheMoveChanged>(OnPlayerOnTheMoveChanged); _eventPublisher.Subscribe<ComputerStartedMoving>((e)=> LongRunningProcess.Clear()); }
private void StartBoardAndPlayers() { _phutballBoard.Initialize(); _handlePlayerMoves.WaitForPlayerMove(); _currentState = PhutballGameStateEnum.Started; _eventPublisher.Publish(new PhutballGameStarted()); _eventPublisher.Publish(new PlayersStateChanged()); PerformMoveAsComputerIfNeeded(); }
protected override void Because() { _curretnState = Sut.CurrentState; }