|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#乌龟和鱼游戏190202 完美版
import random
import matplotlib.pyplot as plt
class Fish:
def __init__(self):
self.posx = random.randint(0,10)
self.posy = random.randint(0,10)
self.speed = [0,0]
print('鱼的初始化位置:{},{}'.format(self.posx,self.posy))
#plt.plot(self.posx,self.posy,'go')
def move(self):
xs = [self.posx,0]
ys = [self.posy,0]
self.speed = [random.randint(-1,1),random.randint(-1,1)]
self.posx = self.posx + self.speed[0]
self.posy = self.posy + self.speed[1]
xs[1] = self.posx
ys[1] = self.posy
if self.posx < 0:
self.posx = -self.posx
if self.posy < 0:
self.posy = -self.posy
if self.posx > 10:
self.posx = 10 - (self.posx - 10)
if self.posy > 10:
self.posy = 10 - (self.posy - 10)
print('鱼的新坐标为{},{}'.format(self.posx,self.posy))
#plt.plot(xs,ys,'g*-')
plt.plot(self.posx,self.posy,'g*')
return self.posx,self.posy
class Turtle:
def __init__(self):
self.posx = random.randint(0,10)
self.posy = random.randint(0,10)
self.strength = 100
self.speed = [0,0]
print('乌龟的初始化位置:{},{},体力为{}'.format(self.posx,self.posy,self.strength))
#plt.plot(self.posx,self.posy,'ro')
def move(self):
xs = [self.posx,0]
ys = [self.posy,0]
self.speed = [random.randint(-2,2),random.randint(-2,2)]
self.posx = self.posx + self.speed[0]
self.posy = self.posy + self.speed[1]
xs[1] = self.posx
ys[1] = self.posy
if self.posx < legal_x[0]:
self.posx = -self.posx
if self.posy < legal_y[0]:
self.posy = -self.posy
if self.posx > legal_x[1]:
self.posx = 10 - (self.posx - 10)
if self.posy > legal_y[1]:
self.posy = 10 - (self.posy - 10)
self.strength -= 1
print('乌龟的新坐标为{},{},体力为{}'.format(self.posx,self.posy,self.strength))
#plt.plot(xs,ys,'ro-')
plt.plot(self.posx,self.posy,'ro')
return self.posx,self.posy
def eat(self):
self.strength += 20
if self.strength > 100:
self.strength = 100
legal_x = [0, 10]
legal_y = [0, 10]
turtle = Turtle()
fish = []
for i in range(30):
fish.append(Fish())
print('鱼和乌龟实例化完成')
while True:
if not len(fish):
print('鱼被吃完了,游戏结束!')
break
if not turtle.strength:
print('乌龟体力耗尽,游戏结束')
break
pos = turtle.move()
for each in fish:
if each.move() == pos:
turtle.eat()
fish.remove(each)
print('有一条鱼被吃掉了')
plt.pause(0.1)
plt.cla()
plt.axis([legal_x[0],legal_x[1],legal_y[0],legal_y[1]])
plt.title('{}fish left\nturtle\'s strength:{}'.format(len(fish),turtle.strength))
plt.ion() |
|