|  | 
 
| 
本帖最后由 yiwan 于 2016-5-17 15:22 编辑
x
马上注册,结交更多好友,享用更多功能^_^您需要 登录 才可以下载或查看,没有账号?立即注册  
 
 #include <stdio.h>
 #include <stdlib.h>
 #incluse <conio.h>
 
 #define H 10 //地图高
 #define W 10 //地图宽
 
 typedef struct
 {
 char person_x;
 char person_y;
 }BOY;
 
 int map[H][W]={0};
 
 void initmap(void); //初始化地图!
 void pmap(void);
 BOY person(void);  //当前人物位子!
 void move(BOY,char ch);    //移动坐标!
 
 int main()
 {
 char ch;
 initmap();
 pmap();
 
 while(1)
 {
 ch=getch();
 if(ch==27)
 {
 break;
 }
 while(ch=='a'&&ch=='s'&&ch=='d'&&ch=='w')
 {
 ch=getch();
 }
 move(person(),ch);
 pmap();
 }
 
 
 }
 
 void initmap(void)
 {
 int i,j;
 for(i=0;i<H;i++)
 {
 for(j=0;j<W;j++)
 {
 if(i==0||i==H-1||j==0||j==W-1)
 {
 map[i][j]=9;
 }
 else if(i==4&&j==5)
 {
 map[i][j]=5;
 }
 }
 }
 }
 
 void pmap()
 {
 int i,j;
 system("cls");
 for(i=0;i<H;i++)
 {
 
 for (j=0;j<W;j++)
 {
 if(map[i][j]==9)
 {
 printf("□");
 }
 else if(map[i][j]==0)
 {
 printf("  ");
 }
 else if(map[i][j]==5)
 {
 printf("♀");
 }
 }
 printf("\n");
 }
 
 }
 
 BOY person(void)
 {
 BOY son;
 int i,j;
 for(i=0;i<H;i++)
 {
 for(j=0;j<W;j++)
 {
 if(map[i][j]==5)
 {
 son.person_y=i;
 son.person_x=j;
 }
 }
 }
 return son;
 
 }
 
 void move(BOY boy,char ch)
 {
 BOY boy2=boy; //保存当前人物位置;
 map[boy.person_y][boy.person_x]=0;
 switch(ch)
 {
 case 'a':
 case 'A':boy.person_x-=1;break;
 case 's':
 case 'S':boy.person_y+=1;break;
 case 'd':
 case 'D':boy.person_x+=1;break;
 case 'w':
 case 'W':boy.person_y-=1;break;
 }
 
 if(map[boy.person_y][boy.person_x]==9) //撞墙检测
 {
 map[boy2.person_y][boy2.person_x]=5;
 }
 else
 {
 map[boy.person_y][boy.person_x]=5;
 }
 }
 | 
 |