Пример #1
0
    public Game Construct()
    {
        Initialize();

        GameObject gameHolder = new GameObject();
        gameHolder.name = gameName;
        gameHolder.transform.position = gameSetting.GridPosition;

        List<IGroupPattern> groupPatterns = groupPatternConverter.Convert();

        GameBuilder gameBuilder = new GameBuilder(gameHolder,
                                                  gameSetting,
                                                  particleSpawner,
                                                  blockColorRepository,
                                                  groupPatterns,
                                                  backgroundFactory,
                                                  cameraManager,
                                                  blockViewSpawner,
                                                  floatingTextRenderer);

        Game game = gameBuilder.Build();

        game.InitializeGrid();

        return game;
    }
Пример #2
0
        static void Main(string[] args)
        {
            bool save = false;

            GameBuilder builder = new GameBuilder();

            if (save)
            {
                builder.AddPlayer("Roger", "INFO");
                builder.AddPlayer("Bernard", "EII");
                builder.SetSize("Small");
                builder.UseDefaultFrequencies();
                Game game = builder.Build();
                game.Save("save01.dat");
            }
            else
            {
                Game game = builder.LoadGame("save01.dat");
                //Console.Write(game.Map);
                Console.WriteLine(game.CurrentPlayer);
                Console.WriteLine(game.CurrentPlayer.Cities[0]);
                game.NextTurn();
                Console.WriteLine(game.CurrentPlayer);
                Console.WriteLine(game.CurrentPlayer.Cities[0]);
                game.Save("save01.dat");
            }
        }
Пример #3
0
        public void Build_PopulatesMaxLives()
        {
            var builder = new GameBuilder();
            var state   = builder.Build(5, 6, 3, 5);

            Assert.AreEqual(3, state.MaxLives);
        }
        public void GivenGameHasSnakeAtFourteen_WhenUserReachesFourteen_ThenUserShouldMoveToSeven()
        {
            //given
            var gameBuilder = new GameBuilder();
            var player      = new Player
            {
                Place = 10
            };

            gameBuilder.AddPlayer(player);
            var snake = new Snake(14, 7);

            gameBuilder.AddJumper(snake);
            var dice = new Mock <IDice>();

            dice.Setup(d => d.Throw()).Returns(4);
            gameBuilder.SetDice(dice.Object);
            var game = gameBuilder.Build();

            //when
            var diceThrow = game.Play();

            //then
            game.Players.ToList()[0].Place.Should().Be(7);
        }
