C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 67 を表示中)
■38363 / )  シャッフル
□投稿者/ ウヌ (1回)-(2009/07/12(Sun) 10:50:17)

分類:[VB.NET/VB2005 以降] 

2009/07/12(Sun) 12:36:26 編集(投稿者)

  Dim i As Integer = 0
Dim Labels(10) As Label
Dim arbefore As New ArrayList
Dim arafter As New ArrayList

  Do
arafter.Add(arbefore(Int(Rnd() * (10 - i))))
arbefore.Remove(Int(Rnd(0) * (10 - i)))
i += 1
Loop While i <= 9

Label1.Text = arafter(0)
Label2.Text = arafter(1)
Label3.Text = arafter(2)
Label4.Text = arafter(3)
Label5.Text = arafter(4)
Label6.Text = arafter(5)
Label7.Text = arafter(6)
Label8.Text = arafter(7)
Label9.Text = arafter(8)
Label10.Text = arafter(9)

i = 0
arbefore.Add(1)
arbefore.Add(2)
arbefore.Add(3)
arbefore.Add(4)
arbefore.Add(5)
arbefore.Add(6)
arbefore.Add(7)
arbefore.Add(8)
arbefore.Add(9)
arbefore.Add(10)
arafter.Clear()

とプログラムしても、Label1〜Label10にかぶった数字が出てしまいます。1〜10までランダムにそしてどれも異なるようにするにはどうすればいいのでしょうか?

VB2005、XPです。

追加:全文を

Public Class Form1
Dim i As Integer = 0
Dim arbefore As New ArrayList
Dim arafter As New ArrayList

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
arbefore.Add(1)
arbefore.Add(2)
arbefore.Add(3)
arbefore.Add(4)
arbefore.Add(5)
arbefore.Add(6)
arbefore.Add(7)
arbefore.Add(8)
arbefore.Add(9)
arbefore.Add(10)
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Label1.Text = Int(Rnd() * 10) + 1
Label2.Text = Int(Rnd() * 10) + 1
Label3.Text = Int(Rnd() * 10) + 1
Label4.Text = Int(Rnd() * 10) + 1
Label5.Text = Int(Rnd() * 10) + 1
Label6.Text = Int(Rnd() * 10) + 1
Label7.Text = Int(Rnd() * 10) + 1
Label8.Text = Int(Rnd() * 10) + 1
Label9.Text = Int(Rnd() * 10) + 1
Label10.Text = Int(Rnd() * 10) + 1
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Do
arafter.Add(arbefore(Int(Rnd() * (10 - i))))
arbefore.Remove(Int(Rnd(0) * (10 - i)))
i += 1
Loop While i <= 9

Label1.Text = arafter(0)
Label2.Text = arafter(1)
Label3.Text = arafter(2)
Label4.Text = arafter(3)
Label5.Text = arafter(4)
Label6.Text = arafter(5)
Label7.Text = arafter(6)
Label8.Text = arafter(7)
Label9.Text = arafter(8)
Label10.Text = arafter(9)

i = 0
arbefore.Add(1)
arbefore.Add(2)
arbefore.Add(3)
arbefore.Add(4)
arbefore.Add(5)
arbefore.Add(6)
arbefore.Add(7)
arbefore.Add(8)
arbefore.Add(9)
arbefore.Add(10)
arafter.Clear()
End Sub
End Class


Button1で普通の乱数を、Button2で重複しない乱数を作成したいと思っています。Labelsは消し忘れです。

もちろん自作です。
返信 編集キー/


管理者用

- Child Tree -