三九宝宝网宝宝教育教学论文

用C语言迷宫求解

12月22日 编辑 39baobao.com

[迷宫大发现]活动名称:益智活动《迷宫大发现》 活动目标:1.参照自己设计的迷宫图,搭建迷宫,在游戏中发现问题,修改完善设计图,增加游戏趣味性。 2.鼓励幼儿大胆表达,操作,交流,感受合作游戏的快乐...+阅读

给一个比较简短的程序:

#include "stdlib.h"

#include

#include

#define M 10

#define N 10

void ShowMaze(char m[M+2][N+3])

{ int i,j;

char fx[4][3]={ "←","↑","→","↓" };

for ( i=0;i

for ( j=0;j

if ( m[i][j]=='#' ) printf(" ");

else if ( m[i][j]>='a' & m[i][j]<='d' ) printf("%s",fx[m[i][j]-'a']);

else if ( m[i][j]=='0' ) printf(" ");

else if ( m[i][j]=='1' ) printf("■");

else if ( m[i][j]=='' ) printf("○");

else if ( m[i][j]=='*' ) printf("◎");

}

void main()

{ int dir[4][2]={ {-1,0},{0,-1},{1,0},{0,1} };

char m[M+2][N+3]=

{ "############",

"#1111111111#",

"#001000101#",

"#1101000101#",

"#1000011001#",

"#1011100001#",

"#100010000*#",

"#1010001001#",

"#1011101101#",

"#1100000001#",

"#1111111111#",

"############"

};

int i,j,k,xx,yy;

int x,y,d,f;

ShowMaze(m);

for ( i=0;i

for ( i=0;i<4;i++ ) { xx=x+dir[i][0]; yy=y+dir[i][1]; if ( m[yy][xx]=='0' ) { d=i; break; } }

f=0; x=xx; y=yy; d--; if ( d<0 ) d=3;

while ( 1 )

{ xx=x+dir[d][0]; yy=y+dir[d][1];

if ( m[yy][xx]=='*' ) { m[y][x]=d+'a'; f=1; break; }

else if ( m[yy][xx]=='' ) break;

else if ( m[yy][xx]>='a' ) { d=m[yy][xx]-'a'; d++; d%=4; m[y][x]='0'; x=xx; y=yy; }

else if ( m[yy][xx]=='0' ) { m[y][x]=d+'a'; d--; if ( d<0 ) d=3; x=xx; y=yy; }

else if ( m[yy][xx]=='1' ) { d++; d%=4; }

}

printf("----------------------\n"); ShowMaze(m);

}

以下为关联文档:

用C语言编一个迷宫程序-# --------### # ## # # ### ----# # #-## # # # #### #### # ## ## #-# ## # # # #---# ## # ## # # # # -# ### ## #### ## # # ----# # # ## # # # ## ### ## -# --# --...

c语言迷宫问题问题出在MazePath内部的e是一个局部变量,并且随着while循环其内容不断变化。保存一个局部变量的地址是没有意义的,函数返回后就被清除。解决的办法是动态分配QElemType类型的...

用C语言编写迷宫问题1995年第十二届IOCCC获奖作品,由葡萄牙的Carlos Duarte先生所编写。评委们评论说: This could be used as the basis of an a-maze-ing screen exerciser. 以下是作者本人对程...

迷宫问题 C语言#include<stdio.h>int main(void){ int maze[100][100]; int MAZE[100][100]; int m,n; int p,q; printf("输入迷宫的行数m,列数n:\n"); scanf("%d%d",&m,&n); for(p=0;p<=n+1;p++)...

关于c语言迷宫问题首先实现一个以链表作存储结构的栈类型,然后编写一个求解迷宫的非递归程序。求得的通路以三元组(i,j,d)的形式输出,其中:(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向。如:对...

推荐阅读
图文推荐