Ejemplo n.º 1
0
        private bool ManipulatePiece(PieceOperations op)
        {
            bool success = false;

            switch (op)
            {
            case PieceOperations.OP_PUT_PIECE_BLACK:
                if (rule.PutPiece(PieceKind.PIECE_BLACK))
                {
                    RemovePiece();
                    DisplayCursor(null);        // update cursor position (it might be changed not via mouse)
                    SetPiece2D(Colors.Black);
                    SetPiece3D(true);
                    success = true;
                }
                break;

            case PieceOperations.OP_PUT_PIECE_WHITE:
                if (rule.PutPiece(PieceKind.PIECE_WHITE))
                {
                    RemovePiece();
                    DisplayCursor(null);        // update cursor position (it might be changed not via mouse)
                    SetPiece2D(Colors.White);
                    SetPiece3D(false);
                    success = true;
                }
                break;

            case PieceOperations.OP_REMOVE_PIECE:
                if (rule.PutPiece(PieceKind.PIECE_EMPTY))
                {
                    RemovePiece();
                    success = true;
                }
                break;

            case PieceOperations.OP_FLIP_PIECE:
                if (rule.FlipPiece())
                {
                    RemovePiece();
                    DisplayCursor(null);        // update cursor position (it might be changed not via mouse)
                    if (rule.GetPiece() == PieceKind.PIECE_WHITE)
                    {
                        SetPiece2D(Colors.White);
                        SetPiece3D(false);
                    }
                    else
                    {
                        SetPiece2D(Colors.Black);
                        SetPiece3D(true);
                    }
                    success = true;
                }
                break;

            case PieceOperations.OP_GET_PIECE:
                if (rule.RetrievePiece())
                {
                    RemovePiece();
                    success = true;
                }
                break;

            case PieceOperations.OP_PUT_TERRITORY_BLACK:
                if (rule.PutTerritory(PieceKind.PIECE_BLACK))
                {
                    RemoveTerritory();
                    DisplayCursor(null);        // update cursor position (it might be changed not via mouse)
                    SetTerritory2D(new Color()
                    {
                        R = 0x00, G = 0x00, B = 0x00, A = 0x88
                    });
                    SetTerritory3D(true);
                    success = true;
                }
                break;

            case PieceOperations.OP_PUT_TERRITORY_WHITE:
                if (rule.PutTerritory(PieceKind.PIECE_WHITE))
                {
                    RemoveTerritory();
                    DisplayCursor(null);        // update cursor position (it might be changed not via mouse)
                    SetTerritory2D(new Color()
                    {
                        R = 0xFF, G = 0xFF, B = 0xFF, A = 0x88
                    });
                    SetTerritory3D(false);
                    success = true;
                }
                break;

            case PieceOperations.OP_REMOVE_TERRITORY:
                if (rule.PutTerritory(PieceKind.PIECE_EMPTY))
                {
                    RemoveTerritory();
                    success = true;
                }
                break;

            default:
                break;
            }

            // ------------------------------
            // Show scores
            // ------------------------------
            UserInterface.UpdateDispScore();

            return(success);
        }
Ejemplo n.º 2
0
 public void UpdateDispScore()
 {
     label_status.Content             = "[Scores] " + rule.GetStatus();
     label_captured_black_num.Content = rule.RetrievePiece(PieceKind.PIECE_BLACK, 0);
     label_captured_white_num.Content = rule.RetrievePiece(PieceKind.PIECE_WHITE, 0);
 }