Я делаю игру для игры в кости с кубиками для моего введения в класс программирования, и мне нужно немного помочь с генераторами случайных чисел. Каждый раз, когда я их использую, они следуют за ними в той же последовательности чисел, что делает каждый поворот галстуком, есть ли способ исправить это?RNG in VB.Net 2010
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
Visual Studio не является языком программирования; это IDE. Поскольку ваш вопрос не в использовании Visual Studio, я удалил этот тег и добавил правильные для VB.Net. Если вы собираетесь учиться программировать, вы должны, по крайней мере, научиться определять язык, который вы собираетесь использовать в первую очередь. :-) –
Создайте и используйте только один экземпляр 'Random', а не два: замените' rnumber2' на 'rnumber1' и не вызывайте' New Random' более одного раза. –
Извините, Кен, я делал это только неделю, так что все это довольно ново и смущает меня! Майкл, в котором номер rnumber2 должен быть заменен номером rnumber1, или вы имели в виду замену всех экземпляров на него? – Jason