public GameBoardModel(Game game, Player currentPlayer) { this.PlayerID = currentPlayer.ID; this.GameID = game.ID; this.Rows = game.GameBoard.NumRows; this.Cols = game.GameBoard.NumCols; this.Tokens = game.GameBoard.GetTokens().Select(token => new GameTokenModel(token, currentPlayer.ID)).ToArray(); }
public GameMoveResultModel(DomainModel.Player player, DomainModel.Game result) { var defender = result.GameStatus.OtherPlayer; var human = player.IsComputerControlled ? defender : player; this.GameID = result.ID; this.Result = result.GameStatus.CurrentMoveResult; this.AttackerTokenType = result.GameStatus.AttackerToken.TokenType; this.DefenderTokenType = result.GameStatus.DefenderToken == null ? DomainModel.TokenType.Empty : result.GameStatus.DefenderToken.TokenType; this.AttackerTokenID = result.GameStatus.CurrentMove.Token.ID; this.MoveToX = result.GameStatus.CurrentMove.MoveTo.X; this.MoveToY = result.GameStatus.CurrentMove.MoveTo.Y; this.Rows = result.GameBoard.NumRows; this.Cols = result.GameBoard.NumCols; this.Tokens = result.GameBoard.GetTokens().Select(token => new GameTokenModel(token, human.ID)).ToArray(); switch (result.GameStatus.CurrentMoveResult) { case DomainModel.GameMoveResultType.AttackerWins: this.Message = string.Format("{0} attacks {1} - {0} Wins!", AttackerTokenType, DefenderTokenType); break; case DomainModel.GameMoveResultType.DefenderWins: this.Message = string.Format("{0} attacks {1} - {1} Wins!", AttackerTokenType, DefenderTokenType); break; case DomainModel.GameMoveResultType.BothLose: this.Message = string.Format("{0} attacks {1} - Everyone Loses!", AttackerTokenType, DefenderTokenType); break; case DomainModel.GameMoveResultType.FlagCapturedByAttacker: this.Message = string.Format("Player {0} Wins! Game Over.", player.Name); break; case DomainModel.GameMoveResultType.AttackerOutOfPieces: this.Message = string.Format("Player {0} ran out of pieces. Player {1} Wins! Game Over.", player.Name, defender.Name); break; case DomainModel.GameMoveResultType.DefenderOutOfPieces: this.Message = string.Format("Player {0} ran out of pieces. Player {1} Wins! Game Over.", defender.Name, player.Name); break; case DomainModel.GameMoveResultType.BothOutOfPieces: this.Message = "Its a tie! Game Over."; break; } }
public async Task<Game> CreateSinglePlayerGameAsync(Player player, GameProperties properties) { var gameBoard = GameBoard.New(properties, player, Player.ComputerPlayer); var status = GameStatus.CreateActive(player, Player.ComputerPlayer); var game = new Game(0, player, Player.ComputerPlayer, status, gameBoard); var results = await repository.CreateAsync(game); return results; }
public void Add(DomainModel.Player player, DomainModel.Game result) { this.Results.Add(new GameMoveResultModel(player, result)); }