/// <summary>
 /// Override the play.
 /// </summary>
 public override void Play()
 {
     this.Engine.Render.ShowWelcomeScreen();
     var boardBuilder = new BoardBuilder(this.Engine.RowCount, this.Engine.ColumnCount);
     this.Engine.Board = boardBuilder.Generate(this.Engine.MineCount);
     this.Engine.Render.ShowBoard(this.Engine.Board);
     var command = this.Engine.Render.SetCommand(this.Engine.CommandFactory);
     command.Execute();
 }
Exemple #2
0
        public void ShouldMove(Position newPosition)
        {
            var board = BoardBuilder.New().Build();

            board.ClearBoard();
            var bishop = BishopBuilder.New().WithBoard(board).Build();

            board.AddPiece(bishop);
            var moved = bishop.Move(newPosition);

            Assert.True(moved && bishop.Position.Equals(newPosition) && bishop.QuantityMove > 0);
        }
Exemple #3
0
        public void ShouldMove(Position actualPosition, Position newPosition, EColor color)
        {
            var board = BoardBuilder.New().Build();

            board.ClearBoard();
            var pawn = PawnBuilder.New().WithColor(color).WithPosition(actualPosition).WithBoard(board).Build();

            board.AddPiece(pawn);
            var moved = pawn.Move(newPosition);

            Assert.True(moved && pawn.Position.Equals(newPosition) && pawn.QuantityMove == 1);
        }
        static void Main(string[] args)
        {
            /*var host = Dns.GetHostEntry(Dns.GetHostName());
             * foreach (var ip in host.AddressList) {
             *      if (ip.AddressFamily == AddressFamily.InterNetwork) {
             *              Console.WriteLine(ip.ToString());
             *      }
             * }
             * throw new Exception("No network adapters with an IPv4 address in the system!");*/

            /*ConnectionForm m = new ConnectionForm();
             * m.Show();*/

            /*Application.EnableVisualStyles();
             * Application.SetCompatibleTextRenderingDefault(false);
             * Application.Run(new InitialForm());*/

            //singleton
            GameController.Instance.netListener = new Net.NetListener();

            //factory
            Checker.Checker c1 = CheckerFactory.CreateChecker("Pawn", Color.Green, 0, 0);

            //prototype (deep clone)
            Checker.Checker c2 = (Checker.Checker)c1.Clone();
            Console.WriteLine(c1.color == c2.color);

            //prototype (shallow clone)
            ClassicBoard classicBoard1 = new ClassicBoard(Color.DarkRed, Color.WhiteSmoke, 10);

            ClassicBoard classicBoard2 = (ClassicBoard)classicBoard1.Clone();

            Console.WriteLine(classicBoard1.subject == classicBoard2.subject);

            //builder
            BoardBuilder builder = new BoardBuilder();

            builder.addFirstColor(Color.Red);
            builder.addSecondColor(Color.White);
            GameBoard board = builder.getBoard(10, 10);


            // command
            Checker.Checker ch      = new Checker.Checker(Color.Black, 2, 2, CheckerType.Pawn);
            Command         command = new MoveDownLeftCommand(ch);

            command.Execute();
            command = new MoveDownRightCommand(ch);
            command.Execute();


            Console.ReadLine();
        }
Exemple #5
0
        public void ShouldMove(Position newPosition)
        {
            var board = BoardBuilder.New().Build();

            board.ClearBoard();
            var knight = KnightBuilder.New().WithColor(EColor.Black).WithBoard(board).Build();

            board.AddPiece(knight);
            var moved = knight.Move(newPosition);

            Assert.True(moved && knight.Position.Equals(newPosition) && knight.QuantityMove > 0);
        }
Exemple #6
0
        public void ShouldAddPiece()
        {
            var board = BoardBuilder.New().Build();

            board.ClearBoard();
            var pawn = PawnBuilder.New().Build();

            board.AddPiece(pawn);
            var existisPieceOnBoard = board.Pieces.Any(p => p.Equals(pawn));

            Assert.True(existisPieceOnBoard);
        }
Exemple #7
0
        public void ShouldNotMove(Position newPosition)
        {
            var board = BoardBuilder.New().Build();

            board.ClearBoard();
            var bishop         = BishopBuilder.New().WithBoard(board).Build();
            var actualPosition = bishop.Position;

            board.AddPiece(bishop);
            var notMoved = !bishop.Move(newPosition);

            Assert.True(notMoved && bishop.Position.Equals(actualPosition) && bishop.QuantityMove == 0);
        }
