黑马程序员技术交流社区
标题: C语言的小迷宫游戏 [打印本页]
作者: 396944929 时间: 2015-1-5 23:02
标题: C语言的小迷宫游戏
本帖最后由 396944929 于 2015-1-5 23:02 编辑
#include <stdio.h>
#define M 6
#define N 6
int main(int argc, const char * argv[]) {
char a[M][N]={ {'#',' ','#','#','#','#'},
{'#',' ','#','#','#','#'},
{'#',' ','#',' ',' ',' '},
{'#',' ','#',' ','#','#'},
{'#',' ',' ',' ','#','#'},
{'#','#','#','#','#','#'},};
a[0][1]='0';
int x=0,y=1;
char i;
while (i!='q')
{
for (int i=0; i<M; i++)
{
for (int j=0; j<N;j++)
{
printf("%c",a[j]);
}
printf("\n");
}
switch (i=getchar())
{
case 'w':;
case 'W':
{
if(x!=0&&a[x-1][y]==' ')
{
char z;
z=a[x][y];
a[x][y]=a[x-1][y];
a[x-1][y]=z;
x--;
}
};break;
case 's':
case 'S':
{
if(x!=(M-1)&&a[x+1][y]==' ')
{
char z;
z=a[x][y];
a[x][y]=a[x+1][y];
a[x+1][y]=z;
x++;
}
};break;
case 'a':
case 'A':
{
if(y!=0&&a[x][y-1]==' ')
{
char z;
z=a[x][y];
a[x][y]=a[x][y-1];
a[x][y-1]=z;
y--;
}
};break;
case 'd':
case 'D':
{
if(y!=N-1&&a[x][y+1]==' ')
{
char z;
z=a[x][y];
a[x][y]=a[x][y+1];
a[x][y+1]=z;
y++;
}
};break;
case 'q':break;
}
printf("\n");
if (x==2&&y==5) {
printf("出来了!\n");
break;
}
}
}
这个是我写的迷宫游戏 里面涉及到了我们常用的while循环和switch选择判断和if语句~每个都不难 但是组合到一起就会产生意想不到的效果 感觉特别好 大家可以试试 while是一个死循环 用来让小人“0”在迷宫中移动。里面有一个switch来判断上下左右的。还有一个二维数组用来制作迷宫地图 大家有兴趣可以自己加地图 只要改上面的红定义M N的数组容量就可以了~通过判断你要走的方向是不是墙(#)来移动小人(0)然后一点点走出迷宫。移动就是让小人(0)和要走方向的路(‘ ’)互换数组位置就可以了,大家可以试试~ 不懂的问我哦
作者: 396944929 时间: 2015-1-5 23:02
本帖最后由 396944929 于 2015-1-5 23:01 编辑
很不错呢
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |