2008年12月4日 星期四

2008hw13

當上一次知道這一次要做的是企劃書

說真的 我不知道要做什麼欸

不過 資料結構有個功課是 老鼠走迷宮!!!

我一直做不出來 我想我的企畫書就用這個吧

希望能在期末的時候 做出來

就當作是一個里程碑吧(目標)

啊!! 傳聞說...老鼠走迷宮 需要 一張迷宮圖

這個很簡單 我會做 用幾個陣列~ 輕鬆解決

剩下的我就需要去請教會的人了

希望期末的時候 能做出 老鼠走迷宮

至少讓我的大二上有個收穫!!

加油吧!!! 大家一起加油~

以下是我找到的資料:
#include
using namespace std;
void visit(int, int);
int maze[9][9] = {
{1, 1, 1, 1, 1, 1, 1, 1, 1},
{1, 0, 0, 0, 0, 0, 0, 0, 1},
{1, 0, 1, 1, 0, 1, 1, 0, 1},
{1, 0, 1, 0, 0, 1, 0, 0, 1},
{1, 0, 1, 0, 1, 0, 1, 0, 1},
{1, 0, 0, 0, 0, 0, 1, 0, 1},
{1, 1, 0, 1, 1, 0, 1, 1, 1},
{1, 0, 0, 0, 0, 0, 0, 0, 1},
{1, 1, 1, 1, 1, 1, 1, 1, 1}
};
int startI = 1, startJ = 1;
int endI = 7, endJ = 7;
int main(void) {
int i, j;
cout << "顯示迷宮:" << endl;
for(i = 0; i < 9; i++) {
for(j = 0; j < 9; j++)
if(maze[i][j] == 1)
cout << "█";
else
cout << " ";
cout << endl;
}
visit(startI, startJ);
system("pause");
return 0;
}
void visit(int i, int j)
{
int m, n;
maze[i][j] = 2;
if(i == endI && j == endJ)
{
cout << endl << "顯示路徑:" << endl;
for(m = 0; m < 9; m++)
{
for(n = 0; n < 9; n++)
if(maze[m][n] == 1)
cout << "█";
else
if(maze[m][n] == 2)
cout << "◇";
else
cout << " ";
cout << endl;
}
}
if(maze[i][j+1] == 0) visit(i, j+1);
if(maze[i+1][j] == 0) visit(i+1, j);
if(maze[i][j-1] == 0) visit(i, j-1);
if(maze[i-1][j] == 0) visit(i-1, j);
maze[i][j] = 0;
}

沒有留言:

張貼留言