Exemple #8
0
        public void ShouldNotMoveWithPiecesOnBoard(Position positionPieceToAddBoard, EColor colorPieceToAddBoard, Position actualPosition, EColor color, Position newPosition)
        {
            var board = BoardBuilder.New().Build();

            board.ClearBoard();
            var pieceToAddBoard = PawnBuilder.New().WithPosition(positionPieceToAddBoard).WithColor(colorPieceToAddBoard).WithBoard(board).Build();

            board.AddPiece(pieceToAddBoard);
            var pawn     = PawnBuilder.New().WithColor(color).WithPosition(actualPosition).WithBoard(board).Build();
            var notMoved = !pawn.Move(newPosition);

            Assert.True(notMoved && pawn.Position.Equals(actualPosition) && pawn.QuantityMove == 0);
        }
Exemple #9
0
        public void ShouldNotMove(Position newPosition)
        {
            var actualPosition = new Position(EColumn.D, ELine.Four);
            var board          = BoardBuilder.New().Build();

            board.ClearBoard();
            var rook = RookBuilder.New().WithColor(EColor.White).WithPosition(actualPosition).WithBoard(board).Build();

            board.AddPiece(rook);
            var notMoved = !rook.Move(newPosition);

            Assert.True(notMoved && rook.Position.Equals(actualPosition) && rook.QuantityMove == 0);
        }
Exemple #10
0
        public void ShouldMoveWithPiecesOnBoard(Position positionPieceToAddBoard, EColor colorPieceToAddBoard, Position newPosition)
        {
            var board = BoardBuilder.New().Build();

            board.ClearBoard();
            var pieceToAddBoard = PawnBuilder.New().WithPosition(positionPieceToAddBoard).WithColor(colorPieceToAddBoard).WithBoard(board).Build();

            board.AddPiece(pieceToAddBoard);
            var rook  = RookBuilder.New().WithColor(EColor.White).WithPosition(new Position(EColumn.D, ELine.Four)).WithBoard(board).Build();
            var moved = rook.Move(newPosition);

            Assert.True(moved && rook.Position.Equals(newPosition) && rook.QuantityMove > 0);
        }
Exemple #11
0
        public void ShouldMoveWithPiecesOnBoard(Position positionPieceToAddBoard, EColor colorPieceToAddBoard, Position newPosition)
        {
            var board = BoardBuilder.New().Build();

            board.ClearBoard();
            var pieceToAddBoard = KnightBuilder.New().WithPosition(positionPieceToAddBoard).WithColor(colorPieceToAddBoard).WithBoard(board).Build();

            board.AddPiece(pieceToAddBoard);
            var knight = KnightBuilder.New().WithColor(EColor.Black).WithBoard(board).Build();
            var moved  = knight.Move(newPosition);

            Assert.True(moved && knight.Position.Equals(newPosition) && knight.QuantityMove > 0);
        }
Exemple #12
0
        public void ShouldNotMove(Position newPosition)
        {
            var board = BoardBuilder.New().Build();

            board.ClearBoard();
            var king           = KingBuilder.New().WithBoard(board).Build();
            var actualPosition = king.Position;

            board.AddPiece(king);
            var notMoved = !king.Move(newPosition);

            Assert.True(notMoved && king.Position.Equals(actualPosition) && king.QuantityMove == 0);
        }
Exemple #13
0
        public void ShouldMoveWithPiecesOnBoard(Position positionPieceToAddBoard, EColor colorPieceToAddBoard, Position newPosition)
        {
            var board = BoardBuilder.New().Build();

            board.ClearBoard();
            var pieceToAddBoard = QueenBuilder.New().WithPosition(positionPieceToAddBoard).WithColor(colorPieceToAddBoard).WithBoard(board).Build();

            board.AddPiece(pieceToAddBoard);
            var queen = QueenBuilder.New().WithBoard(board).Build();
            var moved = queen.Move(newPosition);

            Assert.True(moved && queen.Position.Equals(newPosition) && queen.QuantityMove > 0);
        }
Exemple #14
0
        public void ShouldNotMove(Position newPosition)
        {
            var board = BoardBuilder.New().Build();

            board.ClearBoard();
            var queen          = QueenBuilder.New().WithBoard(board).Build();
            var actualPosition = queen.Position;

            board.AddPiece(queen);
            var notMoved = !queen.Move(newPosition);

            Assert.True(notMoved && queen.Position.Equals(actualPosition) && queen.QuantityMove == 0);
        }
