Садржај
1. Робот Карел - Линијски програми и бројачка петља
2. Робот Карел - Условна петља и гранање
3. Робот Карел - Задаци за вежбање
4. Корњача графика - Линијски програми и петље
5. Корњача графика - Гранање, угнежђене петље, функције, торке и листе
6. Корњача графика - Задаци за вежбање
7. Израчунавања - Изрази, оператори, променљиве
8. Израчунавања - Цели и реални бројеви, дељење
9. Израчунавања - Коришћење и дефинисање функција
10. Израчунавања - Задаци за вежбање
11. Гранање
12. Понављање - петље
13. Контрола тока - Задаци за вежбање
14. Структуре података
15. Примена петље у структурама података
16. Откривање и исправљање грешака и коришћење дебагера
4.1. Наредбе корњаче¶
Како ово ради?¶
Можемо веома лепо да цртамо куцањем наредби уз помоћ корњача графикe. Ту се мала корњача креће по екрану и за собом као траг оставља линију у боји. Заправо, корњача је један од ликова које можемо упослити да цртају (ако не изаберемо лик, програм ће цртати помоћу стрелице).
За разлику од робота Карела, који ради само на порталу Петља и којег смо испрограмирали специјално за вас, корњача графика је саставни део језика Python и програме са корњачом можете писати и на свом рачунару, ван портала Петља (на пример, у програму IDLE). Потребно је само да на свом рачунару инсталирате Пајтон 3, чију инсталацију можете преузети са сајта Python.org. Када сте инсталирали Python, покрените IDLE и идите на File, а затим на New file. На овом месту куцате свој програм. Када сте завршили, покрените га на Run, а затим кликните на Run Мodule. Дајте име вашем програму и сачувајте га, а затим гледајте како црта!
Наредбе корњаче¶
Да бисмо у нашим програмима могли да цртамо уз помоћ корњаче, потребно је
да прво укључимо библиотеку за рад са корњачом (то се ради тако што наведемо import turtle
).
Након тога можемо издавати наредбе нашој корњачи. Свака наредба ће почињати са turtle.???
.
Основне наредбе корњачи приказаћемо кроз неколико једноставних програма.
Цртање линије¶
Корњача се на почетку налази у центру екрана и окренута је надесно (у смеру истока).
Наредбом
turtle.forward(100)
корњачи говоримо да се помери напред (у смеру у ком је тренутно окренута) 100 корака и тако, пошто наша корњача свакако са собом носи оловку којом црта, постижемо да се на екрану нацрта дуж дужине 100 пиксела.
import turtle
turtle.forward(100)
(корњача_forward)
Да бисмо видели јасније како корњача ради, можемо јој променити брзину кретања.
turtle.speed(0)
нам даје најбржу корњачу (након покретања програма се одмах види готов цртеж), докturtle.speed(10)
даје најспорију корњачу (могуће је навести и било коју целобројну вредност између 0 и 10). Што је број већи, корњача ће бити бржа (осим за случај са 0, који одмах црта готов цртеж).
import turtle
turtle.speed(10)
turtle.forward(100)
(корњача_forward_speed)
Осим померања напред, корњача може да се креће и уназад цртајући притом линију. Наредба којом се то постиже је
turtle.backward
.
import turtle
turtle.backward(100)
(корњача_backward)
Боја и дебљина линије¶
Могуће је поставити различите параметре који одређују начин на који се врши исцртавање.
Да бисмо видели нашу корњачу (уместо стрелице која се приказује), можемо употребити наредбу
turtle.shape("turtle")
.Помоћу
turtle.color
можемо променити боју корњаче и њене оловке (и тако променити и боју трага, тј. линија које се исцртавају). Као параметар ове наредбе у заградама под наводницима наводимо име жељене боје на енглеском језику. На пример, наредбаturtle.color("red")
поставља црвену боју.Помоћу
turtle.width
постављамо дебљину трага који корњача оставља, при чему се дебљина задаје као параметар. На пример, наредбомturtle.width(5)
постижемо да линије које се цртају буду дебеле 5 пиксела.
Да ли можеш да погодиш шта ће се добити покретањем наредног програма? Пробај да погодиш, а онда након тога покрени програм и провери да ли си био у праву.
import turtle
turtle.speed(5)
turtle.shape("turtle")
turtle.width(5)
turtle.color("red")
turtle.forward(50)
turtle.color("green")
turtle.forward(50)
(корњача_setparams)
Подизање оловке¶
Корњача током свог кретања оставља траг. Међутим, некада је згодно да корњачу померимо без цртањa.
Наредбом
turtle.penup()
корњача подиже своју оловку и након тога се креће по екрану не остављајући траг све док јој се не изда наредбаturtle.pendown()
, након чега поново почиње да оставља траг током кретања.
Допуни наредни програм тако да корњача нацрта испрекидану линију која се састоји од три дужи.
import turtle
turtle.speed(10)
turtle.forward(20) # idi napred 20 piksela (olovka je podrazumevano spuštena)
turtle.penup() # podigni olovku
turtle.forward(20) # idi napred (pošto je olovka podignuta, kornjača ne ostavlja trag)
turtle.pendown() # spusti olovku
turtle.forward(20) # idi napred 20 piksela
(корњача_оловка)
Отисци корњаче¶
Наредбом
turtle.stamp()
корњача може да остави свој отисак на месту на ком се тренутно налази.
Покушај да погодиш који ће се облик добити покретањем наредног програма.
import turtle
turtle.speed(10)
turtle.penup() # podigni olovku
turtle.stamp() # ostavi trag
turtle.forward(20) # idi napred 20 koraka
turtle.stamp() # ostavi trag
turtle.forward(20) # idi napred 20 koraka
turtle.stamp() # ostavi trag
(корњача_stamp)
Окретање корњаче¶
Корњача може мењати свој смер кретања тако што се окреће налево (у смеру супротном смеру кретања казаљке на сату) или надесно (у смеру кретања казаљке на сату) за одређени број степени, за шта се користе наредбе
turtle.left(n)
иturtle.right(n)
, a n je број степени.
Покушај да погодиш који ће се облик добити покретањем наредног програма.
import turtle
turtle.speed(10)
turtle.forward(50) # idi napred 50 koraka
turtle.left(60) # okreni se levo 60 stepeni
turtle.forward(50) # idi napred 50 koraka
turtle.right(60) # okreni se desno 60 stepeni
turtle.forward(50)
(корњача_rotate)
Резимирајмо све наредбе корњачи које смо до сада поменули.
|
корњача се помера напред за n корака, где је n неки цео број |
|
корњача се помера назад за n корака, где је n неки цео број |
|
корњача се окреће налево за n степени, где је n неки цео број |
|
корњача се окреће надесно за n степени, где је n неки цео број |
|
корњача подиже оловку |
|
корњача спушта оловку |
|
боја оловке се поставља на боју |
|
дебљина оловке у тачкицама (пикселима) се поставља на вредност n, где је n неки цео број |
|
корњача оставља свој отисак |
|
корњача мења свој облик (нпр. уместо |
|
корњача мења своју брзину кретања од 1 (најспорије) до 10 (најбрже). Ако брзина има вредност 0, корњача тренутно црта линију без анимације. |
Комплетан списак свих наредби корњачи може се наћи у званичној документацији језика Python 3.
Скраћени запис¶
Наредбе могу да се запишу и краће.
Ако се уместо import turtle
библиотека за рад са корњачом увезе
помоћу import turtle as t
, тада уместо turtle.???
, можемо писати само t.???
.
На пример, уместо turtle.color("red")
, можемо писати само
t.color("red")
.
Додатно, неке наредбе имају скраћени облик. На
пример, померање напред n пиксела можемо постићи помоћу
t.fd(n)
, померање назад помоћу t.bk()
, окрет налево за n
степени помоћу t.lt(n)
, надесно помоћу t.rt(n)
и слично. Скраћени облици наредби
су увек на располагању, без обзира како смо библиотеку за рад са корњачом увезли.
На пример, цртеж можемо нацртати и на следећи начин:
import turtle as t
t.color("red")
t.fd(100)
t.lt(90)
t.fd(150)
(корњача_скраћени_запис)