Majava rakastaa hauskoja kengännauhojen pujotuksia. Hän haluaa robotin, joka voisi pujottaa hänelle kengännauhat. Hän pohtii itsekseen: "Kuinka kerron robotille miten haluan kengännauhani pujotettavan? Tarvitsen varmaan jonkinlaisen ohjelmointikielen. Millainen sellainen ohjelmointikieli olisi?". Tarkastellaan kuvassa esitettyä perinteistä kengännauhojen pujotustapaa.
Oletetaan, että nauha, jonka pujotus alkaa oikealta puolelta, on aina oranssi, ja että nauha, jonka pujotus alkaa vasemmalta puolelta, on aina valkoinen. Majava ehdotti seuraava ohjelmaa nauhojen pujottamiseen:
orange: up
white: up
{
orange: + change up
white: + change up
}
Selitykset:
{…} |
kaikki sulkujen välissä oleva toistetaan niin monta kertaa kuin on mahdollista |
3{…} |
kuten edellä, mutta toistetaan täsmälleen 3 kertaa, muille luvuille vastaavasti |
orange: |
seuraavia käskyjä sovelletaan vain oranssiin nauhaan |
white: |
seuraavia käskyjä sovelletaan vain valkoiseen nauhaan |
up |
nauha viedään alhaalta ylöspäin reiän läpi oranssin tai valkoisen nuolen osoittamassa paikassa kuten on näytetty ylläolevassa kuvassa |
down |
kuten edellä, mutta nauha viedään ylhäältä alaspäin reiän läpi |
+ |
siirtää oranssia tai valkoista nuolta yhden paikan eteenpäin (seuraavan reiän kohdalle) |
- |
siirtää nuolta yhden reiän verran taaksepäin |
change |
vaihtaa valkoisen tai oranssin nuolen paikkaa vasemmalta oikealle tai oikealta vasemmalle (riippuen nuolen nykyisestä sijainnista) |
Miten kenkä nauhoitetaan seuraavan ohjelman mukaisesti?
orange: up
white: up
2{
orange: + change up
white: + change up
}
orange: + down
white: + down
{
orange: + change up
white: + change up
}
Vihje: keskity vain yhteen nauhoista.