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 }
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"); } }
private IRunningGame StartTestGame(params string[] names) { foreach (var name in names) { gameBuilder.AddPlayer(name); } return(gameBuilder.Start()); }
/// <summary> /// Adds a player to the game builder if the control is visible, that is, if /// there is enough players to make use of this control. /// </summary> /// <param name="builder"></param> /// <param name="player"></param> /// <param name="name"></param> /// <param name="civilization"></param> private void AddPlayerToGameBuilder(GameBuilder builder, StackPanel player, TextBox name, ComboBox civilization) { if (player.Visibility == Visibility.Visible) { builder.AddPlayer(name.Text, civilization.Text); } }
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); }
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 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); }
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); }
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); }
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 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); }
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); }