大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE稳定放心使用
如何实现猴子摘香蕉问题,只需要几点即可
1.猴子与箱子的位置关系
2.箱子与香蕉的位置关系
3.猴子有无摘到香蕉
猴子摘到香蕉的前提条件
1.猴子与箱子在一起
2.箱子与香蕉在一起
3.猴子在箱子上面
4.猴子没有摘到香蕉
猴子可能存在的几种位置状态
1.箱子和猴子不在一起
2.猴子跟箱子在一起且不跟香蕉在一起
3.猴子不在箱子上并且猴子跟箱子在一起
4.猴子在箱子上并且箱子跟香蕉在一起以及猴子没有摘取香蕉
5.猴子在箱子上但箱子不跟香蕉在一起
6.猴子取到香蕉
根据上述开始实现代码
首先定义猴子的动作
1.猴子走向箱子
# 猴子走向箱子
def monkey_go_box(monkey,box):
global i #步数
i+=1
print("step "+str(i)+": "+"Monkey从"+monkey+"走向"+box)
2.猴子推箱子
# 猴子推箱子
def monkey_push_box(box,banana):
global i
i+=1
print("step "+str(i)+":"+"Monkey将箱子从"+box+"推向"+banana)
3.猴子爬上箱子
# 猴子爬上箱子
def monkey_clim_box():
global i
i+=1
print("step "+str(i)+": "+"Monkey爬上箱子")
4.猴子爬下箱子
# 猴子爬下箱子
def monkey_drop():
global i
i+=1
print("step "+str(i)+": "+"Monkey爬下箱子")
5.猴子摘取香蕉
# 猴子摘取香蕉
def monkey_grasp():
global i
i+=1
print("step "+str(i)+": "+"Monkey摘到香蕉")
猴子根据不同位置状态做出相应的动作
1.箱子和猴子不在一起才能走向箱子
if monkey!=box:
monkey_go_box(monkey,box)
monkey=box
2.猴子跟箱子在一起且不跟香蕉在一起以及猴子不在箱子上才能推
if box!=banana and monkey==box and monkey_y!="1":
monkey_push_box(box,banana)
monkey=box=banana
3.猴子不在箱子上并且猴子跟箱子在一起才能爬
if monkey_y!="1" and monkey==box:
monkey_clim_box()
monkey_y="1"
4.猴子在箱子上并且箱子跟香蕉在一起以及猴子没有摘取香蕉才能摘取香蕉
if monkey_y=="1" and box==banana and monkey_re!="1":
monkey_grasp()
monkey_re="1"
5.猴子在箱子上但箱子不跟香蕉在一起才能爬下箱子
if monkey_y=="1" and box!=banana:
monkey_drop()
monkey_y="0"
完整代码
# 猴子走向箱子
def monkey_go_box(monkey,box):
global i #步数
i+=1
print("step "+str(i)+": "+"Monkey从"+monkey+"走向"+box)
# 猴子推箱子
def monkey_push_box(box,banana):
global i
i+=1
print("step "+str(i)+":"+"Monkey将箱子从"+box+"推向"+banana)
# 猴子爬上箱子
def monkey_clim_box():
global i
i+=1
print("step "+str(i)+": "+"Monkey爬上箱子")
# 猴子摘取香蕉
def monkey_grasp():
global i
i+=1
print("step "+str(i)+": "+"Monkey摘到香蕉")
# 猴子爬下箱子
def monkey_drop():
global i
i+=1
print("step "+str(i)+": "+"Monkey爬下箱子")
if __name__ == "__main__":
i=0
print("请输入monkey位置,猴子是否在箱子上(1:在,0:不在)上以及猴子是否摘取香蕉(1:是,0:否),香蕉的位置,箱子的位置:")
monkey,monkey_y,monkey_re,banana,box=input().split(",")
while True:
# 箱子和猴子不在一起才能走向箱子
if monkey!=box:
monkey_go_box(monkey,box)
monkey=box
continue
# 猴子跟箱子在一起且不跟香蕉在一起以及猴子不在箱子上才能推
if box!=banana and monkey==box and monkey_y!="1":
monkey_push_box(box,banana)
monkey=box=banana
continue
# 猴子不在箱子上并且猴子跟箱子在一起才能爬
if monkey_y!="1" and monkey==box:
monkey_clim_box()
monkey_y="1"
continue
# 猴子在箱子上并且箱子跟香蕉在一起以及猴子没有摘取香蕉才能摘取香蕉
if monkey_y=="1" and box==banana and monkey_re!="1":
monkey_grasp()
monkey_re="1"
continue
# 猴子在箱子上但箱子不跟香蕉在一起才能爬下箱子
if monkey_y=="1" and box!=banana:
monkey_drop()
monkey_y="0"
continue
# 猴子取到香蕉结束
if monkey_re =="1":
break
运行图效果
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/189309.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...