본문 바로가기

엑셀 & VBA

2-4. Snake 랜덤하게 사과 배치하기

 사과를 만들때는, 난수생성과 반복문이 필요합니다. 사과는 랜덤한 위치에서 생성이 되어야 하므로 난수가 필요하고, 뱀의 몸통에는 사과가 만들어지면 안되기 때문에, 사과가 몸통이 아닌곳에 생성이 될 때 까지 반복을 해야합니다.

사과의 좌표 랜덤하게 생성

 변수들의 이름은 제가 임의로 지정했습니다. 다른 값으로 코드를 수정해도 작동에는 이상이 없습니다. apx 는 apple x좌표 라는 뜻이고, chk는 check를 줄여서 만든 변수입니다.


Sub apple()
'
' 사과의 위치를 랜덤하게 생성한다.
'

'

' 반복문을 끝낼 수 있게 하는 변수
chk = 0

'반복문 시작
Do
    ' 사과의 좌표가 될 난수를 생성한다.
    apx = Application.WorksheetFunction.RandBetween(1, 25)
    apy = Application.WorksheetFunction.RandBetween(1, 25)
    
    ' 사과의 좌표가 배경색이라면, 반복문을 끝낸다.
    If Cells(apx, apy).Interior.Color = RGB(146, 208, 80) Then
        ' chk = 1이 반복문을 끝내는 조건이므로, 1로 만들어준다.
        chk = 1
    End If
    
' chk 가 1 이라면 반복문을 종료한다.
Loop Until chk = 1

' 사과의 좌표를 빨간색으로 채운다.
Cells(apx, apy).Interior.Color = RGB(255, 0, 0)

' 사과의 좌표를 기록한다.
Cells(8, 27) = apx
Cells(9, 27) = apy

End Sub