-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvesnice.py
More file actions
103 lines (80 loc) · 2.16 KB
/
vesnice.py
File metadata and controls
103 lines (80 loc) · 2.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# nakreslí vesnici pomocí knihovny turtle
from turtle import exitonclick, bgcolor, screensize, title
import turtle
from random import randint, randrange
import math
import tkinter
def domecek(t, rozmer, fasada):
t.pencolor(fasada)
t.fillcolor(fasada)
t.begin_fill()
for _ in range(4):
t.forward(8*rozmer)
t.right(90)
t.end_fill()
t.penup()
t.backward(rozmer)
t.pendown()
t.pencolor("darkred")
t.fillcolor("red")
t.begin_fill()
for _ in range(3):
t.forward(10*rozmer)
t.left(120)
t.end_fill()
t.penup()
t.forward(3*rozmer)
t.right(90)
t.forward(2*rozmer)
t.pendown()
t.pencolor("blue")
t.fillcolor("lightblue")
t.begin_fill()
for _ in range(4):
t.forward(4*rozmer)
t.left(90)
t.end_fill()
t.right(-90)
# želva se otiskne do rohu okna
t.stamp()
def main():
# barva pozadí okna
bgcolor("black")
# velikost okna
screensize(250,250)
# název okna
title("Levitating Village")
img = tkinter.Image("photo", file="turtle_ico.png")
turtle._Screen._root.iconphoto(True, img)
# Vytvoříme novou želvu
t = turtle.Turtle()
# tvarem želvy je želva
t.shape("turtle")
# nejrychlejší želva = velmi rychlé kreslení
t.speed(0)
# velikost pera = slabý obrys
t.pensize(2)
# vesnice má 100 domečků
for _ in range(100):
# náhodně určená poloha domku z intervalu
x = randint(-300, 300)
y = randint(-300, 300)
# tužka nahoru
t.penup()
# přesun na pozici
t.goto(x, y)
# tužka dolů
t.pendown()
# náhodně vygenerovaná barva fasády
barva = randrange(0,10)/10, randrange(0,10)/10, randrange(0,10)/10
# domky blíže k centru mohou být větší, na periferii menší
if math.sqrt(pow(x,2) + pow(y,2)) < 200:
velikost = randint(8,12)
else:
velikost = randint(4,8)
# zavoláme funkci na vykreslení domečku
domecek(t, velikost, barva)
# zavření okna
exitonclick()
if __name__ == "__main__":
main()