2017-09-15 84 views
-4

我真的需要帮助。我正在尝试创建一个机器人,以发现它走出迷宫的方式。我已经使用一系列角色创建了迷宫,但我实际上不知道如何解决这个问题。我真的很喜欢一些帮助。
我需要实现3个函数: •createMaze(char maze [] [columns],int columns,int rows) - 初始化您的迷宫•showMaze(char迷宫[] [列],int列,int行) - 显示迷宫机器人 •机器人(焦迷宫[] [列],INT lastColumn,诠释LASTROW,INT & nextColumn,诠释 & nextRow) - 机器人做随机移动我该如何制作一个机器人(用字符'X'表示),通过使用随机数生成的迷宫方式找到它

这里是我到目前为止的代码:

#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 
*/ 
+0

你能提供一些更多的参数给你的问题吗?是否有确定的入口/出口点?还是机器人需要找到?机器人能够立即看到整个迷宫吗?或者只有它可以在任何给定步骤中移动的4个可能方向?如果机器人使用进入迷宫的相同入口退出迷宫,那么可以吗? – MikeMayer67

+0

在“夜间狗的好奇事件”中有详细的算法。请参阅https://en.wikipedia.org/wiki/The_Curious_Incident_of_the_Dog_in_the_Night-Time – Bathsheba

回答

1

人们说永远跟着墙,最终你会发现t他走出去。我曾经在我的代码中使用这种方式。从头开始,始终检查你周围的事物。选择左侧或右侧的墙。让角色跟随墙壁。它会找到一条出路。这就像你开始走路一样,把手放在墙上,你永远不会把手从墙上拿开。

例如在下面的图片中,我把一个链接。打开链接并从起始点开始,只在左边的墙上开始或右侧。你会找到出路。我试图进行机器人竞赛,就像我们正在寻找房间来寻找东西。 https://mathjokes4mathyfolks.files.wordpress.com/2011/09/maze.png

enter image description here