Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何让机器人(由角色';X';表示)找到它';使用随机数生成的s通过迷宫的方式_C++_Maze - Fatal编程技术网

C++ 如何让机器人(由角色';X';表示)找到它';使用随机数生成的s通过迷宫的方式

C++ 如何让机器人(由角色';X';表示)找到它';使用随机数生成的s通过迷宫的方式,c++,maze,C++,Maze,我真的需要帮助。我正试图创造一个机器人来找到走出迷宫的路。我已经用一组字符创建了迷宫,但我真的不知道如何解决这个问题。我真的需要一些帮助。 我需要实现3个功能: •createMaze(字符迷宫[][列]、int列、int行)-初始化迷宫 •显示迷宫(字符迷宫[][列]、整数列、整数行)-显示迷宫和机器人 •机器人(字符迷宫[][列]、int lastColumn、int lastRow、int&nextColumn、int &下一步)–机器人进行随机移动 以下是我目前的代码: #include

我真的需要帮助。我正试图创造一个机器人来找到走出迷宫的路。我已经用一组字符创建了迷宫,但我真的不知道如何解决这个问题。我真的需要一些帮助。
我需要实现3个功能: •createMaze(字符迷宫[][列]、int列、int行)-初始化迷宫 •显示迷宫(字符迷宫[][列]、整数列、整数行)-显示迷宫和机器人 •机器人(字符迷宫[][列]、int lastColumn、int lastRow、int&nextColumn、int &下一步)–机器人进行随机移动

以下是我目前的代码:

#include <iostream>
#include <ctime>
#include <iomanip>
using namespace std;

 int main()
{
    char maze [10][10] =
    {   {'*','*','*','*','*','*','*','*','*','*',},
        {'*', ' ', ' ', ' ',' ', ' ',' ', ' ',' ', ' ',},
        {'*','*',' ','*','*','*','*',' ','*','*',},
        {'*','*',' ','*',' ','*','*',' ','*','*',},
        {'*','*',' ',' ','*','*','*',' ','*','*',},
        {'*','*',' ','*','*','*','*','*',' ','*',},
        {'*','*',' ',' ',' ','*',' ','*','*',' ',},
        {'*','*','*','*',' ','*','*','*','*','*',},
        {'*','*','*','*',' ','*','*','*','*',' ',},
        {'*','*','*','*',' ','*',' ',' ','*','*',}
    };

    for (int row  = 0; row < 10; row++)
    {
        for (int col = 0; col < 10; col++)
        {
            cout << maze[row][col];
        }
        cout << endl;
    }
    return 0;
}

cout << ================================= << endl;
/*

********** // robot enters from here
*         
** **** **
** * ** **
**  *** **
** ***** *
**   * **   
**** *****
**** **** 
**** *  **
// robot exits here

Program ended with exit code: 0
*/
#包括
#包括
#包括
使用名称空间std;
int main()
{
字符迷宫[10][10]=
{   {'*','*','*','*','*','*','*','*','*','*',},
{'*', ' ', ' ', ' ',' ', ' ',' ', ' ',' ', ' ',},
{'*','*',' ','*','*','*','*',' ','*','*',},
{'*','*',' ','*',' ','*','*',' ','*','*',},
{'*','*',' ',' ','*','*','*',' ','*','*',},
{'*','*',' ','*','*','*','*','*',' ','*',},
{'*','*',' ',' ',' ','*',' ','*','*',' ',},
{'*','*','*','*',' ','*','*','*','*','*',},
{'*','*','*','*',' ','*','*','*','*',' ',},
{'*','*','*','*',' ','*',' ',' ','*','*',}
};
对于(int行=0;行<10;行++)
{
for(int col=0;col<10;col++)
{

人们会说,始终沿着墙走,最终你会找到出路。我在我的代码中使用这种方式。从一开始就开始,并始终检查你周围的东西。选择一堵墙,左手边或右手边。让角色沿着墙走。它会找到出路。这就像你开始走路时把手滑到墙上一样你永远不会把手从墙上移开

例如,在下面的图片中,我放置了一个链接。打开链接,从起点开始,只沿着一堵墙走,左边的墙在起点或右边。你会找到出路。我尝试了一个机器人竞赛,就像我们在寻找房间一样,寻找一些东西。


你在这里的优势是知道迷宫的起始和结束位置。既然你知道这一点,你可以使用这里提到的A*搜索算法:

今年早些时候,我用它解决了Palo Alto Networks挑战赛中的一个迷宫问题,效果很好


我也尝试过随机行走,它可以解决迷宫问题,但是这种算法效率更高,因为你知道环境。

你能为你的问题提供更多的参数吗?是否有一个定义的入口/出口点…或者机器人也需要找到它?机器人能一次看到整个迷宫还是只看到4个POS它可以在任何给定的步骤上移动到什么方向?如果机器人使用它进入迷宫的同一入口离开迷宫是否可以?有一个算法在“夜间狗的奇怪事件”中详细介绍。参见