Posūkiai ir vaikčiojimas

Iš wiki.angis.net.
Jump to navigation Jump to search
Princas.png

Ši programa demonstruoja, kaip veikia Angies.net veikėjų judėjimas. Dažnai yra painiojamas posūkio ir judėjimo pirmyn ar atgal užrašymas. Angyje automatiškai numatyta, kad užrašius komandą princas.kairėn() arba princas.dešinėn veikėjas pasisuktų į nurodytą pusę per 90 laipsnių, todėl skliausteliuose rašyti nieko nereikia, o jeigu įrašoma pavyzdžiui princas.dešinėn(3), tai princas sukasi į dešinę per 3 laipsnius. Kiek kitaip yra su judėjimu pirmyna arba atgal. Taupydami kodo eilutes vietoj:

princas.pirmyn()
princas.pirmyn()
princas.pirmyn()

Galime parašyti:

princas.pirmyn(3)

Taip princas pajudės 3 langelius į priekį.


Paleisti programėlę

Programos logika

Šioje programėlėje panaudoti vaizdo failai iš pirmo lygio, todėl programą pradedame nuo:

import lygis1
princas = lygis1.princas

Tuomet sukuriame ciklą kol, kuriame užrašome, kad programa pradeda skaičiuoti nuo skaičiaus 1 ir kartoja visus skaičius, iki 91. Ciklui priklausančiame bloke nurodom, kad princui pasisukus per vieną laipsnį į dešinę programa užrašytų princas.dešinėn(skaičius). Str reiškia, kad skaičius yra paverčiamas į tekstą, o +=1 reiškia, kad pasibaigus ciklui prie esamo skaičiaus yra pridedamas +1 skaičius ir taip programa kartoja viską iki kol pasieks 91.

skaičius = 1
kol skaičius < 91:
    princas.dešinėn(1)
    rašyk('princas.dešinėn'+ '(' + str(skaičius) +')')
    skaičius += 1

Pasibaigus ciklui programa užrašo: Kaip matai princas pasisuko 90 laipsnių kampu į dešinę!

rašyk("Kaip matai Princas pasisuko 90 laipsnių kampu į dešinę!")

Tuomet princas pasisuka į kairę ir prasideda ciklas, kuriame jis žingsniuoja pirmyn:

skaičius = 1
kol skaičius < 3:
    princas.pirmyn(1)
    rašyk('princas.pirmyn'+ '(' + str(skaičius) +')')
    skaičius += 1

Pilnas programos kodas

import lygis1
princas = lygis1.princas

skaičius = 1
kol skaičius < 91:
    princas.dešinėn(1)
    rašyk('princas.dešinėn'+ '(' + str(skaičius) +')')
    skaičius += 1

rašyk("Kaip matai Princas pasisuko 90 laipsnių kampu į dešinę!")

princas.kairėn()

skaičius = 1
kol skaičius < 3:
    princas.pirmyn(1)
    rašyk('princas.pirmyn'+ '(' + str(skaičius) +')')
    skaičius += 1
    
rašyk("Vadinasi posūkiai yra skaičiuojami laipsniais, o žingsniai langeliais.")