public void ToLeftSideOfOpponent() { player1.CurrentPosition = c[5, 5]; player2.CurrentPosition = c[5, 6]; var wallBehind = new Wall("56h"); var rejectedWallsByWallBehind = game.GetWallsRejectedBy(wallBehind); //Assert.That(rejectedWallsByWallBehind.Length == 4); var placeWallBehindMove = new PlaceWallMove(game, player1, wallBehind, rejectedWallsByWallBehind); placeWallBehindMove.Apply(); var wallOnTheRight = new Wall("55v"); var rejectedWallsByWallOnTheRight = game.GetWallsRejectedBy(wallOnTheRight); //Assert.That(rejectedWallsByWallOnTheRight.Length == 3); var placeWallOnTheRightMove = new PlaceWallMove(game, player1, wallOnTheRight, rejectedWallsByWallOnTheRight); placeWallOnTheRightMove.Apply(); Console.WriteLine(game); var answer = new[] { c[4, 5], c[5, 4], c[4, 6] }; Assert.That(player1.GetPossiblePawnMoves().Select(move => move.To), Is.EquivalentTo(answer)); }
public void Test1() { player1.CurrentPosition = c[5, 7]; player2.CurrentPosition = c[5, 5]; var wallDescriptions = new[] { "13h", "33h", "53h", "63v", "62h" }; foreach (var wallDescription in wallDescriptions) { var wall = new Wall(wallDescription); var rejectedWalls = game.GetWallsRejectedBy(wall); var placeWallMove = new PlaceWallMove(game, player1, wall, rejectedWalls); placeWallMove.Apply(); } Console.WriteLine(game); Assert.That(player1.GetPossiblePlaceWallMoves() .Select(move => move.PlacedWall) .Contains(new Wall("82h")), Is.False); Assert.That(player1.GetPossiblePlaceWallMoves() .Select(move => move.PlacedWall) .Contains(new Wall("82v")), Is.True); }
public void WithJumpAtTheStart() { player1.CurrentPosition = c[5, 5]; player2.CurrentPosition = c[5, 6]; var wallBehind = new Wall("56h"); var rejectedWallsByWallBehind = game.GetWallsRejectedBy(wallBehind); //Assert.That(rejectedWallsByWallBehind.Length == 4); var placeWallBehindMove = new PlaceWallMove(game, player1, wallBehind, rejectedWallsByWallBehind); placeWallBehindMove.Apply(); var wallOnTheRight = new Wall("55v"); var rejectedWallsByWallOnTheRight = game.GetWallsRejectedBy(wallOnTheRight); //Assert.That(rejectedWallsByWallOnTheRight.Length == 3); var placeWallOnTheRightMove = new PlaceWallMove(game, player1, wallOnTheRight, rejectedWallsByWallOnTheRight); placeWallOnTheRightMove.Apply(); Console.WriteLine(game); Assert.That(player1.GetShortestPathLength(), Is.EqualTo(4)); Assert.That(player2.GetShortestPathLength(), Is.EqualTo(4)); }
public void PathDoesNotExist() { var wallDescriptions = new [] { "12h", "32h", "52h", "72h", "81v" }; foreach (var wallDescription in wallDescriptions) { var wall = new Wall(wallDescription); var rejectedWalls = game.GetWallsRejectedBy(wall); var placeWallMove = new PlaceWallMove(game, player1, wall, rejectedWalls); placeWallMove.Apply(); } Console.WriteLine(game); Assert.That(player1.GetShortestPathLength(), Is.EqualTo(int.MaxValue)); }
public void ToBothSidesOfOpponent() { player1.CurrentPosition = c[5, 5]; player2.CurrentPosition = c[5, 6]; var wallBehind = new Wall("56h"); var rejectedWalls = game.GetWallsRejectedBy(wallBehind); var placeWallBehindMove = new PlaceWallMove(game, player1, wallBehind, rejectedWalls); placeWallBehindMove.Apply(); Console.WriteLine(game); var answer = new[] { c[4, 5], c[5, 4], c[6, 5], c[4, 6], c[6, 6] }; Assert.That(player1.GetPossiblePawnMoves().Select(move => move.To), Is.EquivalentTo(answer)); }
public void TrickyPath() { player1.CurrentPosition = c[5, 5]; var wallDescriptions = new[] { "55h", "44v", "65v", "77h", "46h" }; foreach (var wallDescription in wallDescriptions) { var wall = new Wall(wallDescription); var rejectedWalls = game.GetWallsRejectedBy(wall); var placeWallMove = new PlaceWallMove(game, player1, wall, rejectedWalls); placeWallMove.Apply(); } Console.WriteLine(game); Assert.That(player1.GetShortestPathLength(), Is.EqualTo(9)); }