BattleShip.Core.GameHost.CreateGame C# (CSharp) Метод

CreateGame() публичный Метод

public CreateGame ( string gameName, string initiatingPlayerName, string initiatingPlayerEmail, string acceptingPlayerName, string acceptingPlayerEmail ) : System.Guid
gameName string
initiatingPlayerName string
initiatingPlayerEmail string
acceptingPlayerName string
acceptingPlayerEmail string
Результат System.Guid
        public Guid CreateGame(string gameName, string initiatingPlayerName, string initiatingPlayerEmail, string acceptingPlayerName, string acceptingPlayerEmail)
        {
            var initiatingPlayer = new Player(initiatingPlayerEmail, initiatingPlayerName);
            var acceptingPlayer = new Player(acceptingPlayerEmail, acceptingPlayerName);

            var game = new Game(gameName, initiatingPlayer, acceptingPlayer, PlayerTargetZoneRadius, ShotBlastRadius);
            games.Add(game.Id, game);

            return game.Id;
        }

Usage Example

Пример #1
0
        public void GameHost_TwoActiveGames_PlaysAsExpected()
        {
            const string player1Email = "*****@*****.**";
            const string player2Email = "*****@*****.**";
            var player1Game1Location = new GeoCoordinate(0.0, 0.0);
            var player2Game1Location = new GeoCoordinate(5.0, 5.0);
            var player1Game2Location = new GeoCoordinate(1.0, 1.0);
            var player2Game2Location = new GeoCoordinate(6.0, 6.0);
            var gameHost = new GameHost();

            Guid game1Id = gameHost.CreateGame("My Game 1", "A", player1Email, "B", player2Email);
            gameHost.SetPlayerLocation(game1Id, player1Email, player1Game1Location);
            gameHost.SetPlayerLocation(game1Id, player2Email, player2Game1Location);

            Guid game2Id = gameHost.CreateGame("My Game 2", "A", player1Email, "B", player2Email);
            gameHost.SetPlayerLocation(game2Id, player1Email, player1Game2Location);
            gameHost.SetPlayerLocation(game2Id, player2Email, player2Game2Location);

            var player1Game1TargetZone = gameHost.GetOpponentTargetZone(game1Id, player2Email);
            var player1Game2TargetZone = gameHost.GetOpponentTargetZone(game2Id, player2Email);

            //Game1, player1 - miss
            var shotLocation = new GeoCoordinate(player1Game1TargetZone.Center.Latitude + GameHost.ShotBlastRadius + 0.1, player1Game1TargetZone.Center.Longitude + GameHost.ShotBlastRadius + 0.1);
            var result = gameHost.TakeShot(game1Id, player2Email, shotLocation);
            Assert.AreEqual(ShotResult.Miss, result);

            //Game2, player1 - miss
            shotLocation = new GeoCoordinate(player1Game2TargetZone.Center.Latitude + GameHost.ShotBlastRadius + 0.1, player1Game2TargetZone.Center.Longitude + GameHost.ShotBlastRadius + 0.1);
            result = gameHost.TakeShot(game2Id, player2Email, shotLocation);
            Assert.AreEqual(ShotResult.Miss, result);

            //Game1, player2 - hit
            result = gameHost.TakeShot(game1Id, player1Email, player2Game1Location);
            Assert.AreEqual(ShotResult.Hit, result);

            //Game2, player2 - hit
            result = gameHost.TakeShot(game2Id, player1Email, player2Game2Location);
            Assert.AreEqual(ShotResult.Hit, result);

            //Game1, player1 - game already over
            result = gameHost.TakeShot(game1Id, player2Email, player2Game1Location);
            Assert.AreEqual(ShotResult.GameAlreadyOver, result);

            //Game2, player1 - game already over
            result = gameHost.TakeShot(game2Id, player2Email, player2Game2Location);
            Assert.AreEqual(ShotResult.GameAlreadyOver, result);
        }
All Usage Examples Of BattleShip.Core.GameHost::CreateGame