Kokeile näitä:
play("<cccedddfeeddc---")play(">>>" + "cccedddfeeddc---")play("ccceddd>feedd<<<c---")
play
on määritelty niin, että >
- ja <
-merkeillä voi vaihtaa oktaavia;
merkkiä seuraavat äänet soitetaan korkeammalta (>
) tai matalammalta (<
).
Useampi oktaavinvaihdosmerkki tuottaa dramaattisemman muutoksen: esimerkiksi
keskimmäinen äskeisistä kolmesta käskystä pimputtaa Ukko Nooaa kolme
oktaavia korkeammalta.
Käytä Scala-merkkijonojen operaattoreita +
ja *
, ja tee niillä pastissi
Tappajahai-elokuvan "tunnussävelestä".
Tarkemmin sanoen muodosta mainittuja operaattoreita käyttäen lauseke, jonka
arvo on merkkijono, jossa on
alussa kolme <
-väkästä, jotka madaltavat
kaikkia tulevia ääniä kolmella oktaavilla
(nämä kolme alussa ovat merkkijonon ainoat
<
-merkit),
sitten peräkkäin nuottiparia "ef" toistettuna
kuusitoista kertaa, ja
lopuksi peräkkäin paria "EF" kahdeksan kertaa.
Kokeile REPLissä yksinkertaisesti syöttämällä muotoilemasi lauseke. Kokeile
myös antaa tuo lauseke parametriksi play
-käskylle.
Jos tulee ongelmia, niin ensimmäinen asia, joka kannattaa tarkistaa
huolella, on lainausmerkit. Kukin merkkijononpätkä lainausmerkkeihin!
Ongelmatilanteissa kannattaa paitsi soittaa myös tulostaa muodostamasi
lausekkeen arvo, niin voit tutkia ongelmaa tarkemmin. Muista myös
harkkaryhmät/Piazza/Telegram.
Korjaa pisteet kirjoittamalla yllä pyydetty lauseke operaattoreineen myös
tähän alle. Siis se operaattorit sisältävä lauseke, ei soittokäskyä eikä
tuon lausekkeen arvoksi muodostuvaa yhdistelmämerkkijonoa.