怎样做编程迷宫藏宝图,怎样制造藏宝图

1 , 怎样制造藏宝图你制造的是藏宝图 而不是高级藏宝图藏宝图是用藏宝图碎片来制造的你只有5个当然不够高级藏宝图碎片是制造高级藏宝图的高级藏宝图要2级制造屋才能制造 买个羊皮卷,上面用深色记号笔画画!~~记得弄破烂点 。【怎样做编程迷宫藏宝图,怎样制造藏宝图】
2 , 关于计算机C编程的迷宫问题的解题思路/*走通用迷宫问题的思路是:从给定的任意一个起点开始,向各个方向都有走动的可能,按照一定的顺序进行 。判断如果该方向上能走,(能走要是:不是以前走过的地方 , 不是墙壁,不是地图之外)就走这一步,然后记录下这一步 。如果不能走,就换下一个方向 , 如果能走就继续下一步 。各个方向都不能走,说明到了死路,这时候就返回上一步去走下一个方向 。如此继续 。每走动一步都要检测是不是到达目标了,如果到达就输出结果 。如果不能走到目标,返回到最除起点也不能走了,说明无解 。我的示意程序如下:*//*地图路径求解程序,用VC++编写的,*/#include<stdio.h>#include<stdlib.h>#defineROW9/*定义行数*/#defineCOL13/*定义列数*/typedefstructRowAndColPathintr;intc;}RowAndColPath;/*定义结构体实现走步过程的记录*/intMove[4][2]=RowAndColPathpath[ROW*COL];/*走动过程的记录*/boolResultFlag=false;/*找到解的标志*/boolGettingPath(intstep,intCurrentRow,intCurrentCol,intResultRow,intResultCol,intMapWay[][COL]);/*递归求解方法*/voidmain()intMapWay[ROW][COL]=intCurrentRow=1,CurrentCol=0,ResultRow=0,ResultCol=8;/*定义初始和结束位置*/path[0].r=CurrentRow;path[0].c=CurrentCol;/*初始位置进入历史的第一步*/if(GettingPath(1,CurrentRow,CurrentCol,ResultRow,ResultCol,MapWay))/*如果走动成功*/printf("恭喜!查找成功!\n");elseprintf("抱歉,查找失败!\n");}boolGettingPath(intstep,intCurrentRow,intCurrentCol,intResultRow,intResultCol,intMapWay[][COL])inti,j;for(i=0;i<4;i++)/*依次对4个方向搜索*/if(ResultFlag)returntrue;CurrentRow+=Move[i][0];CurrentCol+=Move[i][1];/*先按该方向前进一步*/if((CurrentRow>=0)&&(CurrentRow<ROW)&&(CurrentCol>=0)&&(CurrentRow<COL))/*如果还在地图内部*/if(MapWay[CurrentRow][CurrentCol]==0)/*下一步可以走*/for(j=0;j<step;j++)/*判断是不是重复了以前走过的路*/if((path[j].r==CurrentRow)&&(path[j].c==CurrentCol))break;}if(j==step)/*如果没有走过这个点,就走*/path[step].r=CurrentRow;path[step].c=CurrentCol;/*计入该步*/step++;if((CurrentRow==ResultRow)&&(CurrentCol==ResultCol))/*如果已到达目的地*/ResultFlag=true;printf("路径如下:\n\n");for(j=0;j<step;j++)printf("第%d步:\t%d\t%d\n",j,path[j].r,path[j].c);returntrue;}elseif(step>=ROW*COL)/*如果已经走遍了地图,就宣布失败*/return0;if(!ResultFlag)GettingPath(step,CurrentRow,CurrentCol,ResultRow,ResultCol,MapWay);/*没有到达目的,继续走*/}}else/*如果已经走过这一点,退回去*/CurrentRow-=Move[i][0];CurrentCol-=Move[i][1];;}}else/*如果该点不可走,退回去*/CurrentRow-=Move[i][0];CurrentCol-=Move[i][1];;}}else/*如果该步出地图了,退回去*/CurrentRow-=Move[i][0];CurrentCol-=Move[i][1];;}}if(ResultFlag)returntrue;returnfalse;/*无路可走*/}
3,谁能用C语言做个迷宫游戏if(key==LEFT&&(a[x-1][y-2]==1||a[x-1][y-2]==2))/*判断左走是否撞墙*/y--;if(key==RIGHT&&(a[x-1][y]==1||a[x-1][y]==2))判断右走是否撞墙y++;if(key==UPPER&&(a[x-2][y-1]==1||a[x-2][y-1]==2))判断上走x--;if(key==DOWN&&(a[x][y-1]==1||a[x][y-1]==2))判断下走x++;if(x==20&&y==1){break;}你的出口坐标
4 , 数据结构与算法作业用C语言编程随机生成一个迷宫然后找出从入口到出#include <stdio.h>#include <stdlib.h>#include <time.h>#include <memory.h>/* define the size of maze */#define MAX_COL 6#define MAX_ROW 6#define TRUE 1#define FALSE 0#define IS_USABLE(a, b) (a >= 0 && a < MAX_ROW) && (b >= 0 && b < MAX_COL) && maze[a][b] && (!my_maze[a][b])static int maze[MAX_ROW][MAX_COL];static int target_maze[MAX_ROW][MAX_COL];static void init_maze();static int move_to(int i, int j, int (*maze)[MAX_COL], int count);static void print_maze(int (*maze)[MAX_COL]);static void init_maze() int i, j; srand((unsigned) time(NULL)); for (i = 0; i < MAX_ROW; i++)for(j = 0; j < MAX_COL; j++)maze[i][j] = (int) (rand() % 2);} maze[1][0] = 1; /* start point */ maze[MAX_ROW - 1][MAX_COL - 2] = 1; /* end point */}static int move_to(int _i,int _j, int (*in_maze)[MAX_COL], int count)int my_maze[MAX_ROW][MAX_COL], i, j;if (!in_maze)for (i = 0; i < MAX_ROW; i++)for(j = 0; j < MAX_COL; j++)my_maze[i][j] = 0;}} elsefor (i = 0; i < MAX_ROW; i++)for(j = 0; j < MAX_COL; j++)my_maze[i][j] = in_maze[i][j];}} my_maze[_i][_j] = count; /* reach the end point */ if (_i == MAX_ROW - 1 && _j == MAX_COL - 2)for (i = 0; i < MAX_ROW; i++)for(j = 0; j < MAX_COL; j++)target_maze[i][j] = my_maze[i][j];}return TRUE; } if (IS_USABLE(_i - 1, _j))if (move_to(_i - 1, _j, my_maze, count + 1))return TRUE; } if (IS_USABLE(_i + 1, _j))if (move_to(_i + 1, _j, my_maze, count + 1))return TRUE; }if (IS_USABLE(_i, _j - 1))if (move_to(_i, _j - 1, my_maze, count + 1))return TRUE; }if (IS_USABLE(_i, _j + 1))if (move_to(_i, _j + 1, my_maze, count + 1))return TRUE; } return FALSE;}static void print_maze(int (*maze)[MAX_COL])int i, j; for (i = 0; i < MAX_ROW; i++)for(j = 0; j < MAX_COL; j++)if (maze[i][j] != 0)printf("%d ", maze[i][j]);elseprintf("");}printf("\n"); }}int main() while(1)init_maze();printf("Out put the maze :\n");print_maze(maze);if (move_to(1, 0, NULL, 1))printf("Out put the path :\n");print_maze(target_maze);break;} elseprintf("No way!\n");} }}VC60下正常运行5,C语言写一个迷宫代码#include using namespace std; #define M 4 #define N 4 #define maxSize 100 int mg[M+2][N+2]={ {1,1,1,1,1,1}, {1,0,0,0,1,1}, {1,0,1,0,0,1}, {1,0,0,0,1,1}, {1,1,0,0,0,1}, {1,1,1,1,1,1}, }; struct { int x; int y; int direction; }stack[maxSize],path[maxSize]; void mgpath(); void main() { printf("all the path as show: \n"); mgpath(); } void mgpath() { int top=0; int count=1; int i,j,k,find,di; stack[top].x=1; stack[top].y=1; stack[top].direction=-1; mg[1][1]=-1; while(top>-1) { i=stack[top].x; j=stack[top].y; di=stack[top].direction; if(i==M &&j==N) { cout<<<": "; for(k=0;k<=top;k++) { cout<<"("<<<","<<<")"; if((k+1)%5==0) cout<一点 也不懂

    推荐阅读