猴子摘香蕉问题c语言_c语言人工智能算法

猴子摘香蕉问题c语言_c语言人工智能算法问题说明:房间内有一只猴子,一个箱子和一个挂在天花板上的香蕉。三者的位置如下图所示:初始状态:三者在输入的初始位置,猴子手上无香蕉,猴子不在箱子上。目标状态:三者均在香蕉对应的位置,猴子手上有香蕉,且在箱子上。实现步骤:猴子走到箱子处猴子将箱子推到香蕉处猴子爬上箱子猴子摘香蕉程序内容:本程序主要实现猴子摘香蕉的过程,即从初始状态到目标状态。程序运行后,根据用户输入的三者的位置,按照实现步骤更新每一过程后的状态变量,并将过程输出。本程序使用以下函数:main():主函数

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

Jetbrains全系列IDE稳定放心使用

问题说明:

房间内有一只猴子,一个箱子和一个挂在天花板上的香蕉。三者的位置如下图所示:猴子摘香蕉问题c语言_c语言人工智能算法

初始状态:三者在输入的初始位置,猴子手上无香蕉,猴子不在箱子上。

目标状态:三者均在香蕉对应的位置,猴子手上有香蕉,且在箱子上。

实现步骤:猴子走到箱子处猴子将箱子推到香蕉处猴子爬上箱子猴子摘香蕉

程序内容: 本程序主要实现猴子摘香蕉的过程,即从初始状态到目标状态。程序运行后,根据用户输入 的三者的位置,按照实现步骤更新每一过程后的状态变量,并将过程输出。

本程序使用以下函数:

main():主函数

go_to_box():猴子走到箱子处

move_box():猴子搬箱子

climb_box():猴子爬箱子

get_banana():猴子摘香蕉
 

本程序使用C++实现:

#include <iostream>
#include <string>
#include <vector>

using namespace std;

/*
File name:monkey_get_banana
Date:11.15
*/


//用一个结构体变量记录某一状态下猴子、箱子、香蕉的位置,以及猴子是否在箱子上、是否摘得香蕉 
struct stack{
	string MONKEY; 
	string BANANA;
	string BOX;
	int HAVE; //1表示摘得,0表示没有 
	int ISON;	//1表示猴子在箱子上,0表示没有 
};

//函数申明 
bool go_to_box(struct stack& s,string m,string n);
bool move_box(struct stack& s, string m, string n);
bool climb_box(struct stack& s, string pos);
bool get_banana(struct stack& s,string pos);

int main(){
	
	string monkey,banana,box;
	struct stack sq;
	
	cout << "用a,b,c三个数字输入猴子、香蕉、箱子的位置,中间用空格隔开" << endl;
	cin >>monkey>>banana>>box;
	cout <<"输入的 猴子 香蕉 箱子的位置分别是:"<<endl;
	cout <<"monkey\tbanana\tbox"<<endl; 
	cout <<monkey<<"\n\t"<<banana<<"\n\t\t"<<box<<endl;
	cout <<"猴子摘香蕉的过程如下:"<< endl; 
	
	//初始化 
	sq.MONKEY = monkey;
	sq.BANANA = banana;
	sq.BOX = box;
	sq.HAVE = 0;
	sq.ISON = 0;
	
	//摘香蕉过程 
	go_to_box(sq,sq.MONKEY,sq.BOX);
	move_box(sq, sq.MONKEY, sq.BANANA);
	climb_box(sq,sq.BANANA);
	get_banana(sq,sq.BANANA);
	
	return 0;
}

bool go_to_box(struct stack& s,string m,string n){
	if (s.MONKEY == m){
		s.MONKEY = n; 
		cout <<"\n第一步:猴子从 "<<m<<" 处走到 "<<n<< endl;
		return true;
	}
	else
		return false;
	return true;
}

bool move_box(struct stack& s, string m, string n)
{
	if (s.MONKEY == m && s.BOX == m)
	{
		s.MONKEY = n;
		s.BOX = n;
		cout <<"\n第二步:猴子将箱子从 "<<m<<" 处移到 "<<n<< endl;
		return true;
	}
	else
		return false;
	return true;
}

bool climb_box(struct stack& s, string pos){
	if (s.MONKEY == pos && s.BOX == pos && s.BANANA == pos && s.ISON == 0)
	{
		s.ISON = 1;
		cout <<"\n第三步:猴子在"<<pos<<"处爬上箱子"<<endl;
		return true;
	}
	else
		return false;
	return true;
}


bool get_banana(struct stack& s,string pos){
	if (s.MONKEY == pos && s.BOX == pos && s.BANANA == pos && s.ISON == 1){
		s.HAVE = 1;
		cout <<"\n第四步:猴子摘得香蕉"<<endl;
	}
	else
		return false;
	return true; 
}

程序运行结果: 

猴子摘香蕉问题c语言_c语言人工智能算法

 作业要求完美实现!!!

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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/189398.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • c语言格式化输出「建议收藏」

    c语言格式化输出「建议收藏」C语言printf指定宽度的格式化输出printf()是一个标准库函数,使用时需要include头文件stdio.h。#include<stdio.h>printf()函数的调用形式为:printf(“格式控制字符串”,输出列表);其中,格式控制字符串用于指定输出格式,有格式字符串和非格式字符串两种形式。格式字符串有%,%后面跟着各种格式字符,用以说明输出数据的类型、形式、长度、小数位等。下面是一些常用的指定宽度的格式化输出例子。格式化占位符(format):%[

    2022年7月24日
    24
  • 电阻器的识别与测量答案_电阻器的判断

    电阻器的识别与测量答案_电阻器的判断原文地址:电阻器的识别与测量作者:绵绵小溪2011年9月14日                                                                     第3周第7,8课时课  题电阻器的识别与测量教学目标知识目标:1)让学生理解色标法、直标法的含义;         2)让学生了解数字万用表测

    2022年8月21日
    6
  • 查看文件内容linux命令_shell读取文件夹下所有文件

    查看文件内容linux命令_shell读取文件夹下所有文件查看文件内容总览cat由第一行开始显示文件内容tac从最后一行开始显示,可以看出tac是cat的倒着写!nl显示的时候,顺道输出行号!more一页一页的显示文件内容less

    2022年8月6日
    7
  • 用EnableMenuItem不能使菜单变灰的原因

    用EnableMenuItem不能使菜单变灰的原因

    2021年12月16日
    42
  • URLEncoder转换字符串问题

    URLEncoder转换字符串问题今天在开发过程中遇到了一个坑,关于使用URLEncoder去encode字符串的问题,是解析一个下载地址,由于下载文件名中含有空格,导致encode之后所有空格变成了“+”,url拼接自然就出错了,下载地址相应不到报了404异常,由于之前没接触过这方面的事情,也算是给自己挖了一个小坑,特此记录一下。这段是业务背景,不想看的直接跳到下一段看解决办法哈。大概是这样,公司网站原本下载各种附件的地…

    2022年6月29日
    28
  • pycharm windows 重置_pycharm重置设置,恢复默认设置「建议收藏」

    pycharm windows 重置_pycharm重置设置,恢复默认设置「建议收藏」备忘,备忘,备忘2020-03-23日更新,重置有问题的,请参考底部官网链接.(另外:喷我并不能解决你的问题.)window系统找到下方目录–>删除.再重新打开pycharm#WindowsVista,7,8,10:\Users\\.例:C:\Users\Administrator\.PyCharm2018.1#WindowsXP:\DocumentsandSett…

    2022年8月27日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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