TurnResult IGame.MakeTurn(Sign sign, Field field) { if (!sign.Equals(this._currentPlayer.PlayerSign)) throw new ItIsNotYourTurnException(); var result = this._boardManager.MakeTurn(sign, field); if (result == TurnResult.Wrong || result == TurnResult.Win) return result; this._currentPlayer = this.GetCurrentPlayerOpponent(); return result; }
Player IGame.CreatePlayer() { lock (this._players) { if (this._players.Count == MaximumNumberOfPlayers) throw new CannotJoinToGameException("Game has maximum number of players."); var playerContext = Guid.NewGuid().ToString(); var player = new Player(playerContext, this._players.Count == 0 ? Sign.O : Sign.X); this.SetCurrentPlayerOnStart(player); this._players.Add(player); return player; } }
public void SetUp() { this._game = GameFactory.Get(); this._playerOne = this._game.CreatePlayer(); this._playerTwo = this._game.CreatePlayer(); }
private void SetCurrentPlayerOnStart(Player player) { if (this._players.Count == 0) this._currentPlayer = player; }