在随机数中搜索成对、三种等

  • 本文关键字:三种 随机数 搜索 vb.net
  • 更新时间 :
  • 英文 :


对于一个类,我必须用随机数填充一个数组,但现在我需要搜索配对,三种,四种和五种玩家和计算机,并根据比赛找到获胜者,我不确定该怎么办。这是我到目前为止所写的内容:

Dim random As New Random()
Dim playerrolls() As Integer = {0, 0, 0, 0, 0, 0}
Dim computerrolls() As Integer = {0, 0, 0, 0, 0, 0}
playerrolls(0) = player.Items.Add(random.Next(1, 7))
playerrolls(1) = player.Items.Add(random.Next(1, 7))
playerrolls(2) = player.Items.Add(random.Next(1, 7))
playerrolls(3) = player.Items.Add(random.Next(1, 7))
playerrolls(4) = player.Items.Add(random.Next(1, 7))
computerrolls(0) = computer.Items.Add(random.Next(1, 7))
computerrolls(1) = computer.Items.Add(random.Next(1, 7))
computerrolls(2) = computer.Items.Add(random.Next(1, 7))
computerrolls(3) = computer.Items.Add(random.Next(1, 7))
computerrolls(4) = computer.Items.Add(random.Next(1, 7))

我没有启动VS,所以它只是这样:

' loop thru the possible die pip counts
for pip as integer = 1 to 6
   'walk thru the player array
    for n as integer = 0 to playerrolls.length -1
        ' if this dice roll matches the one we are looking for (pip)
        ' then add one to the player score
        if playerrolls(n) = pip then
             ' at the end, this will tell how many 1s, 2s, 3s he had
             playercount(pips) += 1
        end if
    next n
next pip

这得到了原始数据 - 只是计数。 现在给它打分:

Dim pairs as integer = 0
dim trips as integer = 0
dim quads as integer = 0
dim quints as integer = 0
dim sixes as integer = 0     ' since you have 6 rolls
for n as integer = 0 to playercount.length - 1
    select case playercount(n)
       case 2
          pairs += 1
       case 3
          trips += 1
       ... hopefully you get the idea
     end select
next n

您将不得不对计算机数组执行相同的 2 件事,因此使它们函数并将数组传递给它们,而不是粘贴代码的副本。 配对,行程等应该是一个列表或类,或者可能是另一个数组,以便能够与计算机分数进行比较。 一个不错的List(Of Score)会很棒 - 评分函数可以创建它并返回它。赞成和/或接受,如果这有帮助

最新更新