Python猴子摘香蕉问题
房子里有一只猴子(即机器人,可在房间里任意活动:到处走动,推移箱子,攀登箱子等),初始位于a处。在b处上方的天花板上有一串香蕉,猴子想吃,但摘不到。房间的c处还有一个箱子,如果猴子站到箱子上,就可以摸着天花板。如图所示,对于上述问题,可以通过谓词逻辑表示法来描述知识。
要求通过python语言编程实现猴子摘香蕉问题的求解过程,即猴子在某一状态下(设猴子位置为a,箱子位置为b,香蕉位置在c),如何行动可摘取到香蕉。
i=0
def Monkey_go_box(x,y):
global i
i=i+1
print('step:{},monkey从{}走到{}'.format(i,x,y)) #print('step:',i,'monkey从',x,'走到'+y)
def Monkey_move_box(x,y):
global i
i=i+1
print('step:',i,'monkey把箱子从',x,'移动到'+y)
def Monkey_on_box():
global i
i=i+1
print('step:',i,'monkey爬上箱子')
def Monkey_get_banana():
global i
i=i+1
print('step:',i,'monkey摘到香蕉')
print('请用a,b,c来表示猴子箱子香蕉的位置:')
print('monkey\tbox\tbanana\n')
monkey=input('')
box=input('')
banana=input('')
if monkey!=box:
Monkey_go_box(monkey,box)
if box!=banana:
Monkey_move_box(box,banana)
Monkey_on_box()
Monkey_get_banana()
版权声明:本文为qq_51366016原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。