游戏规则:
1. 游戏背景为10*10;
2. 游戏会自动生成1个乌龟和10条鱼;
3. 它们移动方向随机;
4. 乌龟最大移动能力为2; [-2,-1,1,2]
5. 鱼最大移动能力为1; [-1,1]
6. 当移动到场景边界, 自动反方向移动;
7. 乌龟初始化体能为100<200为上限>;每移动一次消耗体能1;
8. 当乌龟和鱼的坐标重合, 代表乌龟吃掉鱼, 体能增加20;
9. 乌龟无体力或者鱼吃光, 游戏结束;
#!/usr/bin/env python
# coding:utf-8
""""
Name: TurtleFish.py
Date: 2018/03/29
Connect: xc_guofan@163.com
Author: lvah
Desc:
"""
import random
class Turtle:
def __str__(self):
return "Turtle:(%s, %s)" %(self.x, self.y)
def __init__(self):
# 乌龟的坐标
self.x = random.randint(0, 10)
self.y = random.randint(0, 10)
# 乌龟体力
self.power = 100
def is_vaild(self, new):
"""
判断坐标是否越界
"""
if new < 0: # -2
return 0 - new
elif new > 10: # 12
return 10 - (new - 10)
else:
return new
def move(self):
# 计算移动后的x坐标和y坐标
new_x = self.x + random.choice([-2, -1, 1, 2])
new_y = self.y + random.choice([-2, -1, 1, 2])
self.x = self.is_vaild(new_x)
self.y = self.is_vaild(new_y)
self.power -= 1
def eat(self):
self.power += 20
if self.power > 200:
# 体能上限为200;
self.power = 200
class Fish:
def __str__(self):
return "Fish:(%s,%s)" %(self.x, self.y)
def __init__(self):
# 鱼坐标
self.x = random.randint(0, 10)
self.y = random.randint(0, 10)
def is_vaild(self, new):
"""
判断坐标是否越界
"""
if new < 0: # -2
return 0 - new
elif new > 10: # 12
return 10 - (new - 10)
else:
return new
def move(self):
new_x = self.x + random.choice([-1, 1])
new_y = self.y + random.choice([-1, 1])
self.x = self.is_vaild(new_x)
self.y = self.is_vaild(new_y)
t1 = Turtle()
print t1
f1=Fish()
print f1
fish = []
for i in range(10):
fish.append(Fish())
while True:
# 判断游戏是否结束:
if t1.power <= 0:
print "乌龟死翘翘, GAME OVER!"
break
elif len(fish) == 0:
print "鱼被吃光了, GAME OVER!"
break
else:
t1.move()
for afish in fish:
afish.move()
if afish.x == t1.x and afish.y == t1.y:
t1.eat()
fish.remove(afish)
print "一条鱼被乌龟吃掉....."
print "乌龟的最新体力: %s" %(t1.power)