조회 수 1343 추천 수 0 댓글 0

#include <stdio.h>

int om[19][19];
int win, win_x, win_y;

void scan(void); //입력 받는 함수
void search(void); //승패를 판단하는 함수
int go(int x, int y); //가로 세로 대각선 판단
int main(void)
{
	//검은색이 이겼을 경우 1, 흰색이 이겼을 경우 2

	scan();
	search();

	printf("%d\n", win);
	if(win!=0)
		printf("%d %d", win_x, win_y);

	return 0;
}
void scan(void)
{
	int i, j;

	for(i=0; i<19; i++)
	{
		for(j=0; j<19; j++)
			scanf(" %d", &om[i][j]);
	}
}
void search(void)
{
	int i, j, a;

	for(i=0; i<19; i++)
	{
		for(j=0; j<19; j++)
		{
			if(i>14 && j>14)
				break;

			else if(om[i][j]!=0)
			{
				a=go(i, j);

				if(a!=0)
				{
					win=a;
					win_x=i+1;
					win_y=j+1;
					break;
				}
			}
		}
	}
}
int go(int x, int y)
{
	int i, j, h, a=0;
	h=om[x][y]; //흰색 혹은 검은색 

	for(i=x+1; i<=(x+5) && i<19; i++) //세로줄 판단 
	{
		if(om[i][y]!=h) //같은 색의 바둑돌이 놓여있지 않을 경우
			break;

		a++;
	}
	if(a==4) //5개의 바둑알이 된 경우
	{
		if(om[x-1][y]!=h) //여섯알이 아닌 경우
			return h;
	}

	a=0;
	for(j=y+1; j<=(y+5) && j<19; j++) //가로줄 판단
	{
		if(om[x][j]!=h) //같은 색의 바둑돌이 놓여있지 않을 경우
			break;

		a++;
	}
	if(a==4) //5개의 바둑알이 된 경우
	{
		if(om[x][y-1]!=h) //여섯알이 아닌 경우
			return h;
	}

	a=0;
	for(i=x+1, j=y+1; i<=(x+5) && i<19 && j<19; i++, j++) //오른쪽 아래 방향 대각선 판단 
	{
		if(om[i][j]!=h) //같은 색의 바둑돌이 놓여있지 않을 경우
			break;

		a++;
	}
	if(a==4) //5개의 바둑알이 된 경우
	{
		if(om[x-1][y-1]!=h) //여섯알이 아닌 경우 
			return h;
	}

	a=0;
	for(i=x-1, j=y+1; i>=(x-5) && i>=0 && j<19; i--, j++) //오른쪽 위 방향 대각선 판단 
	{
		if(om[i][j]!=h) //같은 색의 바둑돌이 놓여있지 않을 경우
			break;

		a++;
	}
	if(a==4) //5개의 바둑알이 된 경우
	{
		if(om[x+1][y-1]!=h) //여섯알이 아닌 경우 
			return h;
	}

	return 0;
}



List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 글쓰기는 하루 5개, 댓글은 10개만 가능합니다. 좋은아빠되기 2019.02.15 510
공지 키보드 화살표값 출력 좋은아빠되기 2016.11.19 1275
공지 원하는 좌표에 값 출력하기 좋은아빠되기 2016.11.19 2591
공지 Python(파이썬) 학습 자료 PDF 1 file 좋은아빠되기 2014.12.10 10575
공지 dev C++ 텍스트 색상변경 WinApi사용(textcolor 대용) 좋은아빠되기 2014.06.07 4933
공지 DEV-C++ 기본 코드 좋은아빠되기 2013.06.19 8515
공지 무료 C++ 컴파일러(윈도우용) DEV-C++ 좋은아빠되기 2013.06.18 19152
공지 이클립스 C++ 설치 파일들 좋은아빠되기 2013.06.18 38069
170 정올 기초다지기(함수3-자가진단5)[for버전] killerjack 2014.08.16 684
169 정올 기초다지기(함수3-형성평가1) killerjack 2014.08.30 931
168 정올 기초다지기(함수3-형성평가2) killerjack 2014.08.30 659
167 정올 기초다지기(함수3-형성평가3) killerjack 2014.08.30 1970
166 정올 기초다지기(함수3-형성평가4) killerjack 2014.08.30 1090
165 정올 기초다지기(함수3-형성평가5) killerjack 2014.08.30 984
164 정올 기초다지기(함수3-형성평가6) killerjack 2014.09.20 799
163 정올 달팽이 사각형 조정미 2017.11.18 269
162 정올 달팽이 사각형(재귀) 조정미 2017.11.18 201
161 정올 달팽이 삼각형 조정미 2017.11.18 575
160 정올 달팽이 삼각형(for) 조정미 2017.11.18 288
159 정올 대각선 지그재그 조정미 2017.11.18 734
158 정올 대각선지그재그 조정미 2017.11.25 349
157 정올 떡 먹는 호랑이 조정미 2017.11.25 581
156 정올 문자마름모 조정미 2017.11.18 159
155 정올 문자마름모 조정미 2017.11.25 294
154 정올 반복제어문2 형성평가 6 선우 2016.03.11 282
153 정올 반복제어문2 형성평가4 선우 2016.03.11 224
152 정올 반복제어문2 형성평가7 정승준 2018.01.27 179
151 정올 반복제어문2 형성평가8 정승준 2018.01.27 193
Board Pagination Prev 1 ... 13 14 15 16 17 18 19 20 21 22 ... 26 Next
/ 26