본 강의에서는 미로의 테두리들을 구성해 봅시다.

 

이전 강의까지 작성한 코드입니다.

 

Sub MakeMaze()
	worksheets("Sheet2").Select
	Dim map_size As Integer
	Dim maze() As Boolean '동적배열 선언
    
	map_size = worksheets("Sheet1").Cells(8,2).value
	ReDim maze(1 To map_size+2, 1 To map_size+2) '배열 크기 선언
    
	'배열값 초기화
	For i=1 To map_size+2
		For j=1 To map_size+2
			If i = 1 Or j = 1 Or i = map_size+2 Or j = map_size+2 Then
				maze(i,j) = True
			Else
				maze(i,j) = False
			End If
		Next j
	Next i

	Range("A1:XFD1048576").ColumnWidth = 1.00 
	Range("A1:XFD1048576").RowHeight = 10.00

	Range(Cells(1,1), Cells(3,3)).ColumnWidth = 0.1 
	Range(Cells(1,1), Cells(3,3)).RowHeight = 1.0
    
	Rows(map_size+6 & ":" & Rows.Count).EntireRow.Hidden = True
	Range(Cells(4,map_size+6), Cells(map_size+5,Columns.Count)).EntireColumn.Hidden = True
End Sub

 

먼저 이전 강의를 통해 우리가 미로를 만들 워크시트 왼쪽 위 3x3의 범위에 조이스틱을 만들었고 숨겼습니다.

 

위의 사진과 같이 셀의 시작이 Cells(4,4)부터입니다. 따라서 항상 특정 행과 열을 선택할 때에는 조이스틱의 크기인 3을 더해주어야 합니다.

 

먼저 미로를 구현할 판을 그려봅시다. 미로의 테두리 색은 빨간색으로 지정하겠습니다.

 

Range(Cells(3+1, 3+1), Cells(3+map_size+2, 3+map_size+2)).Interior.ColorIndex = 3
Range(Cells(3+2, 3+2), Cells(3+map_size+1, 3+map_size+1)).Interior.ColorIndex = 0

Cells()에 행과 열에 3씩 더한 것을 보실 수 있습니다. 또한 Range().Interior.ColorIndex의 값을 변경함으로써 셀의 배경색을 바꿀수 있습니다.

 

먼저 테두리를 포함한 미로의 모든 셀 배경색을 빨간색으로 지정합니다. 그리고나서 테두리를 제외한 미로의 셀 배경색을 지웁니다.

 

이렇게 되면 아래의 그림과 같이 셀이 만들어 집니다.

 

이후에 미로생성을 위해 각 셀에 테두리의 두께를 지정해 줍시다. 테두리의 두께는 Range().Borders.Weight로 지정할 수 있습니다.

 

xlHairline: 가장 가는 실선

xlThin: 가는 실선

xlMedium: 보통굵기의 선

xlThick: 굵은 실선

 

Range(Cells(4,4), Cells(3+map_size+2, 3+map_size+2)).Borders.Weight = xlThcik

위의 코드를 추가하면 아래의 셀에 두꺼운 테두리가 적용됩니다.

 

이젠 본격적으로 Hunt And Kill 알고리즘을 구현할 준비를 마쳤습니다. 다음 강의부터 미로 알고리즘을 구현해 봅시다!


WRITTEN BY
컴공학도

,