2017-09-15 85 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