Пример #5
0
    public Game Construct()
    {
        Initialize();

        GameObject gameHolder = new GameObject();

        gameHolder.name = gameName;
        gameHolder.transform.position = gameSetting.GridPosition;

        List <IGroupPattern> groupPatterns = groupPatternConverter.Convert();

        GameBuilder gameBuilder = new GameBuilder(gameHolder,
                                                  gameSetting,
                                                  particleSpawner,
                                                  blockColorRepository,
                                                  groupPatterns,
                                                  backgroundFactory,
                                                  cameraManager,
                                                  blockViewSpawner,
                                                  floatingTextRenderer);

        Game game = gameBuilder.Build();

        game.InitializeGrid();

        return(game);
    }
        public void GivenPlayerHitsGreensSnakes_WhenPlayerAgainHitsSameSnake_ThenSnakeIsPowerless()
        {
            //given
            var gameBuilder = new GameBuilder();
            var player      = new Player
            {
                Place = 10
            };

            gameBuilder.AddPlayer(player);
            var snake = new GreenSnake(14, 10);

            gameBuilder.AddJumper(snake);
            var dice = new Mock <IDice>();

            dice.Setup(d => d.Throw()).Returns(4);
            gameBuilder.SetDice(dice.Object);
            var game      = gameBuilder.Build();
            var diceThrow = game.Play();

            //when
            diceThrow = game.Play();

            //then
            player.Place.Should().Be(14);
        }
        public void GivenPrimeNumberRuleApplied_WhenPlayerLandsOnPrimeNumber_ThenPlayerSkipsATurn()
        {
            //given
            var gameBuilder = new GameBuilder();
            var player1     = new Player("p1")
            {
                Place = 10
            };
            var player2 = new Player("p2")
            {
                Place = 11
            };

            gameBuilder.AddPlayer(player1);
            gameBuilder.AddPlayer(player2);
            var dice = new Mock <IDice>();

            dice.Setup(d => d.Throw()).Returns(3);
            gameBuilder.SetDice(dice.Object);
            gameBuilder.SetStrategy(new SkipOnPrimeNumberStrategy(new List <Player> {
                player1, player2
            }));
            var game = gameBuilder.Build();

            //when
            game.CurrentPlayer.Id.Should().Be(player1.Id, "First player at game start");
            game.Play();
            game.CurrentPlayer.Id.Should().Be(player2.Id, "Player2 after player1");
            game.Play();
            game.CurrentPlayer.Id.Should().Be(player2.Id, "Player1 is on skip");
            game.Play();
            game.CurrentPlayer.Id.Should().Be(player1.Id, "player1 after player2");
            //then
        }
        public void GetSummary_SomeGamesInProgress_ReturnedInProperOrder()
        {
            // Arrange
            var game1 = GameBuilder.Build("Mexico", 0, "Canada", 5, 1);

            service.ActiveGames.Add(game1);

            var game2 = GameBuilder.Build("Spain", 10, "Brazil", 2, 2);

            service.ActiveGames.Add(game2);

            var game3 = GameBuilder.Build("Germany", 2, "France", 2, 3);

            service.ActiveGames.Add(game3);

            var game4 = GameBuilder.Build("Uruguay", 6, "Italy", 6, 4);

            service.ActiveGames.Add(game4);

            var game5 = GameBuilder.Build("Argentina", 3, "Australia", 1, 5);

            service.ActiveGames.Add(game5);

            // Act
            var games = service.GetSummary().ToList();

            // Assert
            Assert.Equal(game4.Id, games[0].Id);
            Assert.Equal(game2.Id, games[1].Id);
            Assert.Equal(game1.Id, games[2].Id);
            Assert.Equal(game5.Id, games[3].Id);
            Assert.Equal(game3.Id, games[4].Id);
        }
Пример #9
0
        public void Build_InitializePlayerRow()
        {
            var builder = new GameBuilder();
            var state   = builder.Build(5, 6, 3, 5);

            Assert.AreEqual(2, state.Player.Row);
        }
Пример #10
0
        public void Build_InitializePlayerColumn()
        {
            var builder = new GameBuilder();
            var state   = builder.Build(5, 6, 3, 5);

            Assert.AreEqual(0, state.Player.Column);
        }
Пример #11
0
        public void TestEnemyAmongUsInitStrategy([Range(3, 15, 2)] int size)
        {
            var builder = new GameBuilder {
                BoardSize = size,
                Scenario  = GameScenario.EnemyAmongUs
            };

            builder.PlayerBuilder1.Color = Colors.Black;
            builder.PlayerBuilder2.Color = Colors.White;

            var game           = builder.Build();
            var positionsTuple = game.State.PositionsPair.Map(x => x.ToList());

            positionsTuple.ForEach(ps => Assert.AreEqual(size, ps.Count));

            positionsTuple.Zip((size - 1, 0))
            .ForEach(t => {
                var(ps, row) = t;
                Assert.AreEqual(size - 2, ps.Count(p => p.X == row));               // friend row
                Assert.AreEqual(2, ps.Count(p => p.X == size - 1 - row));           // enemy row
            });

            // ball carriers are middle pieces, in friend row
            game.State.BallCarrierPair
            .Zip((size - 1, 0))
            .ForEach(t => {
                var(ball, row) = t;
                Assert.AreEqual(size / 2, ball.Y);
                Assert.AreEqual(row, ball.X);
            });
        }