Exemple #15
0
        protected TileMover SetupBasicField(BoardSize size)
        {
            GameObject gameSize = new GameObject("GameSize");
            {
                GameOption settings = gameSize.AddComponent <GameOption>();
                settings.Option = new SizeSelector.GameSize()
                {
                    X = size.X, Y = size.Y, Name = "test"
                };
            }

            GameObject root = new GameObject("root");
            {
                root.AddComponent <Canvas>();
            }

            GameObject tile = new GameObject("Tile", new[] { typeof(Tile), typeof(Image) });
            {
                GameObject text = new GameObject("text", new[] { typeof(Text) });
                text.transform.SetParent(tile.transform);

                Tile  t   = tile.GetComponent <Tile>();
                Image img = tile.GetComponent <Image>();
                Text  txt = text.GetComponent <Text>();

                t.setSerials(img, txt);
            }

            GameObject builder = new GameObject("board", new[] { typeof(RectTransform) });

            builder.transform.SetParent(root.transform);
            BoardBuilder bld = builder.AddComponent <BoardBuilder>();

            bld.setPrefab(tile);

            TileMover mover = builder.AddComponent <TileMover>();

            mover.AddStyle(new TileStyle {
                Color = Color.yellow, score = 2, SecondaryTextColour = false
            });
            mover.AddStyle(new TileStyle {
                Color = Color.red, score = 4, SecondaryTextColour = false
            });
            mover.Score = 1;

            mover.AddUnknownStyle(new TileStyle {
                Color = Color.black, score = 4, SecondaryTextColour = true
            });

            return(mover);
        }
Exemple #16
0
        public void ShouldKillPiece()
        {
            var board = BoardBuilder.New().Build();

            board.ClearBoard();
            var pawn = PawnBuilder.New().WithBoard(board).Build();

            board.AddPiece(pawn);
            board.KillPiece(pawn);
            var removedPiecefromBoard = !board.Pieces.Any(p => p.Equals(pawn));
            var pieceIsDead           = board.DeadPieces.Any(p => p.Equals(pawn));

            Assert.True(removedPiecefromBoard && pieceIsDead);
        }
Exemple #17
0
        public void BuildBoard_ShouldBuildBoardCorrectly()
        {
            var board = BoardBuilder.buildBoard(2);
            var map   = board.Map;

            Assert.NotNull(map['A'][0]);
            Assert.NotNull(map['A'][1]);
            Assert.NotNull(map['B'][0]);
            Assert.NotNull(map['B'][1]);
            Assert.AreEqual(map['A'][0].Key, "A1");
            Assert.AreEqual(map['A'][1].Key, "A2");
            Assert.AreEqual(map['B'][0].Key, "B1");
            Assert.AreEqual(map['B'][1].Key, "B2");
        }
Exemple #18
0
        public void ShouldUndoMove()
        {
            var board = BoardBuilder.New().Build();

            board.ClearBoard();
            var firstPosition = new Position(EColumn.B, ELine.Two);
            var pawn          = PawnBuilder.New().WithPosition(firstPosition).WithBoard(board).Build();

            board.AddPiece(pawn);
            var moved = pawn.Move(new Position(EColumn.B, ELine.Four));

            pawn.UndoMove();
            Assert.True(moved && pawn.Position.Equals(firstPosition) && pawn.QuantityMove == 0);
        }
Exemple #19
0
        public void ShouldNotMoveWithPiecesOnBoard(Position positionPieceToAddBoard, EColor colorPieceToAddBoard, Position newPosition)
        {
            var board = BoardBuilder.New().Build();

            board.ClearBoard();
            var pieceToAddBoard = KingBuilder.New().WithPosition(positionPieceToAddBoard).WithColor(colorPieceToAddBoard).WithBoard(board).Build();

            board.AddPiece(pieceToAddBoard);
            var king           = KingBuilder.New().WithBoard(board).Build();
            var actualPosition = king.Position;
            var notMoved       = !king.Move(newPosition);

            Assert.True(notMoved && king.Position.Equals(actualPosition) && king.QuantityMove == 0);
        }
