2017-10-30 6 views
-1

私は100人のためのビンゴカードを作成し、それらにすべて異なる番号を与えるプログラムを作っています。今のところ私が持っているコードは誰もが同じ15の数字を与えているだけです。どんな助けでも大変感謝します。ビンゴゲームを作ってみんなが同じ番号を持っています

Structure Number 
     Dim number As Integer 
    End Structure 
    Structure Player 
     Dim name As String 
     Dim numbers() As Number 
     Dim numbers_left As Integer 
    End Structure 
    Dim players As New List(Of Player) 
    Dim selectednumber As Integer 
    Dim used As New List(Of Integer) 
    Dim random As New Random 
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
     Dim Number As Number 
     Dim player As Player 
     ReDim player.numbers(14) 

     For i = 1 To 100 
      For j = 0 To 14 
SelectNumber: Number.number = random.Next(1, 101) 
       If player.numbers IsNot Nothing Then 
        For Each item In player.numbers 
         If item.number = Number.number Then 
          GoTo SelectNumber 
         End If 
        Next 
       End If 
       player.numbers(j).number = Number.number 
      Next 
      player.name = ("Bill" & i) 
      player.numbers_left = 15 
      players.Add(player) 
     Next 

    End Sub 
+0

だから、ランダムメソッドは常に同じ番号を作成しますか? –

+0

ランダム変数を静的にすることはできますか? @AryanFirouzyan。 –

+0

私は確信していないが、私は持っているので、私は各プレーヤーが何を見ることができます。すべてのプレイヤーは同じ番号を持っています。 player2.numbers(0)はplayer2.numbers(0)と同じです。何か意味がある場合は – dylanmcbean

答えて

0

私は、私は完全にすべてのロジックを以下のいないよ認めるよ、私はあなたが常に最初のプレーヤーに対してテストしていると思うので、あなたは、各ループでプレイヤーを再初期化する必要があるように見えます。

Structure Number 
     Dim number As Integer 
    End Structure 
    Structure Player 
     Dim name As String 
     Dim numbers() As Number 
     Dim numbers_left As Integer 
    End Structure 
    Dim players As New List(Of Player) 
    Dim selectednumber As Integer 
    Dim used As New List(Of Integer) 
    Dim random As New Random 
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
     For i = 1 To 100 
      Dim Number As Number 
      Dim player As Player 
      ReDim player.numbers(14) 
      For j = 0 To 14 
SelectNumber: Number.number = random.Next(1, 101) 
       If Player.numbers IsNot Nothing Then 
        For Each item In Player.numbers 
         If item.number = Number.number Then 
          GoTo SelectNumber 
         End If 
        Next 
       End If 
       Player.numbers(j).number = Number.number 
      Next 
      Player.name = ("Bill" & i) 
      Player.numbers_left = 15 
      players.Add(Player) 
     Next 

    End Sub 
+0

これが機能しました。ありがとうございます。 – dylanmcbean

+0

申し訳ありません。あなたはすべての論理に従うことができなかった。私はちょっと自分の考えをして、私はほとんどそれを理解しています。もう一度申し訳ありません – dylanmcbean

+0

ありがとうございます、これがうまくいけば、答えとしてこれを受け入れることができますか?私は元々起こっていたことに従っていないので、私はこの答えで少し暫定ですが、それがあなたのために働くかどうかは推測します... – PerpetualStudent

関連する問題