猴子摘香蕉问题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语言人工智能算法

 作业要求完美实现!!!

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

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

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

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

(0)


相关推荐

  • 继续安利两个漫画App

    继续安利两个漫画App之前安利了很多漫画App~今天继续,以防被用o(>ω<)o玄猫漫画飒漫画回复“1051”下载玄猫漫画+飒漫画回复666给Yama买一块大白兔…

  • 数据库-库表设计 【分享一些库表设计经验】

    数据库-库表设计 【分享一些库表设计经验】本文的核心内容:记录积累一些库表设计方案与技巧数据库实体与实体间的对应关系1)数据库表的菜单【分类】设计:如省市关联、图书的一、二级分类。2)数据库表设计之树形结构的表3)表的简化方案(特定情况,例如,用户触发过的场景记录表)4)数据库表设计之购物车,利用Session暂时存储购物车信息。

  • poj 3414 Pots (bfs+线索)

    poj 3414 Pots (bfs+线索)

  • BufferedWriter使用write方法如何换行

    BufferedWriter使用write方法如何换行BufferedWriter对象自带newline()方法可以换行,但如果在字符串中部换行,不想用newline()方法该如何做呢?使用\n是无法实现的,使用\n后,只会出现一个空格,并未实现换行,在想要实现换行的地方加入\r\n就可以了例如Filefile=newFile(“d:/ioPractice/text.txt”);Writerfw=newFileWrite

  • LoadImage()使用

    LoadImage()使用

    2021年12月31日
  • 为总结经验 为后续工作(关于靠谱的心得体会)

    缘起&amp;amp;amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;amp;amp;nbsp;上一周,电脑突然蓝屏崩溃了,幸亏在保质期内,厂家给免费维修,据说硬盘坏了,因此导致了所有数据丢失,虽然没有太多重要的,内心仍不是个滋味。于是打算将所有的不是特别重要东西能放到云端的都放到云端去。内容(会持续更新)&amp

发表回复

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

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