游戏规则
1.wasd上下左右移动
2.玩家一次可以移动1-3随机距离,人机一次移动1格或斜着移
3.玩家需要躲避人机追杀
4.当出现如图所示情况时——你输了
5.墙(概率通过,对人机无效)
难度可根据代码自己调,已在萝卜圈开源
代码
#机器人驱动主程序
#请在main中编写您自己的机器人驱动代码
import msvcrt
import random
rx=27
ry=0
px=0
py=0
def check():
global rx,ry,px,py
if rx>27:
rx=27
if rx<0:
rx=0
if ry>9:
ry=9
if ry<0:
ry=0
if px>27:
px=27
if px<0:
py=0
if py>9:
py=9
if py<0:
py=0
if rx==px and ry==py:
robot_drv.set_prismatics(1000,97,30)
print("GAME OVER")
robot_drv.sleep(1000000)
def robotmove():
global rx,ry,px,py
if rx>px and ry>py:
rx=rx-1
ry=ry-1
if rx>px and ry<py:
rx=rx-1
ry=ry+1
if rx<px and ry>py:
rx=rx+1
ry=ry-1
if rx<px and ry<py:
rx=rx+1
ry=ry+1
if rx==px and ry>py:
ry=ry-1
if rx==px and ry<py:
ry=ry+1
if rx>px and ry==py:
rx=rx-1
if rx<px and ry==py:
rx=rx+1
check()
if rx>=12:
robot_drv.set_prismatics(250,91,270-rx*10,93,ry*10)
else:
robot_drv.set_prismatics(250,91,150,92,(27-rx-15)*10,93,ry*10)
def wall(dir,op):
global rx,ry,px,py
if op>0:
t=1
else:
t=-1
if dir==1:
if (px!=14 or py+t!=4) and (px!=14 or py+t!=5) and (px!=14 or py+t!=6):
py=py+op
check()
elif dir==2:
if (px+t!=14 or py!=4) and (px+t!=14 or py!=5) and (px+t!=14 or py!=6):
px=px+op
check()
def playermove(a,ste):
global rx,ry,px,py
if a==b'w':
wall(1,ste)
if a==b's':
wall(1,-ste)
if a==b'a':
wall(2,-ste)
if a==b'd':
wall(2,ste)
if px<=15:
robot_drv.set_prismatics(250,94,px*10,96,py*10)
else:
robot_drv.set_prismatics(250,94,150,95,px*10-150,96,py*10)
def main():
while True:
key_input = msvcrt.getch()
a=key_input
ste=random.randrange(1, 3)
playermove(a,ste)
robotmove()
# *********************************************
# 以下为初始化代码,请不要修改或者删除
# *********************************************
import sys
import irobotq_robotdriver as robot_drv
if __name__ == '__main__':
try:
ret=robot_drv.init(sys.argv[1],sys.argv[2],int(sys.argv[3]))
if(ret == 0):
main()
robot_drv.over()
print("机器人程序运行结束")
else:
print('初始化错误,错误码:%d' % ret)
print('按任意键退出')
v=input()
except Exception as e:
print (e)
print('按任意键退出')
v=input()