|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 yiwan 于 2016-5-17 15:22 编辑
#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;
}
} |
|