|
发表于 2017-9-1 23:25:24
|
显示全部楼层
origin=(0,0)
legal_x=[-100,100]#水平范围
legal_y=[-100,100]#垂直范围
def create(pos_x=origin[0],pos_y=origin[1]):
def moving(direction,step):
nonlocal pos_x,pos_y
new_x=pos_x+direction[0]*step[0]
new_y=pos_y+direction[1]*step[1]
if new_x<legal_x[0]:
pos_x=legal_x[0]-(new_x-legal_x[0])
elif new_x>legal_x[1]:
pos_x=legal_x[1]-(new_x-legal_x[1])
else:
pos_x=new_x
if new_y<legal_y[0]:
pos_y=legal_y[0]-(new_y-legal_y[0])
elif new_y>legal_y[1]:
pos_y=legal_y[1]-(new_y-legal_y[1])
else:
pos_y=new_y
return(pos_x,pos_y)
return moving
a=create()
print('向上一步,向左三步:',a([1,-1],[1,3]))
小甲鱼的只能走正方形,或者直线,可以稍微将step改为list 可以设置两个方向的步进 |
|