Wprowadzenie
Kod Parsons jest tylko prosty sposób na opisanie zmian wysokości w utworze muzycznym, czy notatka jest wyższa lub niższa od poprzedniej.
Nawet jeśli lubisz zapamiętywać melodie, wciąż możesz prawie pamiętać, czy nuta idzie w górę, czy w dół, dlatego kod Parsons może pomóc Ci zidentyfikować muzykę za pomocą wyszukiwarki.
Opis
Każda odmiana jest reprezentowana przez pojedynczy znak, który jest jednym z następujących:
Rjeśli nuta jest taka sama jak poprzednia (oznacza „ R epeat” )Ujeśli nuta jest wyższa niż poprzednia (oznacza „ U p” )Djeśli nuta jest niższa niż poprzednia (oznacza „ D własne” )
Pierwsza notatka jest zapisana jako *.
Przykład
Oto przykład kodu Parsons (początek „Oda do radości” ):
*RUURDDDDRUURDR
Możesz to sobie wyobrazić tak:
*-*
/ \
* *
/ \
*-* * *-*
\ / \
* * *-*
\ /
*-*
Odtąd nazwiemy to konturem .
Zasady rysowania takich konturów są uważane za wyjaśnione na powyższym przykładzie.
Wyzwanie
Teraz nadchodzi prawdziwe wyzwanie.
Napisz program, który na podstawie konturu jako wejścia wyprowadza odpowiadający mu kod Parsons.
Nie jesteś proszony o narysowanie konturu, ale wręcz przeciwnie.
Z konturu znajdź oryginalny kod Parsonsa.
Zasady
- Obowiązują zwykłe zasady gry w golfa kodowego
- Najkrótszy program pod względem liczby bajtów wygrywa
- Dane wejściowe to kontur, a dane wyjściowe powinny być poprawnym kodem Parsonsa
- Szczegóły dotyczące dodatkowych białych znaków dla danych wejściowych są nieistotne, rób wszystko, co dla ciebie najlepsze
- Ze względu na poprzednią regułę nie można zakodować na stałe, w taki czy inny sposób, części danych wyjściowych i / lub programu przy użyciu dodatkowych białych znaków
Notatki
- Może to być przydatne do testowania
- Odpowiedni kod Parsons dla
*to* - Pusty ciąg nie jest prawidłowym konturem
- Kod Parsons zawsze zaczyna się od
*
*tego, że nic nie robi?
*? Nie. Powinien wydrukować, jak *sądzę. Dodam tę skrzynkę narożną.
*. Zawsze.
