Я пытаюсь сделать оператор if для консольной игры в Vb

89
6

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

Как получить случайный номер Чтобы свернуть и сделать определенные значения, вы можете показать врага, а другие - нет.

спросил(а) 2017-02-21T17:59:00+03:00 3 года, 7 месяцев назад
1
Решение
57

Вместо

    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 может быть быстрее, чем ваш исходный код, и более удобен в обслуживании позже

ответил(а) 2017-02-21T18:14:00+03:00 3 года, 7 месяцев назад
41

' 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

ответил(а) 2017-02-21T18:16:00+03:00 3 года, 7 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема