資源簡介
程序開始運行時顯示一個迷宮地圖,迷宮中央有一只老鼠,迷宮的右下方有一個糧倉。游戲的任務(wù)是使用鍵盤上的方向鍵操縱老鼠在規(guī)定的時間內(nèi)走到糧倉處。 要求: ①老鼠形象可辨認(rèn),可用鍵盤操縱老鼠上下左右移動; ②迷宮的墻足夠結(jié)實,老鼠不能穿墻而過; ③正確檢測結(jié)果,若老鼠在規(guī)定時間內(nèi)走到糧倉處,提示成功,否則提示失敗; ④添加編輯迷宮功能,可修改當(dāng)前迷宮,修改內(nèi)容:墻變路、路變墻; ⑤找出走出迷宮的所有路徑,以及最短路徑。 利用序列化功能實現(xiàn)迷宮地圖文件的存盤和讀出等功能
代碼片段和文件信息
#include
#include
#define?N?39
#define?M?39
int?X;
int?maze[N+2][M+2];
struct?point{
int?rowcolpredecessor;
}queue[512];
int?head=0tail=0;
void?shoudong_maze(int?mint?n){
int?ij;
printf(“\n\n“);
printf(“請按行輸入迷宮,0表示通路,1表示障礙:\n\n“);
for(i=0;i for(j=0;j scanf(“%d“&maze[i][j]);
}
void?zidong_maze(int?mint?n){
int?ij;
printf(“\n迷宮生成中……\n\n“);
system(“pause“);
for(i=0;i for(j=0;j maze[i][j]=rand()%2;
//由于rand()產(chǎn)生的隨機(jī)數(shù)是從0到RAND_MAX
//RAND_MAX是定義在stdlib.h中的其值至少為32767)
//要產(chǎn)生從X到Y(jié)的數(shù)只需要這樣寫:k=rand()%(Y-X+1)+X;?
}
void?print_maze(int?mint?n){
int?ij;
printf(“\n迷宮生成結(jié)果如下:\n\n“);
printf(“迷宮入口\n“);
printf(“↓“);
for(i=0;i {
printf(“\n“);
for(j=0;j {
if(maze[i][j]==0)?printf(“□“);
if(maze[i][j]==1)?printf(“■“);}
}
printf(“→迷宮出口\n“);
}
void?result_maze(int?mint?n){
int?ij;
printf(“迷宮通路(用“鼠”表示)如下所示:\n\t“);
for(i=0;i {
printf(“\n“);
fo
評論
共有 條評論