Пример #12
0
        public void TestGameSave()
        {
            gameBuilder = new GameBuilderUnsaved();

            Player[] tabPlayer = new Player[2];
            tabPlayer[0] = new Player("Joueur1", "cyclops");
            tabPlayer[1] = new Player("Joueur2", "centaur");

            gameBuilder.AddStrategy("demo");
            gameBuilder.AddPlayer(tabPlayer);
            Game game = gameBuilder.Build();


            Assert.AreEqual(game.NbJoueur, 2);
            Assert.AreEqual(game.ListPlayer.Count, 2);
            Assert.AreEqual(game.ListPlayer[0].Name, "Joueur1");
            Assert.AreEqual(game.ListPlayer[0].RaceString, "cyclops");
            Assert.AreEqual(game.ListPlayer[0].EntityList.Count, 4);
            Assert.AreEqual(game.ListPlayer[1].Name, "Joueur2");
            Assert.AreEqual(game.ListPlayer[1].RaceString, "centaur");
            Assert.AreEqual(game.ListPlayer[1].EntityList.Count, 4);

            if (game.CurrEntity.Pos == 0)
            {
                game.Move(1);
            }
            else if (game.CurrEntity.Pos == 35)
            {
                game.Move(34);
            }
            else if (game.CurrEntity.Pos == 5)
            {
                game.Move(4);
            }
            else if (game.CurrEntity.Pos == 29)
            {
                game.Move(30);
            }

            //On enregistre une sauvegarde du game dans un fichier SaveFile
            game.Save("SaveFile.txt", -1);

            Assert.IsTrue(game.VerifEndGame() == -1);

            //On charge la sauvegarde
            gameBuilder = new GameBuilderSaved("C:\\Users\\agimenez\\Documents\\SaveFile.txt");

            Game gameLoad = gameBuilder.Build();

            Assert.AreEqual(gameLoad.NbJoueur, 2);
            Assert.AreEqual(gameLoad.ListPlayer.Count, 2);
            Assert.AreEqual(gameLoad.ListPlayer[0].Name, "Joueur1");
            Assert.AreEqual(gameLoad.ListPlayer[0].RaceString, "cyclops");

            //Assert.AreEqual(game.ListPlayer[0].EntityList.Count, 4);
            Assert.AreEqual(gameLoad.ListPlayer[1].Name, "Joueur2");
            Assert.AreEqual(gameLoad.ListPlayer[1].RaceString, "centaur");
            Assert.AreEqual(gameLoad.ListPlayer[1].EntityList.Count, 4);
        }
Пример #13
0
        public void Build_CreatesPlayer()
        {
            var builder = new GameBuilder();
            var state   = builder.Build(5, 6, 3, 5);

            Assert.IsNotNull(state.Player);
            Assert.IsInstanceOf <PlayerState>(state.Player);
        }
Пример #14
0
        public GameHost()
        {
            var fieldManager = new FieldManager();
            var gameBuilder  = new GameBuilder(fieldManager);

            Game = gameBuilder.Build();

            GameManager = new GameManager(fieldManager);
        }
Пример #15
0
        public void Build_CreatesGrid(int rows, int columns, int mines)
        {
            var builder = new GameBuilder();
            var state   = builder.Build(rows, columns, 3, mines);

            Assert.IsNotNull(state.GameGrid);
            Assert.AreEqual(rows, state.GameGrid.Count);
            Assert.AreEqual(columns, state.GameGrid.First().Count);
            Assert.AreEqual(mines, GetMineCount(state));
        }
Пример #16
0
        public void GivenBoardWithOneUser_WhenNewGameCreated_ThenUserPlaceShouldBeOne()
        {
            //given
            var gameBuilder = new GameBuilder();
            var player      = gameBuilder.AddPlayer(new Player());
            //when
            var game = gameBuilder.Build();

            //then
            player.Place.Should().Be(1);
        }
        /// <summary>
        /// Creates the game's window.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void NextButtonClick(object sender, RoutedEventArgs e)
        {
            _builder.SetSize(_mapSize.Text);
            _builder.UseDefaultFrequencies();

            var main = Application.Current.MainWindow;
            var game = new GameWindow(_builder.Build());

            Application.Current.MainWindow = game;
            main.Close();
            game.Show();
        }
Пример #18
0
        public void GivenNewBoardWithOneUser_WhenGamePlayed_ThenUserIsAdvanced()
        {
            //given
            var gameBuilder = new GameBuilder();
            var player      = gameBuilder.AddPlayer(new Player());
            var game        = gameBuilder.Build();
            //when
            var diceThrow = game.Play();

            //then
            game.Players.ToList()[0].Place.Should().Be(diceThrow + 1);
        }
