내일까지 소스분석끝내야돼는데.. 제발 도와주세요ㅠㅠㅠ
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<conio.h>
void openning();
int input();
void main()
{
printf("▒ ────────━━━지뢰찾기 ━━━──────── \\n");
//─ 맵의 길이와 지뢰의 갯수 입력s -────────────────
int len,c;
printf("\\n 맵?의 길이를 입력해주세요.(7~20)");
scanf("%d",&len);
while(len>20||len<7)
{
if(len>20)
printf(" - 너무 큰 값을 입력하셨습니다. \\n - 더 작은 ");
else if (len<7)
printf(" - 너무 작은 값을 입력하셨습니다. \\n - 더 큰 ");
printf("값을 입력해 주세요. (7~20)");
scanf("%d",&len);
}
printf("\\n 지뢰의 갯수를 입력해주세요.(%d~%d)",len*len/7,len*len/4);
scanf("%d",&c);
while(c>len*len/4||c<len*len/7)
{
if(c>len*len/4)
printf(" - 너무 큰 값을 입력하셨습니다. \\n - 더 작은 ");
else if (c<len*len/7)
printf(" - 너무 작은 값을 입력하셨습니다. \\n - 더 큰 ");
printf("값을 입력해 주세요.(%d~%d)",len*len/7,len*len/4);
scanf("%d",&c);
}
//─ 맵의 길이와 지뢰의 갯수 입력e -────────────────
//─ 맵만들기s -──────────────────────────
int map[22][22], map2[22][22], r1, r2,c_c=0,i,j,i1,j1,c_c2=0,c_c3=c,c_c4=len*len , cx=1,cy=1, ic, k, l,a=0;
for(i=0;i<22;i++)
{
for(j=0;j<22;j++)
{
map[i][j]=0;
}
}
srand(time(NULL));
while(c>c_c)
{
r1=rand()%len+1;
r2=rand()%len+1;
if(map[r1][r2]==0)
{
map[r1][r2]=9;
c_c++;
}
}
for(i=0;i<22;i++)
{
for(j=0;j<22;j++)
{
map2[i][j]=10;
}
}
for(i=1;i<len+2;i++)
{
for(j=1;j<len+2;j++)
{
for(i1=-1;i1<2;i1++)
{
for(j1=-1;j1<2;j1++)
{
if(map[i+i1][j+j1]==9&&map[i][j]!=9)
{
map[i][j]++;
}
}
}
}
}
//─ 맵만들기e -──────────────────────────
//─ 맵보여주기s ──────────────────────────
while(1)
{
system("cls");
printf("▒ 어설픈 지뢰찾기. v-3.1 ━━━──────── \\n\\n");
printf(" 남은 표식 : %d \\n ", c_c3);
for(i=1;i<len+1;i++)
printf("%2d",i);
printf("\\n");
a=0;
while(a<=len)
{ a++;
for(i=1;i<len+1;i++)
{
for(j=1;j<len+1;j++)
{
for(k=-1;k<=1;k++)
{
for(l=-1;l<=1;l++)
{
if(map2[i+k][j+l]<10&&map[i+k][j+l]==0&&map[i][j]!=9&&map[i][j]!=map2[i][j])
{
map2[i][j]=map[i][j];
c_c4--;
}
}
}
}
}
}
for(i=1;i<len+1;i++)
{
printf("%5d",i);
for(j=1;j<len+1;j++)
{
if(i==cx&&j==cy)
printf("■");
else
{
if(map2[i][j]==10)
printf("□");
else if(map2[i][j]==11)
printf("☞");
else
printf("%2d",map2[i][j]);
}
}
printf("\\n");
}
printf("\\n━━━━━━━━━━━───────────── \\n\\n");
printf("\\n 방향키를 움직여 \'■\'를 움직여주세요.\\n");
printf(" \'■\'표시가 있는곳이 깃발을 세울려면 End키를,\\n");
printf(" 탐색을 하려면 Home 키를 눌러주세요.\\n");
if (c_c4==c)
{
system("cls");
printf("▒ 어설픈 지뢰찾기. v-3.1 ━━━──────── \\n\\n");
printf(" 게임 클리어^^\\n");
printf(" - 성공하셨습니다. 축하드립니다.\\n\\n\\n\\n");
printf("━━━━━━━━━━━───────────── \\n\\n");
break;
}else
{
ic=getch();
if (ic==72&&cx>1)
cx--;
else if (ic==80&&cx<len)
cx++;
else if (ic==75&&cy>1)
cy--;
else if (ic==77&&cy<len)
cy++;
//─ 맵보여주기e ──────────────────────────
//─ 지뢰찾기s ──────────────────────────
else if(ic==71)
{
if(map[cx][cy]==9&&map2[cx][cy]!=11)
{
system("cls");
printf("▒ 어설픈 지뢰찾기. v-3.1 ━━━──────── \\n\\n");
printf(" 지뢰를 건드리셨습니다.\\n");
//─ 정답공개s ──────────────────────────
printf(" ", c_c3);
for(i=1;i<len+1;i++)
printf("%2d",i);
printf("\\n");
for(i=1;i<len+1;i++)
{
printf("%5d",i);
for(j=1;j<len+1;j++)
{
if(map[i][j]==9)
printf("◎");
else
printf("%2d",map[i][j]);
}
printf("\\n");
}
printf("\\n━━━━━━━━━━━────── by GomgurY. ── \\n\\n");
break;
}
else if(map2[cx][cy]!=11&&map2[cx][cy]==10)
{
if(map[cx][cy]==0)
{
for(i=-1;i<=1;i++)
{
for(j=-1;j<=1;j++)
{
if(map2[cx+i][cy+j]==10)
{
map2[cx+i][cy+j]=map[cx+i][cy+j];
if(cx+i>=1&&cy+j>=1&&cx+i<=len&&cy+j<=len)
c_c4--;
}
}
}
}
else
{
map2[cx][cy]=map[cx][cy];
c_c4--;
}
}
}
else if(ic==79)
{
if((map2[cx][cy]==10||map2[cx][cy]==9)&&c_c3>0)
{
map2[cx][cy]=11;
c_c3--;
}
else if(map2[cx][cy]==11)
{
map2[cx][cy]=10;
c_c3++;
}
}
//─ 지뢰찾기e ──────────────────────────
}
}
printf("\\n\\n");
system("pause");
}
댓글 영역
획득법
① NFT 발행
작성한 게시물을 NFT로 발행하면 일주일 동안 사용할 수 있습니다. (최초 1회)
② NFT 구매
다른 이용자의 NFT를 구매하면 한 달 동안 사용할 수 있습니다. (구매 시마다 갱신)
사용법
디시콘에서지갑연결시 바로 사용 가능합니다.