本帖最后由 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)和要走方向的路(‘ ’)互换数组位置就可以了,大家可以试试~ 不懂的问我哦
|