Пример #19
0
        public void TestSetSize([Range(1, 15)] int size)
        {
            var builder = new GameBuilder();

            builder.PlayerBuilder1.Color = Colors.Black;
            builder.PlayerBuilder2.Color = Colors.White;

            if (size % 2 == 0 || size < 2)
            {
                Assert.That(() => {
                    builder.BoardSize = size;
                    builder.Build();
                }, Throws.ArgumentException);
            }
            else
            {
                builder.BoardSize = size;
                var game = builder.Build();
                Assert.AreEqual(size, game.State.BoardSize);
            }
        }
        public void FinishGame_WrongGameId_GameIsNotRemoved()
        {
            // Arrange
            var game = GameBuilder.Build("Team1", 4, "Team2", 3, 1);

            service.ActiveGames.Add(game);

            // Act
            var result = service.FinishGame(game.Id + 1);

            // Assert
            Assert.False(result);
            Assert.Single(service.ActiveGames);
        }
        public void FinishGame_ValidGameId_GameIsRemoved()
        {
            // Arrange
            var game = GameBuilder.Build("Team1", 4, "Team2", 3, 1);

            service.ActiveGames.Add(game);

            // Act
            var result = service.FinishGame(game.Id);

            // Assert
            Assert.True(result);
            Assert.Empty(service.ActiveGames);
        }
Пример #22
0
        static void Main(string[] args)
        {
            var gameBuilder = new GameBuilder();

            gameBuilder.AddScene <Introduction>();
            gameBuilder.AddScene <Chapter1>();
            gameBuilder.AddScene <Chapter2>();
            gameBuilder.AddScene <Chapter3>();
            gameBuilder.AddScene <End>();

            var game = gameBuilder.Build();

            game.Launch();
        }
        public void UpdateGame_NegativeScore_ExceptionIsThrown(int newHomeScore, int newAwayScore)
        {
            // Arrange
            var homeScore = 0;
            var awayScore = 0;
            var game      = GameBuilder.Build("Team1", homeScore, "Team2", awayScore, 1);

            service.ActiveGames.Add(game);

            // Act
            var exception = Record.Exception(() => service.UpdateScore(game.Id + 1, newHomeScore, newAwayScore));

            // Assert
            Assert.IsType <ArgumentOutOfRangeException>(exception);
        }
Пример #24
0
        public void TestAttackDefense()
        {
            gameBuilder = new GameBuilderUnsaved();;

            Player[] tabPlayer = new Player[2];
            tabPlayer[0] = new Player("Joueur1", "cyclops");
            tabPlayer[1] = new Player("Joueur2", "centaur");

            gameBuilder.AddStrategy("demo");
            gameBuilder.AddPlayer(tabPlayer);
            Game game = gameBuilder.Build();

            game.StartTurn();
            game.CurrEntity.Pos = 2;

            //les movePoints ne sont sencés changer après un Skip() car ils sont au max
            double Oldpoint = game.CurrEntity.MovePoint;

            Assert.IsTrue(game.Skip());
            Assert.AreEqual(Oldpoint, game.CurrEntity.MovePoint);

            //On passe la main a l'enemy
            game.EndMyTurn();
            game.CurrEntity.Pos = 3;
            game.EndMyTurn();

            //c'est la seul entity dans la position 3 donc c'est la meilluer defense
            Assert.AreEqual(game.CurrEntity, game.Map.GetBestDefenser(2));

            game.Map.GetDistance(game.CurrEntity, 3);

            //Le move va decalancher un combat vu que il ya l'enemy est dans la case suivante
            //l'entité courante gagne et cela retourne true
            Assert.IsTrue(game.Move(3));
            Assert.AreEqual(game.GetActionNumber(), 1);

            //On met tout ses LifePoint à 0 pour que l'autre joueur gagne
            // FAUX ! On sort l'unité du plateau en lui mettant pour position -1
            foreach (Entity e in game.ListPlayer[0].EntityList)
            {
                //e.LifePoint = 0;
                game.Map.Remove(e.Pos, e);
            }
            //On passe la main à l'autre joueur
            game.EndMyTurn();
            Assert.AreEqual(game.VerifEndGame(), game.CurrPlayerNumber);
        }
        public void UpdateGame_WrongNameIdValidScore_ScoreDoesNotGetUpdated()
        {
            // Arrange
            var homeScore    = 0;
            var awayScore    = 0;
            var newAwayScore = 1;
            var game         = GameBuilder.Build("Team1", homeScore, "Team2", awayScore, 1);

            service.ActiveGames.Add(game);

            // Act
            service.UpdateScore(game.Id + 1, game.HomeTeam.Score, newAwayScore);

            // Assert
            Assert.Equal(homeScore, service.ActiveGames[0].HomeTeam.Score);
            Assert.NotEqual(newAwayScore, service.ActiveGames[0].AwayTeam.Score);
        }
