python猴子摘桃问题_python解决简单实际问题

python猴子摘桃问题_python解决简单实际问题如何实现猴子摘香蕉问题,只需要几点即可1.猴子与箱子的位置关系2.箱子与香蕉的位置关系3.猴子有无摘到香蕉猴子摘到香蕉的前提条件1.猴子与箱子在一起2.箱子与香蕉在一起3.猴子在箱子上面4.猴子没有摘到香蕉猴子可能存在的几种位置状态1.箱子和猴子不在一起2.猴子跟箱子在一起且不跟香蕉在一起3.猴子不在箱子上并且猴子跟箱子在一起4.猴子在箱子上并且箱子跟香蕉在一起以及猴子没有摘取香蕉5.猴子在箱子上但箱子不跟香蕉在一起6.猴子取到香蕉根据上述开始

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新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

运行图效果

python猴子摘桃问题_python解决简单实际问题

 python猴子摘桃问题_python解决简单实际问题

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/189309.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • django views_django admin视图

    django views_django admin视图前言ViewSet只是一种基于类的视图,它不提供任何方法处理程序(如.get()或.post()),而是提供诸如.list()和.create()之类的操作。ViewSet的方法处理程序

  • Unity | Cinemachine FreeLook Camera「建议收藏」

    Unity | Cinemachine FreeLook Camera「建议收藏」FreeLookCamera是可以基于第三人称视角进行自由观察的虚拟相机。如下图所示,自由视角相机有上中下三个红圈,我们可以通过修改CinemachineFreeLook组件中的值来修改红圈的高度及大小。三个红圈由一个纵向的红线相连。通过改变YAxis及XAxis的Value可以修改虚拟相机的视角。 SplineCurvature决定纵向的紧绷状态。 TopRig、MiddleRig、BottomRig即三个红圈的属性。在CinemachineFreeL…

  • 宿主机ping不通docker容器_kali虚拟机ping不通

    宿主机ping不通docker容器_kali虚拟机ping不通问题描述:  Docker网络模式分为四种,一般我们不设置时默认为bridge单桥模式,容器使用独立的networkNamespace,并连接到docker0虚拟网卡中。通过docker0网桥以及Iptablesnat表配置与宿主机通信。  此时在堡垒机上进行测试,利用busybox进行测试:#拉取镜像dockerpullbusybox#运行容器dockerrun-itd–namebusy_bridgebusybox  指令dockernetworkinspect

  • 树莓派4B基础教程

    树莓派4B基础教程树莓派4B基础教程准备:硬件:树莓派4B,SD一张软件:SDCardFormatter(SD卡格式化工具),Win32DiskImager(烧录系统工具)这是一个纯新手教程,由于更新换代,有些东西3b的教程能用4b用不了,由于版本原因,有些东西直接出错,所以干脆花时间自己整理了一下.作者自述:对!东西全是百度来的,劳资只是一个搞Java开发的,也没有见过这些小东西可能比普通…

  • 双飞翼布局和圣杯布局

    双飞翼布局和圣杯布局实现左右固定宽度,中间自适应的布局(中间先加载渲染),代码如下<!DOCTYPEhtml><html> <head> <metacharset=”utf-8″/> <title>css</title> </head> <styletype=”text/css”> *…

  • 记录一次docker启动容器后Exited(127)的解决过程[通俗易懂]

    特意强调一下:本人使用的系统为centos6.8本人运行容器的状态为Exited(127),如果你的问题不是127,可能解决不了你的问题问题:安装docker之后,拉取镜像dockerpullredis然后dockerimages查看所有镜像后,开始命令运行redisdockerrun-d–name=myredis-p6379:6379-d7caaqwe22q(镜像id)然后dockerps-a发现:CONTAINERIDIMAGE

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号