我正在编写一个简单的骰子滚动类型游戏,以便我对编程类进行介绍,我需要对随机数生成器提供一些帮助。每次我使用它们时,它们都会按照相同的数字序列进行操作,这样每个数字都会打平,有没有办法解决这个问题?
Module Module1
Sub Main()
Dim rnumber1 As Random
Dim rnumber2 As Random
Dim number1 As Integer
Dim number2 As Integer
Dim user1 As String
Dim user2 As String
Dim score1 As Integer
Dim score2 As Integer
rnumber1 = New Random
number1 = rnumber1.Next(1, 6)
rnumber2 = New Random
number2 = rnumber2.Next(1, 6)
Console.WriteLine("Welcome to my dice game!")
Console.WriteLine("The objective of the game is to roll higher than your opponent.")
Console.WriteLine("The first one to 10 points wins!")
Console.ReadLine()
Console.Clear()
Console.WriteLine("First player, please enter your name.")
user1 = Console.ReadLine()
Console.WriteLine("Thank you, {0}!", user1)
Console.ReadLine()
Console.Clear()
Console.WriteLine("Second player, please enter you name.")
user2 = Console.ReadLine()
Console.WriteLine("Thank you, {0}!", user2)
Console.ReadLine()
Console.Clear()
Do Until score1 Or score2 = 10
rnumber1 = New Random
number1 = rnumber1.Next(1, 6)
rnumber2 = New Random
number2 = rnumber2.Next(1, 6)
Console.Clear()
Console.WriteLine("The score so far is {0} to {1}!", score1, score2)
Console.WriteLine("Press enter to continue...")
Console.Clear()
Console.WriteLine("{0}, press enter to roll the dice!", user1)
Console.ReadLine()
Console.WriteLine(number1)
Console.ReadLine()
Console.WriteLine("{0}, press enter to roll the dice!", user2)
Console.ReadLine()
Console.WriteLine(number2)
Console.ReadLine()
If number1 > number2 Then
Console.WriteLine("The winner of this round is {0}.", user1)
Console.ReadLine()
score1 = score1 + 1
Console.Clear()
ElseIf number2 > number1 Then
Console.WriteLine("The winner of this round is {0}.", user2)
Console.ReadLine()
score2 = score2 + 1
Console.Clear()
Else : Console.WriteLine("This round was a tie!")
Console.ReadLine()
End If
Loop
End Sub
End Module
答案 0 :(得分:0)
您必须在编译时随机放置:
Module Module1
Dim rnumber1 As New Random
Dim rnumber2 As New Random
Sub Main()
Dim number1 As Integer
Dim number2 As Integer
Dim user1 As String
Dim user2 As String
Dim score1 As Integer
Dim score2 As Integer
number1 = rnumber1.Next(1, 6)
number2 = rnumber2.Next(1, 6)
Console.WriteLine("Welcome to my dice game!")
Console.WriteLine("The objective of the game is to roll higher than your opponent.")
Console.WriteLine("The first one to 10 points wins!")
Console.ReadLine()
Console.Clear()
Console.WriteLine("First player, please enter your name.")
user1 = Console.ReadLine()
Console.WriteLine("Thank you, {0}!", user1)
Console.ReadLine()
Console.Clear()
Console.WriteLine("Second player, please enter you name.")
user2 = Console.ReadLine()
Console.WriteLine("Thank you, {0}!", user2)
Console.ReadLine()
Console.Clear()
Do Until score1 Or score2 = 10
rnumber1 = New Random
number1 = rnumber1.Next(1, 6)
rnumber2 = New Random
number2 = rnumber2.Next(1, 6)
Console.Clear()
Console.WriteLine("The score so far is {0} to {1}!", score1, score2)
Console.WriteLine("Press enter to continue...")
Console.Clear()
Console.WriteLine("{0}, press enter to roll the dice!", user1)
Console.ReadLine()
Console.WriteLine(number1)
Console.ReadLine()
Console.WriteLine("{0}, press enter to roll the dice!", user2)
Console.ReadLine()
Console.WriteLine(number2)
Console.ReadLine()
If number1 > number2 Then
Console.WriteLine("The winner of this round is {0}.", user1)
Console.ReadLine()
score1 = score1 + 1
Console.Clear()
ElseIf number2 > number1 Then
Console.WriteLine("The winner of this round is {0}.", user2)
Console.ReadLine()
score2 = score2 + 1
Console.Clear()
Else : Console.WriteLine("This round was a tie!")
Console.ReadLine()
End If
Loop
End Sub
End Module
我希望它能奏效。这是因为随机使用自己的时间。
答案 1 :(得分:0)
我解决了你的问题。
这是代码,试试吧:
Sub Main()
Dim rnumber1 As Random
Dim rnumber2 As Random
Dim number1 As Integer
Dim number2 As Integer
Dim user1 As String
Dim user2 As String
Dim score1 As Integer
Dim score2 As Integer
Console.WriteLine("Welcome to my dice game!")
Console.WriteLine("The objective of the game is to roll higher than your opponent.")
Console.WriteLine("The first one to 10 points wins!")
Console.ReadLine()
Console.Clear()
Console.WriteLine("First player, please enter your name.")
user1 = Console.ReadLine()
Console.WriteLine("Thank you, {0}!", user1)
Console.ReadLine()
Console.Clear()
Console.WriteLine("Second player, please enter your name.")
user2 = Console.ReadLine()
Console.WriteLine("Thank you, {0}!", user2)
Console.ReadLine()
Console.Clear()
Do Until score1 Or score2 = 10
rnumber1 = New Random
number1 = rnumber1.Next(1, 6)
rnumber2 = New Random
number2 = rnumber2.Next(1, 6)
rnumber2 = rnumber1
number2 = rnumber2.Next(1, 6)
Console.Clear()
Console.WriteLine("The score so far is {0} to {1}!", score1, score2)
Console.WriteLine("Press enter to continue...")
Console.Clear()
Console.WriteLine("{0}, press enter to roll the dice!", user1)
Console.ReadLine()
Console.WriteLine(number1)
Console.ReadLine()
Console.WriteLine("{0}, press enter to roll the dice!", user2)
Console.ReadLine()
Console.WriteLine(number2)
Console.ReadLine()
If number1 > number2 Then
Console.WriteLine("The winner of this round is {0}.", user1)
Console.ReadLine()
score1 = score1 + 1
Console.Clear()
ElseIf number2 > number1 Then
Console.WriteLine("The winner of this round is {0}.", user2)
Console.ReadLine()
score2 = score2 + 1
Console.Clear()
Else : Console.WriteLine("This round was a tie!")
Console.ReadLine()
End If
Loop
End Sub
希望此代码对您有所帮助。