C,
pasted
on Sep 23:
|
#include <stdio.h>
#include <inttypes.h>
int aradius = 2;
int main()
{
int i;
int j;
int amax = 10;
int ax[10];
int ay[10];
int bx[10];
int by[10];
int cx[10];
int cy[10];
int cnt = 0;
for(i=0; i<amax; i++)
{
ax[i] = 0;
ay[i] = 0;
bx[i] = 0;
by[i] = 0;
cx[i] = 0;
cy[i] = 0;
}
ax[2] = 1;
ay[3] = 1;
bx[6] = 1;
by[8] = 1;
//a와 b에 1이 있는지 확인
for(i=0; i<amax; i++)
{
for(j=0; j<amax; j++)
{
if((ax[i] == 1) && (ay[j] == 1) || (bx[i] == 1) && (by[j] == 1) )
{
printf("1");
cx[cnt] = i;
cy[cnt] = j;
cnt++;
}
else
{
printf("0");
}
}
printf("\n");
}
printf("-----------------------\n");
//확인된 a와 b 에 위치
for(i=0; i<10; i++)
{
printf("cx:%d cy:%d\n", cx[i], cy[i]);
}
//cx:2 cy:3
//cx:6 cy:8
printf("-----------------------\n");
//b영역 안에. a영역이 있는지 확인
int i2;
int j2;
int c2;
for(c2=0; c2<10; c2++)
{
if((cx[c2] == 0) && (cy[c2] == 0))
{
break;
}
for(i2=-aradius+cx[c2]; i2<aradius+cx[c2]; i2++)
{
for(j2=-aradius+cy[c2]; j2<aradius+cy[c2]; j2++)
{
if(i2<0) continue;
if(i2>=amax) continue;
if(j2<0) continue;
if(j2>=amax) continue;
printf("[%d,%d]", i2, j2);
if((ax[i2] == 1) && (ay[j2] == 1) || (bx[i2] == 1) && (by[j2] == 1) )
{
if((cx[i2] == ax[i2]) && (cy[j2] == ay[j2]))
{
printf("A ");
continue;
}
else if((cx[i2] == bx[i2]) && (cy[j2] == by[j2]))
{
printf("B ");
continue;
}
else
{
printf("1 ");
}
// printf("%d,%d %d,%d %d,%d \n", ax[i2], ay[j2], bx[i2], by[j2], i2, j2);
}
else
{
printf("0 ");
}
}
printf("\n");
}
printf("------------------\n");
}
return 0;
}
|
Output:
|
0000000000
0000000000
0001000000
0000000000
0000000000
0000000000
0000000010
0000000000
0000000000
0000000000
-----------------------
cx:2 cy:3
cx:6 cy:8
cx:0 cy:0
cx:0 cy:0
cx:0 cy:0
cx:0 cy:0
cx:0 cy:0
cx:0 cy:0
cx:0 cy:0
cx:0 cy:0
-----------------------
[0,1]0 [0,2]0 [0,3]0 [0,4]0
[1,1]0 [1,2]0 [1,3]0 [1,4]0
[2,1]0 [2,2]0 [2,3]B [2,4]0
[3,1]0 [3,2]0 [3,3]0 [3,4]0
------------------
[4,6]0 [4,7]0 [4,8]0 [4,9]0
[5,6]0 [5,7]0 [5,8]0 [5,9]0
[6,6]0 [6,7]0 [6,8]A [6,9]0
[7,6]0 [7,7]0 [7,8]0 [7,9]0
------------------
|
|