Пример #1
0
        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;
            }
        }
Пример #2
0
        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));
        }
Пример #3
0
        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));
        }
Пример #4
0
        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;
            }
        }
Пример #5
0
        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));
        }
Пример #6
0
        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));
        }