public static void Play([Required] string gameFile, [Required, FileExists] string movesFile) { Log.Logger = new LoggerConfiguration() .WriteTo.LiterateConsole() .MinimumLevel.Debug() .CreateLogger(); ImmutableBubbleBurstGrid grid; using (var stream = File.OpenRead($"Games//{gameFile}")) { grid = BubbleGridBuilder.Create(new StreamReader(stream)); } var state = new GameMove(grid); var movesJson = File.ReadAllText(movesFile); var moves = JsonConvert.DeserializeObject<List<Point>>(movesJson); state.GridState.Display(); var lastScore = 0; foreach (var move in moves) { Console.WriteLine(); Console.WriteLine($"({move.X}, {move.Y})"); state = state.BurstBubble(move); Console.WriteLine($"{state.Score - lastScore} points scored this time ({state.Score} total)"); state.GridState.Display(); Thread.Sleep(1000); lastScore = state.Score; } }
public void CreateFromGrid_TakeMove_ShouldPopCorrectly() { var expected = BubbleGridBuilder.Create(new[] { new[] { Bubble.Blue, Bubble.None, Bubble.None, Bubble.Blue }, new[] { Bubble.Red, Bubble.Green, Bubble.Cyan, Bubble.Green }, new[] { Bubble.Red, Bubble.Green, Bubble.Red, Bubble.Cyan }, new[] { Bubble.Red, Bubble.Cyan, Bubble.Cyan, Bubble.Cyan, } }); var move = new GameMove(_grid); _grid.Display(); Console.WriteLine("Taking move (2,2).."); var next = move.BurstBubble(new Point(2, 2)); next.GridState.Display(); Assert.IsTrue(expected.Equals(next.GridState)); }
public void CreateFromGrid_TakeMove_ShouldPopCorrectly() { var expected = BubbleGridBuilder.Create(new[] { new[] {Bubble.Blue,Bubble.None , Bubble.None, Bubble.Blue}, new[] {Bubble.Red, Bubble.Green, Bubble.Cyan, Bubble.Green}, new[] {Bubble.Red, Bubble.Green, Bubble.Red, Bubble.Cyan}, new[] {Bubble.Red, Bubble.Cyan, Bubble.Cyan, Bubble.Cyan, } }); var move = new GameMove(_grid); _grid.Display(); Console.WriteLine("Taking move (2,2).."); var next = move.BurstBubble(new Point(2, 2)); next.GridState.Display(); Assert.IsTrue(expected.Equals(next.GridState)); }
public static void Play([Required] string gameFile, [Required, FileExists] string movesFile) { Log.Logger = new LoggerConfiguration() .WriteTo.LiterateConsole() .MinimumLevel.Debug() .CreateLogger(); ImmutableBubbleBurstGrid grid; using (var stream = File.OpenRead($"Games//{gameFile}")) { grid = BubbleGridBuilder.Create(new StreamReader(stream)); } var state = new GameMove(grid); var movesJson = File.ReadAllText(movesFile); var moves = JsonConvert.DeserializeObject <List <Point> >(movesJson); state.GridState.Display(); var lastScore = 0; foreach (var move in moves) { Console.WriteLine(); Console.WriteLine($"({move.X}, {move.Y})"); state = state.BurstBubble(move); Console.WriteLine($"{state.Score - lastScore} points scored this time ({state.Score} total)"); state.GridState.Display(); Thread.Sleep(1000); lastScore = state.Score; } }
public void CreateFromGrid_TakeTwoMoves_ShouldInheritState() { var expected = BubbleGridBuilder.Create(new[] { new[] {Bubble.Blue, Bubble.None, Bubble.None, Bubble.None, }, new[] {Bubble.Red, Bubble.Green, Bubble.Cyan,Bubble.None }, new[] {Bubble.Red, Bubble.Green, Bubble.Red, Bubble.Blue }, new[] {Bubble.Red, Bubble.Yellow, Bubble.Yellow, Bubble.Green } }); var secondExpected = BubbleGridBuilder.Create(new[] { new[] {Bubble.Blue, Bubble.None, Bubble.None, Bubble.None,}, new[] {Bubble.Red, Bubble.None, Bubble.None, Bubble.None}, new[] {Bubble.Red, Bubble.Green, Bubble.Cyan, Bubble.Blue}, new[] {Bubble.Red, Bubble.Green, Bubble.Red, Bubble.Green} }); var move = new GameMove(_grid); _grid.Display(); Console.WriteLine("Taking move (3,3).."); var threeThree = move.BurstBubble(new Point(3,3)); threeThree.GridState.Display(); Assert.IsTrue(expected.Equals(threeThree.GridState)); Console.WriteLine("Taking move (2,3)"); var twoThree = threeThree.BurstBubble(new Point(2, 3)); twoThree.GridState.Display(); Assert.IsTrue(secondExpected.Equals(twoThree.GridState)); }
public void CreateFromGrid_TakeTwoMoves_ShouldInheritState() { var expected = BubbleGridBuilder.Create(new[] { new[] { Bubble.Blue, Bubble.None, Bubble.None, Bubble.None, }, new[] { Bubble.Red, Bubble.Green, Bubble.Cyan, Bubble.None }, new[] { Bubble.Red, Bubble.Green, Bubble.Red, Bubble.Blue }, new[] { Bubble.Red, Bubble.Yellow, Bubble.Yellow, Bubble.Green } }); var secondExpected = BubbleGridBuilder.Create(new[] { new[] { Bubble.Blue, Bubble.None, Bubble.None, Bubble.None, }, new[] { Bubble.Red, Bubble.None, Bubble.None, Bubble.None }, new[] { Bubble.Red, Bubble.Green, Bubble.Cyan, Bubble.Blue }, new[] { Bubble.Red, Bubble.Green, Bubble.Red, Bubble.Green } }); var move = new GameMove(_grid); _grid.Display(); Console.WriteLine("Taking move (3,3).."); var threeThree = move.BurstBubble(new Point(3, 3)); threeThree.GridState.Display(); Assert.IsTrue(expected.Equals(threeThree.GridState)); Console.WriteLine("Taking move (2,3)"); var twoThree = threeThree.BurstBubble(new Point(2, 3)); twoThree.GridState.Display(); Assert.IsTrue(secondExpected.Equals(twoThree.GridState)); }