개발/Application Develop

MFC 오목만들기 2_ 오목판 그리기

huiyu 2014. 2. 1. 21:45

1. 오목판을 그릴 함수 추가

- 다이얼로그에서 우측버튼 '클래스마법사'실행 -> '메서드'탭에서 메서드 추가 버튼 클릭

 함수추가 마법사 창에서 다음과 같이 반환형이 void형이고 매개 변수가 없는 DrawBack()함수를 생성한다.

 

2. 생성된 함수에 다음의 소스코드를 넣는다

	//그래픽 작업을 할 윈도우 영역설정
	CClientDC dc(this);

	//Pen으로 테두리, Brush로 면 색을 갈색으로설정
	CPen MyPen(PS_SOLID, 0, RGB(206, 103, 0));
	dc.SelectObject(&MyPen);

	CBrush MyBrush(RGB(206, 103, 0));
	dc.SelectObject(&MyBrush);

	//설정한 색으로 사각형 영역 그리기
	dc.Rectangle(10, 10, 10 + 20 * 9, 10 + 20 * 9);

Drawback()함수를 OnPaint()에 추가시켜주고 실행시켜 보면 다음과 같이 갈색 판이 그려진 것을 확인 할 수 있다.

 

이제 추가적으로 선을 그려주자. 다음의 소스코드를 이어서 작성한다.

검정색 브러시를 설정 후 가로 10줄 세로 10줄을 그려주는 소스코드이다,.

//검정색 펜 설정 후 라인 그려주기 CPen MyPen2(PS_SOLID, 1, RGB(0,0,0)); dc.SelectObject(&MyPen2); for(int x=0; x<=9; x++) { dc.MoveTo(10+20*x, 10); dc.LineTo(10+20*x, 10 + 20 * 9); } for(int y=0; y<=9; y++) { dc.MoveTo(10,10+20*y); dc.LineTo(10+20*9, 10 + 20 *y); }

 

 

 

실행시켜 보면 다음과 같이 바둑판이 완성된 것을 볼 수 있다.

 

 

마지막으로 오목판에서 알을 놓는다면 어디에 놓는지 저장하는 변수가 필요하다.

판은 10x10판이니 다음과 같이 2차원 배열을 선언한다.

 

다이얼로그에 int 형 변수 m_nBoard[10][10]을 선언한 후 배열을 초기화할 InitBoard()함수를 추가한다.

void CMFC_OMOKDlg::InitBoard(void)
{
	for(int y=0; y<10; y++)
		for(int x=0; x<10; x++)
			m_nBoard[y][x] = 0;
}

이후 InitBoard()함수를 OnInitDialog()에서 불러주게 한다.

 


728x90
반응형