Nekoč davno (beri v osemdesetih) so se pojavili prvi današnjim podobni osebni računalniki in na teh računalnikih je tekel program, v katerem so lahko programirali manjši ali večji otroci ali otroci samo po srcu. Program se je imenoval LOGO. Bistvo programa je bilo, da je programer krmilil želvico, da se premikala po zaslonu in pri tem risala čim bolj umetelno sled. Obstajale so celo prave dvokolesne želvice, ki se jih je dalo krmiliti tako, da so se vozile in risale po tleh – kar je že takrat močno dišalo po robotiki. To sicer danes v času MindStormov ni nič posebnega in LOGO je zato, ker se nekaterim zdelo, da je programiranje za otroke pretežko in da bi naši malčki lahko prehiteli tiste z vzhoda, izginil iz šol in potonil nekam v pozabo, tako kot še marsikaj v tistih časih imenitnega.
A glej vrabca. Na tečaju o Pythonu je predavatelj pokazal tudi želvjo grafiko, tokrat v Pythonu. Zelo se je trudil, izgledalo je strašno komplicirano in sklenil sem, da bom tisto, kar sem slišal, čim prej pozabil. A nostalgija mi ni dala miru. Spravil sem se malo raziskovat pythonove knjižnice in našel – drugo, bistveno lažjo in dosti bolj prisrčno želvjo grafiko, seveda tudi v Pythonu. LOGO je torej vstal kot feniks iz pepela. Več bo povedala koda sama. Ko odtipkate piko v Pythonovem urejevalniku, malo počakajte, da se vam pokaže vsa paleta želvjih ukazov :
#Šestkotniki v želvji grafiki, V.Petruna dec.2010 from Tkinter import * import math import turtle a=80 def sestkotnik(n): for i in range(6): turtle.forward(a) if n==1: turtle.right(60) else: turtle.left(60) turtle.heading() sestkotnik(1) sestkotnik(0) turtle.penup() turtle.forward(a) turtle.left(60) turtle.forward(a) turtle.right(60) turtle.pendown() sestkotnik(1) sestkotnik(0) mainloop()
Tale koda nam da naslednji rezultat:
Podrobnosti najdete v pythonovi knjižnici turtle.
Naslednja koda
#Satje-V.Petruna, feb.2012 from Tkinter import * import math import turtle a=20 #velikost stranice šestkotnika n=5 #število vrst def tl(): turtle.forward(a) turtle.left(60) turtle.forward(a) turtle.right(60) def tr(): turtle.forward(a) turtle.right(60) turtle.forward(a) turtle.left(60) def vlecir(n): for i in range(n): tl() tr() def vlecil(n): for i in range(n): tr() tl() for i in range(n): vlecir(n) turtle.right(120) turtle.forward(a) turtle.right(60) vlecil(n) turtle.left(120) turtle.forward(a) turtle.left(60) vlecir(n) mainloop()
pa vam nariše poljubno veliko čebelje satje
Pa še naloga za vas: Naredite enakostranični trikotnik čebeljega satovja s stranico 10.