Пример #26
0
        public void TestBallRandomInitStrategy([Range(3, 15, 2)] int size)
        {
            var builder = new GameBuilder {
                BoardSize = size,
                Scenario  = GameScenario.BallRandom
            };

            builder.PlayerBuilder1.Color = Colors.Black;
            builder.PlayerBuilder2.Color = Colors.White;

            var game = builder.Build();

            var(p1Pos, p2Pos) = game.State.PositionsPair.Map(x => x.ToList());

            game.State.PositionsPair.ForEach(ps => Assert.AreEqual(size, ps.Count()));

            p1Pos.ForEach(x => Assert.AreEqual(size - 1, x.X)); // bottom row
            p2Pos.ForEach(x => Assert.AreEqual(0, x.X));        // top row

            // ball carriers can be any piece in the line
        }
Пример #27
0
        public void GivenPlayerIsAt70_WhenGameRolls4_ThenPlaceIs74()
        {
            //given
            var gameBuilder = new GameBuilder();
            var player      = new Player()
            {
                Place = 70
            };

            gameBuilder.AddPlayer(player);
            var dice = new Mock <IDice>();

            dice.Setup(d => d.Throw()).Returns(4);
            gameBuilder.SetDice(dice.Object);
            var game = gameBuilder.Build();

            //when
            game.Play();

            //then
            game.Players.ToList()[0].Place.Should().Be(74);
        }
Пример #28
0
        void TryCreateGame(Session session, string botUserName = null)
        {
            if (session.Awaiting)
            {
                return;
            }
            var rand           = new Random(DateTime.Now.Millisecond);
            var turnOwnerIndex = rand.Next(session.Users.Count);
            var turnOwner      = session.Users[turnOwnerIndex];
            var gameBuilder    =
                new GameBuilder(session.Id, session.Users, GameRules.StartHealth, GameRules.StartPower)
                .WithTurnOwner(turnOwner);

            if (!string.IsNullOrEmpty(botUserName))
            {
                gameBuilder.WithBot(botUserName);
            }
            if (!_games.TryAdd(gameBuilder.Build()))
            {
                _logger.LogError("Can't create game for session: '{0}'", session.Id);
            }
        }
Пример #29
0
        public void TestStandardInitStrategy([Range(3, 15, 2)] int size)
        {
            var builder = new GameBuilder {
                BoardSize = size,
                Scenario  = GameScenario.Standard
            };

            builder.PlayerBuilder1.Color = Colors.Black;
            builder.PlayerBuilder2.Color = Colors.White;

            var game = builder.Build();

            var(p1Pos, p2Pos) = game.State.PositionsPair.Map(x => x.ToList());

            Assert.AreEqual(size, p1Pos.Count);
            Assert.AreEqual(size, p2Pos.Count);

            p1Pos.ForEach(x => Assert.AreEqual(size - 1, x.X)); // bottom row
            p2Pos.ForEach(x => Assert.AreEqual(0, x.X));        // top row

            // ball carriers are middle pieces
            game.State.BallCarrierPair.ForEach(x => Assert.AreEqual(size / 2, x.Y));
        }