Exemple #20
0
    // called from BoardCellController when creating the board
    public void Initialize(BoardBuilder parent, int _iPos, int _jPos)
    {
        boardBuilder = parent;
        iPos         = _iPos;
        jPos         = _jPos;
        state        = BoardCellState.Empty;

        cellAnim = gameObject.GetComponentInChildren <CellAnimator>();
        animator = cellAnim.GetComponent <Animator>();

        cellHighlight = gameObject.GetComponentInChildren <CellHighlight>();

        cellBackground = gameObject.GetComponentInChildren <CellBackground>();
        cellBackground.Init(iPos, jPos);
    }
        public BoardViewModel()
        {
            this.Players          = this.InitializePlayers();
            this.CurrentPlayer    = this.Players[0];
            this.scoreCalculator  = new ScoreCalculator();
            this.gameOverDetector = new GameOverDetector();
            this.dialogService    = new DialogService();

            BoardBuilder boardBuilder = new BoardBuilder();

            this.board          = boardBuilder.CreateBoard(this.Players);
            this.movementFinder = new MovementFinder(this.board);

            this.FieldSize = 50;
        }
        private static GameBoard CreateStartingBoard(IServiceProvider serviceProvider)
        {
            BoardBuilder boardBuilder = serviceProvider
                                        .GetService <IGameOfLifeFactory>()
                                        !.BoardBuilder;

            GameBoard board = boardBuilder.SetSizeX(3)
                              .SetSizeY(3)
                              .SetAlive(0, 1)
                              .SetAlive(1, 1)
                              .SetAlive(2, 1)
                              .GetBoard();

            return(board);
        }
Exemple #23
0
        public void TestBishop()
        {
            IBoardBuilder boardBuilder = new BoardBuilder();

            IBoard board = boardBuilder.Columns(8).Rows(8).AddPiece(new Piece(PieceType.BISHOP, new BoardPosition(1, 1), this.whitePlayer)).Build();

            IPieceMovementStrategies pms = new ClassicPieceMovementStrategies();

            Assert.False(pms.PieceMovementStrategy(board.GetPieceAtPosition(new BoardPosition(1, 1))).GetPossibleMoves(board).Contains(new BoardPosition(1, 1)));
            Assert.True(pms.PieceMovementStrategy(board.GetPieceAtPosition(new BoardPosition(1, 1))).GetPossibleMoves(board).Contains(new BoardPosition(7, 7)));
            Assert.True(pms.PieceMovementStrategy(board.GetPieceAtPosition(new BoardPosition(1, 1))).GetPossibleMoves(board).Contains(new BoardPosition(0, 0)));
            Assert.False(pms.PieceMovementStrategy(board.GetPieceAtPosition(new BoardPosition(1, 1))).GetPossibleMoves(board).Contains(new BoardPosition(7, 0)));
            Assert.True(pms.PieceMovementStrategy(board.GetPieceAtPosition(new BoardPosition(1, 1))).GetPossibleMoves(board).Contains(new BoardPosition(5, 5)));
            Assert.False(pms.PieceMovementStrategy(board.GetPieceAtPosition(new BoardPosition(1, 1))).GetPossibleMoves(board).Contains(new BoardPosition(1, 4)));
        }
Exemple #24
0
        public void ShouldNotAddSamePiece(Position positionPieceToAddOnBoard, EColor colorPieceToAddOnBoard)
        {
            var board = BoardBuilder.New().Build();

            board.ClearBoard();
            var pieceToAddOnBoard = PawnBuilder.New().WithPosition(positionPieceToAddOnBoard).WithColor(colorPieceToAddOnBoard).Build();

            board.AddPiece(pieceToAddOnBoard);
            var newPiece = PawnBuilder.New().WithPosition(positionPieceToAddOnBoard).WithColor(colorPieceToAddOnBoard).Build();;

            board.AddPiece(newPiece);
            var notExistisPieceOnBoard = !board.Pieces.Any(p => p.Equals(newPiece));

            Assert.True(notExistisPieceOnBoard);
        }
        public void StringToTypeGrid()
        {
            var stringGrid = "1202 2102 1202 0021";
            var grid       = BoardBuilder.StringToTypeGrid(stringGrid);

            Assert.AreEqual(1, grid[0, 0]);
            Assert.AreEqual(2, grid[0, 1]);
            Assert.AreEqual(0, grid[0, 2]);
            Assert.AreEqual(2, grid[0, 3]);

            Assert.AreEqual(0, grid[3, 0]);
            Assert.AreEqual(0, grid[3, 1]);
            Assert.AreEqual(2, grid[3, 2]);
            Assert.AreEqual(1, grid[3, 3]);
        }
