Giới thiệu
Các đang Parsons chỉ là một cách đơn giản để mô tả sự thay đổi sân trong một tác phẩm âm nhạc, cho dù một lưu ý là cao hơn hoặc thấp hơn so với trước đó.
Ngay cả khi bạn không nhớ các giai điệu, bạn vẫn có thể nhớ khá nhiều nếu một nốt nhạc tăng hoặc giảm, do đó mã Parsons có thể giúp bạn xác định nhạc bằng công cụ tìm kiếm.
Sự miêu tả
Mỗi biến thể được đại diện bởi một ký tự duy nhất, đó là một trong những điều sau đây:
R
nếu ghi chú giống với ghi chú trước (viết tắt của " R epeat" )U
nếu ghi chú cao hơn ghi chú trước (viết tắt của " U p" )D
nếu ghi chú thấp hơn ghi chú trước (viết tắt của " D own" )
Các ghi chú ban đầu được viết là *
.
Thí dụ
Dưới đây là một ví dụ về mã Parsons (bắt đầu của "Ode to Joy" ):
*RUURDDDDRUURDR
Bạn thực sự có thể hình dung nó, như thế này:
*-*
/ \
* *
/ \
*-* * *-*
\ / \
* * *-*
\ /
*-*
Chúng tôi sẽ gọi đó là một đường viền từ bây giờ.
Các quy tắc để vẽ các đếm như vậy được coi là tự giải thích bằng ví dụ trên.
Thử thách
Bây giờ đến thử thách thực sự.
Viết chương trình, đưa ra một đường viền làm đầu vào, xuất mã Parsons tương ứng của nó.
Bạn không được yêu cầu vẽ đường viền, nhưng thực tế thì ngược lại.
Từ đường viền, tìm mã Parsons gốc.
Quy tắc
- Các quy tắc thông thường để chơi golf mã được áp dụng
- Chương trình ngắn nhất về số byte thắng
- Đầu vào là một đường viền và đầu ra phải là mã Parsons hợp lệ
- Chi tiết về khoảng trắng thêm cho đầu vào là không liên quan, hãy làm bất cứ điều gì tốt nhất cho bạn
- Bạn không được phép mã hóa cứng, bằng cách này hay cách khác, các phần của đầu ra và / hoặc chương trình sử dụng khoảng trắng thừa do quy tắc trước đó
Ghi chú
- Điều này có thể hữu ích để thử nghiệm
- Mã Parsons tương ứng cho
*
là*
- Một chuỗi rỗng không phải là một đường viền hợp lệ
- Mã Parsons luôn bắt đầu bằng
*
*
mà không làm gì?
*
? Không. *
Tôi nên in nó . Tôi sẽ thêm trường hợp góc này.
*
. Luôn luôn.