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); }
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); }