-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsnake game.py
More file actions
124 lines (95 loc) · 2.25 KB
/
Copy pathsnake game.py
File metadata and controls
124 lines (95 loc) · 2.25 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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
import turtle
import random
w = 50
h = 500
fs = 10
d = 100
offsets = {
"up" : (0,20),
"down":(0,-20) ,
"left":(-20,0),
"right":(20,0)
}
def r():
global saap,kata,khanaT, pen
saap = [[0,0],[0,20],[0,40],[0,60],[0,80]]
kata = "up"
khanaT = nun()
food.goto(khanaT)
hall()
def hall():
global kata
new_head = saap[-1].copy()
new_head[0] = saap[-1][0] + offsets[kata][0]
new_head[1] = saap[-1][1] + offsets[kata][1]
if new_head in saap[-1]:
r()
else:
saap.append(new_head)
if not khana():
saap.pop(0)
if saap[-1][0] > w/2:
saap[-1][0] -= w
elif saap[-1][0] < -w/2:
saap[-1][0] += w
elif saap[-1][1] > h/2:
saap[-1][1] -= h
elif saap[-1][1] < -h/2:
saap[-1][1] += h
pen.clearstamps()
for segment in saap:
pen.goto(segment[0],segment[1])
pen.stamp()
screen.update()
turtle.ontimer(hall,d)
def khana():
global khanaT
if dist(saap[-1],khanaT) < 20:
khanaT = nun()
food.goto(khanaT)
return True
return False
def nun():
x = random.randint(-w/2 + fs, w/2 -fs)
y = random.randint(-h/2 + fs, h/2 - fs)
return (x,y)
def dist(poos1 , poos2):
x1, y1 = poos1
x2, y2 = poos2
distance = ((y2-y1)** 2 + (x2-x1) ** 2) ** 0.5
return distance
def mathi():
global kata
if kata != "down":
kata = "up"
def go_right():
global kata
if kata != "left":
kata = "right"
def go_down():
global kata
if kata != "up":
kata = "down"
def go_left():
global kata
if kata != "right":
kata = "left"
screen = turtle.Screen()
screen.setup(w, h)
screen.title("saap")
screen.bgcolor("green")
screen.tracer(0)
pen = turtle.Turtle("square")
pen.penup()
food = turtle.Turtle()
food.shape("circle")
food.color("white")
food.shapesize(fs / 20)
food.penup()
screen.listen()
screen.onkey(mathi, "Up")
screen.onkey(go_right, "Right")
screen.onkey(go_down, "Down")
screen.onkey(go_left, "Left")
r()
turtle.down()