Пример #1
0
    protected void MovePieceModel(Vector3 from, Vector3 to)
    {
        if (currentlySelectedPiece == null)
        {
            return;
        }

        moveModel.MovePiece(from, to);
        TookPiece();
        board.Mark(to, currentlySelectedPiece);
        board.UnMark(from);

        TogglePromoteMenu();

        currentlySelectedPiece.SetPosition(to);
        movePieceTo = movePieceFrom = Vector3.down;
        moveTime    = Time.time;
        isPieceMove = true;

        DrawPiece.ClearHighlight();
        drawBoard.ClearHighlights();


        board.UpdateBoardThreat(null, Vector2.down);
        if (KingInCheck.IsBlackInCheck() == true || KingInCheck.IsWhiteInCheck() == true)
        {
            CheckMate();
        }
    }
Пример #2
0
 // Update is called once per frame
 //demo of moving pieces around the board.
 private void Update()
 {
     if (Time.time >= 2 && Time.time <= 3)
     {
         mm1.MovePiece(new Vector2(4, 1), new Vector2(4, 3), 0);
     }
     else if (Time.time >= 4 && Time.time <= 5)
     {
         mm1.MovePiece(new Vector2(4, 6), new Vector2(4, 4), 0);
     }
     else if (Time.time >= 6 && Time.time <= 7)
     {
         mm1.MovePiece(new Vector2(5, 1), new Vector2(5, 3), 0);
     }
     else if (Time.time >= 8 && Time.time <= 9)
     {
         mm1.MovePiece(new Vector2(4, 4), new Vector2(5, 3), 0);
     }
     else if (Time.time >= 10 && Time.time <= 11)
     {
         mm1.MovePiece(new Vector2(6, 0), new Vector2(5, 2));
     }
     else if (Time.time >= 10 && Time.time <= 11)
     {
         mm1.MovePiece(new Vector2(6, 0), new Vector2(5, 2));
     }
     else if (Time.time >= 12 && Time.time <= 13)
     {
         mm1.MovePiece(new Vector2(3, 6), new Vector2(3, 4), 0);
     }
     else if (Time.time >= 14 && Time.time <= 15)
     {
         mm1.MovePiece(new Vector2(4, 3), new Vector2(3, 4), 0);
     }
     else if (Time.time >= 16 && Time.time <= 17)
     {
         mm1.MovePiece(new Vector2(5, 0), new Vector2(3, 3), 0);
     }
     else if (Time.time >= 18 && Time.time <= 19)
     {
         mm1.MovePiece(new Vector2(4, 0), new Vector2(4, 1), 0);
     }
     else if (Time.time >= 20 && Time.time <= 21)
     {
         mm1.MovePiece(new Vector2(3, 0), new Vector2(5, 0));
         mm2.MovePiece(new Vector2(7, 0), new Vector2(4, 0), 0);
     }
 }
Пример #3
0
    // Update is called once per frame
    private void Update()
    {
        // Check to see if a position is clicked after already selecting a piece.
        if ((DrawBoard.IsClicked || DrawPiece.IsClicked) && movePieceFrom != Vector3.down)
        {
            movePieceTo = DrawBoard.IsClicked ? DrawBoard.SquarePosition : DrawPiece.PiecePosition;
            drawBoard.HighLightGrid(movePieceTo);
        }
        else if (DrawPiece.IsClicked && movePieceFrom == Vector3.down)
        {
            movePieceFrom = DrawPiece.PiecePosition;
            drawBoard.HighLightGrid(movePieceFrom);
        }

        // If the user has clicked on a space to move and a piece to move, move the piece and reset the vectors to numbers the user cannot choose.
        // In the real game we would also have to check if it is a valid move.
        if (movePieceFrom != Vector3.down && movePieceTo != Vector3.down)
        {
            mm1.MovePiece(movePieceFrom, movePieceTo);
            movePieceTo = movePieceFrom = Vector3.down;
            drawBoard.ClearHighlights();
        }
    }