본 강의에서는 미로의 테두리들을 구성해 봅시다.
이전 강의까지 작성한 코드입니다.
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 알고리즘을 구현할 준비를 마쳤습니다. 다음 강의부터 미로 알고리즘을 구현해 봅시다!
'엑셀 vba 게임' 카테고리의 다른 글
엑셀 vba 미로만들기(7) - Hunt And Kill 알고리즘 구현2 (0) | 2020.03.07 |
---|---|
엑셀 vba 미로만들기(6) - Hunt And Kill 알고리즘 구현1 (0) | 2020.03.05 |
엑셀 vba 미로만들기(4) - 배열 (0) | 2020.02.29 |
엑셀 vba 미로만들기(3) - 맵 구성하기 (0) | 2020.02.28 |
엑셀 vba 미로만들기(2) - 키보드 이벤트 구성 (0) | 2020.02.27 |
WRITTEN BY