public Player MoveToNextPlayer() { if (stepBack || (makaoStack.TopCard == new Card(CardRank.King, CardSuit.Pike) && TopCardActive)) { return(HandleStepBack()); } if (playersInGame[currentPlayerIndex].Cards.Count == 0) { playersInGame.RemoveAt(currentPlayerIndex); if (playersInGame.Count < 2) { GameEnded?.Invoke(this, EventArgs.Empty); return(null); } currentPlayerIndex %= playersInGame.Count; } else { currentPlayerIndex = (currentPlayerIndex + 1) % playersInGame.Count; } CurrentPlayerChanged?.Invoke(this, EventArgs.Empty); return(CurrentPlayer); }
protected void OnCurrentPlayerChanged(string newCurrentPlayerName) { CurrentPlayerChanged?.Invoke(this, new PlayerEventArgs { PlayerName = newCurrentPlayerName }); }
public void test2() { CurrentPlayerChanged g1 = new CurrentPlayerChanged(new GameDto("012345678", "Player1")); CurrentPlayerChanged g2 = new CurrentPlayerChanged(new GameDto("012345678", "Player1")); Assert.AreEqual <CurrentPlayerChanged>(g1, g2); }
public void Start(string firstPlayerName, string secondPlayerName) { firstPlayer = CreatePlayer(firstPlayerName); secondPlayer = CreatePlayer(secondPlayerName); isFirstPlayerCurrent = true; CurrentPlayerChanged?.Invoke(CurrentPlayer); ChangeStage(GameStage.ArrangingShips); }
/// <summary> /// ゲームをリセットします。 /// </summary> public void ResetGame() { this.board.ResetBoard(PlayerForm.None); CurrentPlayer = PlayerForm.Circle; CurrentPlayerChanged?.Invoke(this, EventArgs.Empty); BoardChanged?.Invoke(this, EventArgs.Empty); this.GameStatus = GameStatus.BeforeStart; Winner = PlayerForm.None; }
void _OnCurrentPlayerChanged(CurrentPlayerChanged e) { if (e.newCurr == Player.L) { currRound++; } if (e.newCurr != Player.NaN) { LogLine(e.newCurr, "TURN STARTED"); } }
public void Handle(CurrentPlayerChanged message) { if (message.Player == opponent.colour) { var move = opponent.GetMove(Board); if (move != null) { Board.MovePiece(move[0], move[1]); ChessingtonServices.EventAggregator.Publish(new AIMoveUpdate(move[1])); } } }
void _OnCurrentPlayerChanged(CurrentPlayerChanged e) { if (!active) { return; } if (e.newCurr == player) { StartCoroutine(DoTurn()); } }
/// <summary> /// <see cref="CurrentPlayer"/>を切り替えます。 /// </summary> private void SwitchCurrentPleyer() { if (CurrentPlayer == PlayerForm.Circle) { CurrentPlayer = PlayerForm.Cross; CurrentPlayerChanged?.Invoke(this, EventArgs.Empty); } else if (CurrentPlayer == PlayerForm.Cross) { CurrentPlayer = PlayerForm.Circle; CurrentPlayerChanged?.Invoke(this, EventArgs.Empty); } }
private void ResetGame() { IsBlackPlayerCurrent = true; _isPlayerBeforePassed = false; CurrentPlayerChanged?.Invoke(); Board.EmptyBoard(); Score = new Dictionary <BoardColor, int> { { BoardColor.Black, 0 }, { BoardColor.White, 0 } }; ScoreChanged?.Invoke(BoardColor.Black); ScoreChanged?.Invoke(BoardColor.White); }
public void Handle(CurrentPlayerChanged message) { CurrentPlayer = Enum.GetName(typeof(Player), message.Player); Player player = message.Board.CurrentPlayer; Player otherPlayer = player.opposingPlayer(); if (message.Board.PlayerHasNoMoves(player)) { if (message.Board.PlayerIsInCheck(player)) { ChessingtonServices.EventAggregator.Publish(new PlayerHasWon(otherPlayer)); } else { ChessingtonServices.EventAggregator.Publish(new Stalemate()); } } }
private Player HandleStepBack() { SearchningPlayerDelegate getPreceedingPlayerIndex = (int cur) => { return((cur - 1 < 0) ? playersInGame.Count - 1 : cur - 1); }; SearchningPlayerDelegate getProceedingPlayerIndex = (int cur) => { return((cur + 1) % playersInGame.Count); }; if (playersInGame[currentPlayerIndex].Cards.Count == 0) { playersInGame.RemoveAt(currentPlayerIndex); if (playersInGame.Count < 2) { GameEnded?.Invoke(this, EventArgs.Empty); return(null); } if (!stepBack) { stepBack = true; for (currentPlayerIndex = getPreceedingPlayerIndex(currentPlayerIndex); playersInGame[currentPlayerIndex].TurnsToWait > 0; currentPlayerIndex = getPreceedingPlayerIndex(currentPlayerIndex)) { } } else { stepBack = false; for (currentPlayerIndex = currentPlayerIndex % playersInGame.Count; playersInGame[currentPlayerIndex].TurnsToWait > 0; currentPlayerIndex = getProceedingPlayerIndex(currentPlayerIndex)) { } } } else { if (!stepBack) { stepBack = true; for (currentPlayerIndex = getPreceedingPlayerIndex(currentPlayerIndex); playersInGame[currentPlayerIndex].TurnsToWait > 0; currentPlayerIndex = getPreceedingPlayerIndex(currentPlayerIndex)) { } } else { stepBack = false; for (currentPlayerIndex = getProceedingPlayerIndex(currentPlayerIndex); playersInGame[currentPlayerIndex].TurnsToWait > 0; currentPlayerIndex = getProceedingPlayerIndex(currentPlayerIndex)) { } } } CurrentPlayerChanged?.Invoke(this, EventArgs.Empty); return(playersInGame[currentPlayerIndex]); }
public void Handle(CurrentPlayerChanged DomainEvent) { this.gameView.Render(DomainEvent.GameDtoRefreshed); }
private void OnCurrentPlayerChanged() { CurrentPlayerChanged?.Invoke(CurrentPlayer); }
public void Apply(CurrentPlayerChanged currentPlayerChanged) { _currentPlayer = _players.First(x => x.Id == currentPlayerChanged.PlayerId); }
private void ChangeCurrentPlayer() { IsBlackPlayerCurrent = !IsBlackPlayerCurrent; CurrentPlayerChanged?.Invoke(); }
private void MoveToNextPlayer() { isFirstPlayerCurrent = !isFirstPlayerCurrent; CurrentPlayerChanged?.Invoke(CurrentPlayer); }
public void Handle(CurrentPlayerChanged message) { CurrentPlayer = Enum.GetName(typeof(Player), message.Player); }
void _OnCurrentPlayerChanged(CurrentPlayerChanged e) { currPlayer = e.newCurr; }