Пример #30
0
        static void Main(string[] args)
        {
            Console.WriteLine("Menu diaballik (entrer le numéro de l'action) :");
            Console.WriteLine("\t 1 : Nouvelle Partie (standard)");
            Console.WriteLine("\t 2 : Charger une partie (standard)");
            Console.WriteLine("\t 3 : exit");
            bool validation = true;

            while (validation)
            {
                string action = Console.ReadLine();
                switch (action)
                {
                case "1":
                    Console.WriteLine("Le nom du joueur 1:");
                    string nom1 = Console.ReadLine();
                    Console.WriteLine("La couleur du joueur 1:");
                    string color1 = Console.ReadLine();
                    Console.WriteLine("Le nom du joueur 2:");
                    string nom2 = Console.ReadLine();
                    Console.WriteLine("La couleur du joueur 2:");
                    string color2 = Console.ReadLine();

                    Console.WriteLine("Type de Board souhaiter (standard/ballrandom/enemyamongus):");
                    BoardStrategy strat;
                    string        boardStrat = Console.ReadLine();
                    switch (boardStrat)
                    {
                    case "standrard":
                        strat = BoardStrategy.Standard;
                        break;

                    case "ballrandom":
                        strat = BoardStrategy.BallRandom;
                        break;

                    case "enemyamongus":
                        strat = BoardStrategy.EnemyAmongUs;
                        break;

                    default:
                        strat = BoardStrategy.Standard;
                        break;
                    }

                    Console.WriteLine("Taille de Board souhaiter (entrer un entier impair):");
                    int size;
                    while ((size = int.Parse(Console.ReadLine())) % 2 != 1)
                    {
                        Console.WriteLine("Veuillez entrer un entier impair:");
                    }


                    GameBuilder gb = new GameBuilder().SetPlayer0(nom1, color1).SetPlayer1(nom2, color2).SetBoard(size, strat);
                    Game        g  = gb.Build();

                    bool valid = true;
                    while (valid)
                    {
                        Console.WriteLine(g.ToString());
                        Console.WriteLine("Nombre de déplacement de pièce restant :" + (2 - g.MovePieceCount));
                        Console.WriteLine("Nombre de déplacement de pièce restant :" + (1 - g.MoveBallCount));
                        Console.WriteLine("Choississez votre action :");
                        Console.WriteLine("1: Déplacer Pièce");
                        Console.WriteLine("2: Déplacer Ball");
                        Console.WriteLine("3: Fin du tour");
                        Console.WriteLine("4: Undo");
                        Console.WriteLine("5: Redo");
                        Console.WriteLine("6: Exit");
                        string rep = Console.ReadLine();
                        switch (rep)
                        {
                        case "1":         // Move Piece
                            Console.WriteLine("which piece ? (x)");
                            string repx = Console.ReadLine();
                            Console.WriteLine("which piece ? (y)");
                            string repy = Console.ReadLine();
                            Console.WriteLine("where to ? (x)");
                            string wherex = Console.ReadLine();
                            Console.WriteLine("where to ? (y)");
                            string wherey = Console.ReadLine();
                            g.Update(new MovePiece(int.Parse(repx), int.Parse(repy), int.Parse(wherex), int.Parse(wherey)));
                            break;

                        case "2":         // Move Ball
                            Console.WriteLine("which piece ? (x)");
                            string pbx = Console.ReadLine();
                            Console.WriteLine("which piece ? (y)");
                            string pby = Console.ReadLine();
                            Console.WriteLine("where to ? (x)");
                            string nbx = Console.ReadLine();
                            Console.WriteLine("where to ? (y)");
                            string nby = Console.ReadLine();
                            g.Update(new MoveBall(int.Parse(pbx), int.Parse(pby), int.Parse(nbx), int.Parse(nby)));
                            break;

                        case "3":         // End Turn
                            g.Update(new EndTurn());
                            break;

                        case "4":         //Undo
                            g.UndoLastCommand();
                            break;

                        case "5":         //Redo
                            g.RedoLastCommand();
                            break;

                        case "6":
                            return;
                        }
                        if (g.IsWin())
                        {
                            valid = false;
                            Console.WriteLine("Le jeu est fini. Le joueur victorieux est :");
                            Console.WriteLine(g.VictoriousPlayer.ToString());
                        }
                    }



                    break;

                case "2":     // Charger une partie
                    string filename = Console.ReadLine();
                    filename = @"C:\Temp\diaballik_loadgamebuildertest.save";
                    Game g2     = GameSaveManager.Load(filename);
                    bool valid1 = true;
                    while (valid1)
                    {
                        Console.WriteLine(g2.ToString());
                        Console.WriteLine("Nombre de déplacement de pièce restant :" + (2 - g2.MovePieceCount));
                        Console.WriteLine("Nombre de déplacement de pièce restant :" + (1 - g2.MoveBallCount));
                        Console.WriteLine("Choississez votre action :");
                        Console.WriteLine("1: move piece");
                        Console.WriteLine("2: move ball");
                        Console.WriteLine("3: end turn");
                        Console.WriteLine("4: exit");
                        string rep = Console.ReadLine();
                        switch (rep)
                        {
                        case "1":
                            Console.WriteLine("which piece ? (x)");
                            string repx = Console.ReadLine();
                            Console.WriteLine("which piece ? (y)");
                            string repy = Console.ReadLine();
                            Console.WriteLine("where to ? (x)");
                            string wherex = Console.ReadLine();
                            Console.WriteLine("where to ? (y)");
                            string wherey = Console.ReadLine();
                            g2.Update(new MovePiece(int.Parse(repx), int.Parse(repy), int.Parse(wherex), int.Parse(wherey)));
                            break;

                        case "2":
                            Console.WriteLine("which piece ? (x)");
                            string pbx = Console.ReadLine();
                            Console.WriteLine("which piece ? (y)");
                            string pby = Console.ReadLine();
                            Console.WriteLine("where to ? (x)");
                            string nbx = Console.ReadLine();
                            Console.WriteLine("where to ? (y)");
                            string nby = Console.ReadLine();
                            g2.Update(new MoveBall(int.Parse(pbx), int.Parse(pby), int.Parse(nbx), int.Parse(nby)));
                            break;

                        case "3":
                            g2.Update(new EndTurn());
                            break;

                        case "4":
                            return;
                        }
                        if (g2.IsWin())
                        {
                            valid = false;
                            Console.WriteLine("Le jeu est fini. Le joueur victorieux est :");
                            Console.WriteLine(g2.VictoriousPlayer.ToString());
                        }
                    }
                    break;

                case "3":
                    break;
                }
            }

            return;
        }
