设房间里还有一只可被猴子移动的箱子,且猴子登上箱子时才能摘到香蕉,问猴子在某一状态下(设猴子位置为A,香蕉位置在B,箱子位置为C),如何行动可摘取到香蕉
算法介绍
2.1猴子摘香蕉问题PEAS
性能 环境...w
Hold(z):z手中拿着香蕉
On(z):z站在了箱子上
Hang(y,w):y悬挂在位置w
2.3定义变元定义域:
x∈{猴子,箱子}
y∈{香蕉}
z∈{猴子}
w∈{a,b,c}
2.4定义操作...{m,b,box,0/1,1}(若On=1,则m==box)
接受状态表示为{b,b,b,1,0}
2.6定义规则集(根据操作集):
R1:Move(x,w):{x,y,z,0,1}->{w,y,z,0,1...,我们要尽可能防止表示泄露,因此设置参数用private、setter、getter的组合来传递以及更改参数,而且要时刻记得checkRep,此外猴子摘香蕉问题,猴子会主动搬箱子,抓取香蕉,以及爬上或跳下箱子...我们主观印象会觉得猴子是主语,他做出了这些动作,应该将方法都添加到猴子类中,但事实上,我们会发现将方法添加到宾语,也就是箱子、香蕉这些类会更加方便,这是因为虽然猴子爬上或搬箱子,别的动物甚至某种类也可以完成这些动作