미로 찾기 게임을 만들었는데 함 봐주세요^^
김자영
질문 제목 : 미로 찾기 게임을 만들었는데 함 봐주세요^^게임을 만들었는데 최대한 코딩한 걸 줄여볼려고 하는데 함 봐주세요질문 내용 : 게임은 자기가 지나간 곳을 1로 남기고 현재 있는 위치를 2로 남깁니다 그래서 배열에 모두 1을 남기고 3에 들어 갈시
성공하는거고요 벽에 붙이치거나 배열 전체를 1로 안 만들시 실패하는 게임입니다.
#includestdio.h
#includeconio.h
#includewindows.h
void keyboad(int (*way)[11]);
void wall(int (*way)[11]);
int way[11][11]={0};
char a;
void goal(int (*way)[11]);
#define left 75
#define right 77
#define up 80
#define down 72
void fail(int (*way)[11]);
int main()
{
wall(way); //벽 입력
goal(way);
for(int i=0;i11;i++)
{
for(int j=0;j11;j++)
{
printf(%d,way[i][j]);
}
printf(\n);
}
keyboad(way); //방향키return 0;
}void wall(int (*way)[11])
{
for(int i=0;i11;i++)
{
way[0][i]=1;
way[i][0]=1;
way[10][i]=1;
way[i][10]=1;
}
}
void goal(int (*way)[11])
{
way[6][3]=3;
way[7][4]=1;
way[7][3]=1;
way[7][2]=1;
way[6][2]=1;
way[6][4]=1;
}
void keyboad(int (*way)[11])
{
int x=1,y=1;
while(1)
{
a=getch();
if(left==a)
{
way[x][y]=1;
system(cls);
y--;
if(way[x][y]==1)
{
printf(벽에 닿아서 실패했습니다);
break;
}
else if(way[x][y]==3)
{
way[x][y]==1;
fail(way);
break;
}
way[x][y]=2;
for(int i=0;i11;i++)
{
for(int j=0;j11;j++)
{
printf(%d,way[i][j]);
}
printf(\n);
}
}
else if(right==a)
{
way[x][y]=1;
system(cls);
y++;
if(way[x][y]==1)
{
printf(벽에 닿아서 실패했습니다\n);
break;
}
else if(way[x][y]==3)
{
way[x][y]==1;
fail(way);
break;
}
way[x][y]=2;
for(int i=0;i11;i++)
{
for(int j=0;j11;j++)
{
printf(%d,way[i][j]);
}
printf(\n);
}
}
else if(up==a)
{
way[x][y]=1;
system(cls);
x++;
if(way[x][y]==1)
{
printf(벽에 닿아서 실패했습니다\n);
break;
}
else if(way[x][y]==3)
{
way[x][y]==1;
fail(way);
break;
}
way[x][y]=2;
for(int i=0;i11;i++)
{
for(int j=0;j11;j++)
{
printf(%d,way[i][j]);
}
printf(\n);
}
}
else if(down==a)
{
way[x][y]=1;
1;
system(cls);
x--;
if(way[x][y]==1)
{
printf(벽에 닿아서 실패했습니다\n);
break;
}
else if(way[x][y]==3)
{
way[x][y]==1;
fail(way);
break;
}
way[x][y]=2;
for(int i=0;i11;i++)
{
for(int j=0;j11;j++)
{
printf(%d,way[i][j]);
}
printf(\n);
}
}
}
}
void fail(int (*way)[11])
{
int tot=0;
for(int i=0;i11;i++)
{
for(int j=0;j11;j++)
{
//way[i][j]=1; // 전체 배열이 통과할시 성공인지를 증명
if(way[i][j]!=1)
{
tot+=1;
}
}
}
if(tot==0)
{
printf(성공입니다\n);
}
else
{
printf(골인은 했지만 안 밟은 곳이 있어서 실패입니다\n);
}
}