我试图在VB中为游戏机游戏做一个IF语句


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的新的随机随机数发电机,在15之间生成一个随机数,如果随机数为1,则出现敌人。如果随机数是其他任何东西,则清晰的方式。

您只需要一系列5和检查结果是否为1,因为这与10范围相同并检查12

的结果

尽管计算速度在您的程序中并不那么重要,但我认为使用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

最新更新