728x90
반응형
로우하이 게임
1~100사이의 임의의 정답을 세팅한다.
인풋박스를 통해서 유저의 예상값을 받는다.
예상값이 정답보다 크면 "로우", 작으면 "하이"로 결과를 알려준다.
6회 내로 정답을 맞추면 축하 msgbox를, 못 맞추면 정답을 알려주고 격려 msgbox를 생성한다.
직접 실행 창을 이용하여 바로 입력할 수 있다.
실습 진행
Public 정답 As Byte, 스위치 As Byte, 도전 As Byte
Public Min As Byte, Max As Byte, Percent As Byte
Private Sub Workbook_Open()
Call 게임세팅
End Sub
Sub 게임세팅()
스위치 = 0
도전 = 0
정답 = 0
Min = 1
Max = 100
For I = 0 To 6
'Range("B12:E18").Value = ""
Range("B12").Offset(I, 0).Value = ""
Range("B12").Offset(I, 1).Value = ""
Range("B12").Offset(I, 2).Value = ""
Range("B12").Offset(I, 3).Value = ""
Next
End Sub
Sub 게임플레이()
Dim 입력 As Variant
Dim 재시작확인 As Byte
'스위치 = 0 : 게임 세팅이 필요한 상황
'스위치 = 1 : 게임세팅이 필요없는 상황
If 스위치 = 0 Then
게임세팅
정답 = WorksheetFunction.RandBetween(1, 100)
스위치 = 1
ElseIf 스위치 = 2 Then
재시작확인 = MsgBox("게임을 다시 시작하시겠습니까?", vbQuestion + vbYesNo, "게임 재시작")
' 유저 재시작 확인 입력에 따른 처리
If 재시작확인 = vbYes Then
Call 게임세팅 ' 게임세팅 매크로를 실행한다.
Else '아니오를 눌렀을 때
Exit Sub
End If
End If
Percent = WorksheetFunction.Round((1 / (Max - Min + 1)) * 100, 2)
입력 = InputBox(Min & "부터 " & Max & "까지의 숫자 중에 정답이 있습니다." & vbNewLine & "정답확률 = " & Percent & "%", "정답 맞추기 도전 " & 도전 + 1 & "/6")
If IsNumeric(입력) = False Then
MsgBox "1~100까지의 숫자를 입력하세요.", vbCritical, "잘못된 값"
Else
'If 입력 <= 0 Then
' MsgBox "최소값은 1입니다.", vbCritical, "잘못된 값"
'ElseIf 입력 > 100 Then
' MsgBox "최대값은 100입니다.", vbCritical, "잘못된 값"
If 입력 <= 0 Or 입력 > 100 Then
MsgBox "1~100 사이의 값을 입력하세요.", vbCritical, "잘못된 값"
ElseIf 입력 - Int(입력) <> 0 Then '소수로 값이 올 경우
MsgBox "정수 값을 입력하세요.", vbCritical, "잘못된 값"
Else
도전 = 도전 + 1
Range("B12").Offset(도전, 0).Value = 도전
Range("B12").Offset(도전, 1).Value = 입력
If 입력 < 정답 Then
Range("B12").Offset(도전, 2).Value = "하이"
Range("B12").Offset(도전, 3).Value = "정답은 더 큽니다."
If Min <= 입력 Then
Min = 입력 + 1
End If
ElseIf 입력 > 정답 Then
Range("B12").Offset(도전, 2).Value = "로우"
Range("B12").Offset(도전, 3).Value = "정답은 더 작습니다."
If Max >= 입력 Then
Max = 입력 - 1
End If
Else 'If 입력 = 정답 Then
Range("B12").Offset(도전, 2).Value = "정답"
Range("B12").Offset(도전, 3).Value = "정답입니다."
스위치 = 2
Exit Sub
End If
End If
End If
If 도전 = 6 Then
MsgBox "정답은 " & 정답 & "이었습니다.", vbInformation, "게임오버"
스위치 = 2
End If
End Sub
시트를 껐다가 켜도 반영되게 하려면 시트가 켜지자마자 동작하게 구문을 셋팅 해 주어야 한다.
Workbook_Open()을 이용하여 셋업 해 줄 수 있다.
728x90
반응형
'대학생활 > 수업' 카테고리의 다른 글
리얼타임엔진 10주차 - Verse 튜토리얼 (0) | 2023.11.07 |
---|---|
게임인공지능 10주차 - TensorFlow and keras, Linear Regression (0) | 2023.11.07 |
게임그래픽프로그래밍심화 9주차 (0) | 2023.11.06 |
게임배경음악과효과음 7주차 - FMOD 게임엔진 연결법, 환경음 제작 (0) | 2023.11.02 |
레벨디자인심화 8주차 - 중간고사 시험 진행 (1) | 2023.11.02 |