Пример #31
0
        public void TestMovePointTurn()
        {
            //construire le gameBuilder
            gameBuilder = new GameBuilderUnsaved();
            //declarer un tableau de Player
            Player[] tabPlayer = new Player[2];
            tabPlayer[0] = new Player("Joueur1", "cyclops");
            tabPlayer[1] = new Player("Joueur2", "centaur");
            //Ajouter la strategie au gameBuilder
            gameBuilder.AddStrategy("demo");
            //Ajouter les joueurs au gameBuilder
            gameBuilder.AddPlayer(tabPlayer);
            //declarer et construire le game
            Game game = gameBuilder.Build();

            //Debut des tours
            game.StartTurn();
            //recuperer les points de mouvement de l'netité courante du premier player
            double pt1 = game.CurrEntity.MovePoint;

            //faire un movement a la case 2
            //Et si il commence pas en 0 ?
            //game.Move(2);
            if (game.CurrEntity.Pos == 0)
            {
                game.Move(2);
            }
            if (game.CurrEntity.Pos == 35)
            {
                game.Move(33);
            }
            if (game.CurrEntity.Pos == 5)
            {
                game.Move(3);
            }
            if (game.CurrEntity.Pos == 30)
            {
                game.Move(32);
            }
            //recuperer les points de mouvement apres le move
            double pt2 = game.CurrEntity.MovePoint;

            //les points de mouvements doivent baisser
            Assert.IsTrue(pt1 > pt2);
            //passer la main à l'autre joueur
            game.NextPlayer();
            game.StartTurn();
            //recuperer la position de l'entité courante
            int pos1 = game.CurrEntity.Pos;

            //deplacer l'entité courante
            game.CurrEntity.Move(10, game.Map);
            //recuperer la nouvelle position
            int pos2 = game.CurrEntity.Pos;

            //tester si la position a changé
            Assert.IsTrue(pos1 != pos2);
            //faire un move qui teste si on peut
            game.Move(10);
            //recuperer la nouvelle position
            int pos3 = game.CurrEntity.Pos;

            //tester si la position n'a pas changé car on a que 3 points de mouvement
            Assert.IsTrue(pos3 == pos2);
        }