1

クラスの場合、配列に乱数を入力する必要がありましたが、今度は、プレーヤーとコンピューターのペア、スリーカード、フォーカード、ファイブカードを検索し、一致に基づいて勝者を見つける必要があります。どうすればよいかわかりません。これまでに書いたものは次のとおりです。

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))
4

1 に答える 1

1

私は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)と思います-スコアリング関数はそれを作成して返すことができます。これが役立つ場合は、賛成および/または受け入れます

于 2013-11-06T01:13:02.493 に答える