马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
import random as r
class Turtle:
def __init__(self):
#初始体力
self.power=100
#初始位置随机
self.x=r.randint(0,10)
self.y=r.randint(0,10)
def move(self):
#随机计算方向并移动
new_x=self.x+r.choice([-2,-1,1,2])
new_y=self.y+r.choice([-2,-1,1,2])
#检查是否超过X边界
if new_x<0:
self.x=-new_x
elif new_x>10:
self.x=20-new_x
else:
self.x=new_x
#检查是否超过Y边界
if new_y<0:
self.y=-new_y
elif new_y>10:
self.y=20-new_y
else:
self.y=new_y
#体力消耗
self.power-=1
[b] return self.x,self.y[/b]
def eat(self):
self.power+=20
if self.power>100:
self.power=100
class Fish:
def __init__(self):
#初始位置随机
self.x=r.randint(0,10)
self.y=r.randint(0,10)
def move(self):
#随机计算方向并移动
new_x=self.x+r.choice([-1,1])
new_y=self.y+r.choice([-1,1])
#检查是否超过X边界
if new_x<0:
self.x=-new_x
elif new_x>10:
self.x=20-new_x
else:
self.x=new_x
#检查是否超过Y边界
if new_y<0:
self.y=-new_y
elif new_y>10:
self.y=20-new_y
else:
self.y=new_y
[b]return self.x,self.y[/b]
tt=Turtle()
fish=[]
for each in range(10):
newfish=Fish()
fish.append(newfish)
while True:
if len(fish)==0:
print("鱼儿被吃光了,游戏结束!")
break
if not tt.power:
print("爬不动了,游戏结束!")
break
pos=tt.move()
for each_fish in fish:
if each_fish.move()==pos:
tt.eat()
fish.remove(each_fish)
print("有一条鱼儿挂了!")
print("Game is over!")
弄不懂为什么必须设置返回self.x和self.y,不然会有问题。而self.power没设置返回却没有问题,记得小甲鱼讲过函数如果没有retrun,则返回None
|