Example #1
0
 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;
            }
        }
Example #3
0
        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));
 }