#include <stdio.h> int main() { int key; key = getch();
while( key != 27 ) //键入值不为 ESC {
printf("%d\\n", key); key = getch(); } }
继续看看 paint 函数 函数如下
void paint(int x,int y) //画迷宫 {
gotoxy(2*y-2,x-1); switch(map[x][y]) { case Start:
printf("入");break; //画入口
case End:
printf("出");break; //画出口 case Wall:
printf("※");break; //画墙 case Road:
printf(" ");break; //画路 } } 这
个函数实际上比较容易理解,他首先将光标指向入口,然后在main函数中遍历整个map数组,画出地图 。也可以不用 入 出 ※ 空格 这些来做地图 比如改一下
switch(map[x][y]) { case Start:
printf("1");break; //画入口 case End:
printf("2");break; //画出口
case Wall:
printf("3");break; //画墙 case Road:
printf("4");break; //画路 }
然后就应该能理解了这部分是怎么做到的
接下来我们看最后一个函数void game() //游戏相关操作
void game() {
int x=2,y=1; //玩家当前位置,刚开始在入口处 int c; //用来接收按键 while(1) {
gotoxy(2*y-2,x-1); //这里的含义是到达入口处 printf("☆"); //画出玩家当前位置 if(map[x][y]==End) //判断是否到达出口 {
gotoxy(30,24);
printf("到达终点,按任意键结束"); getch();
break; }
c=get_key(); if(c==Esc) {
gotoxy(0,24); break; } switch(c) {
case Up: //向上走 if(map[x-1][y]!=Wall) { paint(x,y); x--; } break;
case Down: //向下走 if(map[x+1][y]!=Wall) { paint(x,y); x++;
} break;
case Left: //向左走 if(map[x][y-1]!=Wall) { paint(x,y); y--; } break;
case Right: //向右走 if(map[x][y+1]!=Wall) { paint(x,y); y++; } break; } } }
事实上这个函数也不是很难理解 所有函数除了算法部分都不难理解,就看用不用心去读代码了
就像注释那样, gotoxy(2*y-2,x-1); 到达入口处 用☆当玩家,然后先