-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathturtle and fish.py
More file actions
93 lines (66 loc) · 2.34 KB
/
turtle and fish.py
File metadata and controls
93 lines (66 loc) · 2.34 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
import random as r
legal = [0, 10]
class Turtle:
def __init__(self):
self.hp = 100 #初始hp
self.x = r.randint(legal[0], legal[1])
self.y = r.randint(legal[0], legal[1]) #初始位置
def move(self):
new_x = self.x + r.choice([1, 2, -1, -2])
new_y = self.y + r.choice([1, 2, -1, -2]) #移动
if new_x < legal[0]:
self.x = 2 * legal[0] - new_x
elif new_x > legal[1]:
self.x = 2 * legal[1] - new_x
else:
self.x = new_x
if new_y < legal[0]:
self.y = 2 * legal[0] - new_y
elif new_y > legal[1]:
self.y = 2 * legal[1] - new_y
else:
self.y = new_y #出界防止
self.hp -= 1 #hp消耗
return (self.x, self.y) #返回位置
def eat(self):
self.hp += 20
if self.hp > 100:
self.hp = 100 #回血
class Fish():
def __init__(self):
self.x = r.randint(legal[0], legal[1])
self.y = r.randint(legal[0], legal[1]) #初始位置
def move(self):
new_x = self.x + r.choice([1, 2, -1, -2])
new_y = self.y + r.choice([1, 2, -1, -2]) #移动
if new_x < legal[0]:
self.x = 2 * legal[0] - new_x
elif new_x > legal[1]:
self.x = 2 * legal[1] - new_x
else:
self.x = new_x
if new_y < legal[0]:
self.y = 2 * legal[0] - new_y
elif new_y > legal[1]:
self.y = 2 * legal[1] - new_y
else:
self.y = new_y #出界防止
return (self.x, self.y) #返回位置
turtle = Turtle()
fish = []
for i in range(10):
new_fish = Fish()
fish.append(new_fish)
while True:
if not len(fish):
print('All fish eaten, You Win')
break
if not turtle.hp:
print('Yuo die, GAME OVER')
break
pos = turtle.move()
for each_fish in fish[:]:
if each_fish.move() == pos:
turtle.eat() #eat
fish.remove(each_fish)
print('a fish has been eaten')