Module Module1
Sub Main()
Dim a, u, a1, a2, a3, u1, u2, u3 As Integer
Randomize()
a = Rnd() * 899 + 100
Console.WriteLine("{0}", a)
a1 = Mid(a, 1, 1)
a2 = Mid(a, 2, 1)
a3 = Mid(a, 3, 1)
If a1 <> a3 And a1 <> a2 And a3 <> a2 And a2 > 0 And a3 > 0 Then
Console.WriteLine("게임을 시작하겠습니다")
Console.WriteLine("1~9 를 사용하여 중복없는 세 자리 수를 입력하십시오")
Else
Console.WriteLine("게임을 다시 실행해주십시오")
End If
Do
u = Console.ReadLine()
u1 = Mid(u, 1, 1)
u2 = Mid(u, 2, 1)
u3 = Mid(u, 3, 1)
If a1 = u1 And a2 = u2 And a3 = u3 Then
Console.WriteLine("Home Run! 정답은 {0} 입니다", a)
Console.WriteLine("게임을 종료하겠습니다.")
ElseIf u1 = a1 And u2 <> a2 And u2 <> a3 And u3 <> a2 And u3 <> a3 Then
Console.WriteLine("1 Strike")
ElseIf u2 = a2 And u1 <> a1 And u1 <> a3 And u3 <> a1 And u3 <> a3 Then
Console.WriteLine("1 Strike")
ElseIf u3 = a3 And u1 <> a1 And u1 <> a2 And u2 <> a1 And u2 <> a2 Then
Console.WriteLine("1 Strike")
ElseIf u1 = a1 And u2 <> a2 And u2 <> a3 And u3 <> a3 And u3 = a2 Then
Console.WriteLine("1 Strike 1 Ball")
ElseIf u1 = a1 And u2 = a3 And u2 <> a2 And u3 <> a2 And u3 <> a3 Then
Console.WriteLine("1 Strike 1 Ball")
ElseIf u2 = a2 And u1 <> a1 And u1 <> a3 And u3 = a1 Then
Console.WriteLine("1 Strike 1 Ball")
ElseIf u2 = a2 And u1 <> a1 And u1 = a3 And u3 <> a1 And u3 <> a2 Then
Console.WriteLine("1 Strike 1 Ball")
ElseIf u3 = a3 And u1 = a2 And u1 <> a1 And u2 <> a1 And u2 <> a2 Then
Console.WriteLine("1 Strike 1 Ball")
ElseIf u3 = a3 And u2 = a1 And u2 <> a2 And u1 <> a1 And u1 <> a2 Then
Console.WriteLine("1 Strike 1 Ball")
ElseIf u1 = a1 And u2 = a3 And u3 = a2 Then
Console.WriteLine("1 Strike 2 Ball")
ElseIf u2 = a2 And u1 = a3 And u3 = a1 Then
Console.WriteLine("1 Strike 2 Ball")
ElseIf u3 = a3 And u1 = a2 And u2 = a1 Then
Console.WriteLine("1 Strike 2 Ball")
ElseIf u1 = a1 And u2 = a2 And u3 <> a3 Then
Console.WriteLine("2 Strike")
ElseIf u1 <> a1 And u2 = a2 And u3 = a3 Then
Console.WriteLine("2 Strike")
ElseIf u1 = a1 And u2 <> a2 And u3 = a3 Then
Console.WriteLine("2 Strike")
ElseIf u1 = a3 And u2 = a1 And u3 = a2 Then
Console.WriteLine("3 Ball")
ElseIf u1 = a2 And u2 = a3 And u3 = a1 Then
Console.WriteLine("3 Ball")
ElseIf u1 <> a1 And u1 <> a2 And u1 <> a3 And u2 = a1 And u2 <> a2 And u2 <> a3 And u3 <> a1 And u3 <> a2 And u3 <> a3 Then
Console.WriteLine("1 Ball")
ElseIf u1 <> a1 And u1 <> a2 And u1 <> a3 And u2 <> a1 And u2 <> a2 And u2 <> a3 And u3 = a1 And u3 <> a2 And u3 <> a3 Then
Console.WriteLine("1 Ball")
ElseIf u1 = a2 And u1 <> a1 And u1 <> a3 And u2 <> a1 And u2 <> a2 And u2 <> a3 And u3 <> a1 And u3 <> a2 And u3 <> a3 Then
Console.WriteLine("1 Ball")
ElseIf u1 <> a1 And u1 <> a2 And u1 <> a3 And u2 <> a1 And u2 <> a2 And u2 <> a3 And u3 = a2 And u3 <> a1 And u3 <> a3 Then
Console.WriteLine("1 Ball")
ElseIf u1 = a3 And u1 <> a1 And u1 <> a2 And u2 <> a1 And u2 <> a2 And u2 <> a3 And u3 <> a1 And u3 <> a2 And u3 <> a3 Then
Console.WriteLine("1 Ball")
ElseIf u1 <> a1 And u1 <> a2 And u1 <> a3 And u2 = a3 And u2 <> a1 And u2 <> a2 And u3 <> a1 And u3 <> a2 And u3 <> a3 Then
Console.WriteLine("1 Ball")
ElseIf u1 = a2 And u1 <> a1 And u1 <> a3 And u2 <> a1 And u2 <> a2 And u2 <> a3 And u3 = a1 And u3 <> a2 And u3 <> a3 Then
Console.WriteLine("2 Ball")
ElseIf u1 <> a1 And u1 <> a2 And u1 <> a3 And u2 = a1 And u2 <> a2 And u2 <> a3 And u3 <> a1 And u3 = a2 And u3 <> a3 Then
Console.WriteLine("2 Ball")
ElseIf u1 = a2 And u1 <> a1 And u1 <> a3 And u2 = a1 And u2 <> a2 And u2 <> a3 And u3 <> a1 And u3 <> a2 And u3 <> a3 Then
Console.WriteLine("2 Ball")
ElseIf u1 = a3 And u1 <> a1 And u1 <> a2 And u2 <> a1 And u2 <> a2 And u2 <> a3 And u3 = a1 And u3 <> a2 And u3 <> a3 Then
Console.WriteLine("2 Ball")
ElseIf u1 = a3 And u1 <> a1 And u1 <> a2 And u2 = a1 And u2 <> a2 And u2 <> a3 And u3 <> a1 And u3 <> a2 And u3 <> a3 Then
Console.WriteLine("2 Ball")
ElseIf u1 <> a1 And u1 <> a2 And u1 <> a3 And u2 = a3 And u2 <> a1 And u2 <> a2 And u3 = a1 And u3 <> a2 And u3 <> a3 Then
Console.WriteLine("2 Ball")
ElseIf u1 = a2 And u1 <> a1 And u1 <> a3 And u2 = a3 And u2 <> a1 And u2 <> a2 And u3 <> a1 And u3 <> a2 And u3 <> a3 Then
Console.WriteLine("2 Ball")
ElseIf u1 <> a1 And u1 <> a2 And u1 <> a3 And u2 = a3 And u2 <> a1 And u2 <> a2 And u3 = a2 And u3 <> a1 And u3 <> a3 Then
Console.WriteLine("2 Ball")
ElseIf u1 = a3 And u1 <> a1 And u1 <> a2 And u2 <> a1 And u2 <> a2 And u2 <> a3 And u3 = a2 And u3 <> a1 And u3 <> a3 Then
Console.WriteLine("2 Ball")
Else
Console.WriteLine("OUT")
End If
Loop Until u1 = a1 And u2 = a2 And u3 = a3
Console.ReadLine()
End Sub
End Module
아 먼저 변수에 대해서 말씀드리자면
a는 answer 즉 랜덤으로 나오는 답을 말하는거고
a1, a2, a3는 각각 100의자리수 10의자리수 1의자리수를 표현한겁니다
u는 사용자가 맞추려고하는 숫자고요
역시 u1, u2 , u3은 똑같은 개념입니다
빨간색으로 된 부분있잖아요 .. 저 부분이 사실 왜 저렇게 된거냐면
숫자야구는 보통 1~9의 숫자를 써요
즉 109 , 210 , 300 이런 숫자를 안쓴다는거죠
이런 숫자들을 제외하려고
If a1 <> a3 And a1 <> a2 And a3 <> a2 And a2 > 0 And a3 > 0 Then
이런 조건문을 제시했는데 문제는 이 조건을 만족하지 못한 숫자가 랜덤으로 나왔을 시
즉 , 101, 210 이런 숫자가 나왔을땐 제가
Else
Console.WriteLine("게임을 다시 실행해주십시오")
이런 조건을 걸었거든요
어설프죠 ㅎㅎ
그냥 애초에 처음부터 100~999인 숫자인데 십의자리와 일의자리에 0이 안들어가는 숫자들을
걸러내려면 조건을 어떻게 써야할까요 ??
소스좀 알려주세요