Я пытаюсь сделать оператор if для консольной игры в Vb
Module Module1
Sub MoveLeft()
Console.WriteLine("You Moved Left")
End Sub
Sub MoveRight()
Dim Number As String
Console.WriteLine("You Moved Right")
Randomize()
Number = Int(Rnd() * 10) + 1
If Number = 1 To 2 Then
Console.WriteLine(" An Enemy Appeared")
ElseIf
Console.WriteLine(" The Way Is Clear")
End If
End Sub
Sub Shoot()
Console.WriteLine("Pew")
End Sub
Sub Main()
Dim quit As Boolean = False
Dim key As String = ""
Do While quit = False
If Console.KeyAvailable Then
key = Console.ReadKey(0).Key
If key = 81 Then
quit = True
End If
Select Case key
Case 37
MoveLeft()
Case 39
MoveRight()
Case 32
Shoot()
End Select
End If
Loop
End Sub
End Module
Как получить случайный номер Чтобы свернуть и сделать определенные значения, вы можете показать врага, а другие - нет.
Вместо
Randomize()
Number = Int(Rnd() * 10) + 1
If Number = 1 To 2 Then
Console.WriteLine(" An Enemy Appeared")
ElseIf
End If
Пытаться
Dim rnd As New Random
Select Case rnd.Next(5)
Case 1
Console.WriteLine(" An Enemy Appeared")
Case Else
Console.WriteLine(" The Way Is Clear")
End Select
Этот код создает новый рандомизированный генератор случайных чисел, называемый rnd
, генерирует случайное число от 1
до 5
включительно, а если случайное число равно 1
то появляется противник. Если случайное число - это что-то еще, путь ясен.
Вам нужен всего 5
и проверка, если результат равен 1
поскольку это то же самое, что и диапазон 10
и проверка на результат 1
или 2
Хотя скорость вычислений не слишком важна в вашей программе, я думаю, что использование оператора Select Case
может быть быстрее, чем ваш исходный код, и более удобен в обслуживании позже
' Initialize the random-number generator.
Randomize()
' Generate random value between 1 and 10.
Dim number As Integer = CInt(Int((10 * Rnd()) + 1))
' Show enemy if the integer number is smaller than 3 (= 1, 2)
If number < 3 Then
'your method here to have enemy appear
Else
Console.WriteLine(" The Way Is Clear")
End If