Exemple #26
0
        public void Play()
        {
            isGameEnded = false;
            BoardBuilder builder = new BoardBuilder();

            board = builder.BuildBoard();

            this.timer      = new Timer(1000);
            timer.Elapsed  += OnTimedEvent;
            timer.Elapsed  += DecreaseTimerInterval;
            timer.AutoReset = true;
            timer.Enabled   = true;
            timer.Start();
            isRunning = true;
            StartInputPeriod();
        }
Exemple #27
0
        public void TestQueenCaptureAndMovement()
        {
            IBoardBuilder boardBuilder = new BoardBuilder();

            IBoard board = boardBuilder.Columns(8).Rows(8)
                           .AddPiece(new Piece(PieceType.QUEEN, new BoardPosition(0, 0), this.whitePlayer))
                           .AddPiece(new Piece(PieceType.ROOK, new BoardPosition(2, 0), this.blackPlayer))
                           .Build();

            IPieceMovementStrategies pms = new ClassicPieceMovementStrategies();

            //Test that the queen can eat the rook
            Assert.True(pms.PieceMovementStrategy(board.GetPieceAtPosition(new BoardPosition(0, 0))).GetPossibleMoves(board).Contains(new BoardPosition(2, 0)));
            //But cant go past it
            Assert.False(pms.PieceMovementStrategy(board.GetPieceAtPosition(new BoardPosition(0, 0))).GetPossibleMoves(board).Contains(new BoardPosition(3, 0)));
        }
Exemple #28
0
        public void TestKnight()
        {
            IBoardBuilder boardBuilder = new BoardBuilder();

            IBoard board = boardBuilder
                           .Columns(8)
                           .Rows(8)
                           .AddPiece(new Piece(PieceType.KNIGHT, new BoardPosition(3, 3), this.whitePlayer))
                           .Build();

            IPieceMovementStrategies pms = new ClassicPieceMovementStrategies();

            Assert.False(pms.PieceMovementStrategy(board.GetPieceAtPosition(new BoardPosition(3, 3))).GetPossibleMoves(board).Contains(new BoardPosition(3, 5)));
            Assert.True(pms.PieceMovementStrategy(board.GetPieceAtPosition(new BoardPosition(3, 3))).GetPossibleMoves(board).Contains(new BoardPosition(1, 4)));
            Assert.False(pms.PieceMovementStrategy(board.GetPieceAtPosition(new BoardPosition(3, 3))).GetPossibleMoves(board).Contains(new BoardPosition(1, 5)));
        }
Exemple #29
0
        public void ShouldExchangePieceForAnother()
        {
            var board    = BoardBuilder.New().Build();
            var pawn     = PawnBuilder.New().WithColor(EColor.White).WithBoard(board).Build();
            var position = pawn.Position;

            board.AddPiece(pawn);
            var knight = KnightBuilder.New().WithColor(EColor.White).WithBoard(board).Build();

            board.AddPiece(knight);
            board.KillPiece(knight);
            board.ExchangePieceForAnother(pawn, knight);
            var newKnight = board.GetPieceFromPosition(position);

            Assert.True(newKnight != null && newKnight.Position.Equals(position) && !board.Pieces.Any(p => p == knight) && !board.DeadPieces.Any(p => p == knight) && board.DeadPieces.Any(p => p == pawn));
        }
Exemple #30
0
        public void Builds_initial_board_correctly()
        {
            var board = BoardBuilder.Build();

            Assert.That(board.Dump(), Is.EqualTo(new[]
            {
                "♜♞♝♛♚♝♞♜",
                "♟♟♟♟♟♟♟♟",
                "        ",
                "        ",
                "        ",
                "        ",
                "♙♙♙♙♙♙♙♙",
                "♖♘♗♕♔♗♘♖"
            }));
        }
Exemple #31
0
        public void ItBuilds_GameBoard()
        {
            // Prepare:
            var score         = new RealScore();
            var boardDirector = new BoardDirector(new EasyStrategy(), 0, score, new Position(0, 0), new List <Bullet>());
            var builder       = new BoardBuilder();

            // Act:

            boardDirector.Construct(builder);
            var board = builder.Build();

            // Assert:

            Assert.NotNull(board);
            Assert.IsType <GameBoard>(board);
        }