introduzione
Il codice Parsons è solo un modo semplice per descrivere le variazioni di intonazione in un brano musicale, indipendentemente dal fatto che una nota sia più alta o più bassa della precedente.
Anche se fai schifo nel ricordare i brani, puoi ancora ricordare se una nota sale o scende, quindi il codice Parsons può aiutarti a identificare una musica usando un motore di ricerca.
Descrizione
Ogni variazione è rappresentata da un singolo carattere, che è uno dei seguenti:
Rse la nota è la stessa della precedente (sta per " R epeat" )Use la nota è superiore alla precedente (sta per " U p" )Dse la nota è inferiore alla precedente (sta per " D own" )
La nota iniziale è scritta come *.
Esempio
Ecco un esempio del codice Parsons (inizio di "Ode to Joy" ):
*RUURDDDDRUURDR
Puoi effettivamente visualizzarlo , in questo modo:
*-*
/ \
* *
/ \
*-* * *-*
\ / \
* * *-*
\ /
*-*
Lo chiameremo un contorno da ora in poi.
Le regole per disegnare tali consiglieri sono considerate autoesplicate dall'esempio sopra.
Sfida
Ora arriva la vera sfida.
Scrivi un programma che, dato un contorno come input, emetta il suo corrispondente codice Parsons.
Non ti viene chiesto di disegnare il contorno, ma in realtà il contrario.
Dal contorno, trova il codice Parsons originale.
Regole
- Si applicano le solite regole per il golf del codice
- Vince il programma più breve in numero di byte
- L'input è un contorno e l'output deve essere un codice Parsons valido
- I dettagli sugli spazi bianchi extra per l'input sono irrilevanti, fai tutto ciò che funziona meglio per te
- Non è consentito codificare, in un modo o nell'altro, parti dell'output e / o del programma utilizzando spazi bianchi extra a causa della regola precedente
Gli appunti
- Questo potrebbe essere utile per i test
- Il codice Parsons corrispondente per
*è* - Una stringa vuota non è un contorno valido
- Un codice Parsons inizia sempre con
*
*chi non fa nulla?
*? No. Dovrebbe stampare *suppongo. Aggiungerò questo caso d'angolo.
*. Sempre.
