Sayısal Loto Kolonlu Vb.Net

Sayısal Loto Kolonlu Vb.Net  

  

  

Soru: Belirle butonuna tıklandığında Combodan seçilen sayı kadar rastgele sayısal loto kolonu üreten programın kodlarını yazınız.(Temizle butonuna tıklandığında üretilen sayılar silinecektir)  

[code lang=”vbnet”]Public Class Form1

Public labelSayi() As Label

Dim sayilar(5) As Integer ‘sayısal lotoda 6 sayı üretildiği için 6 elemanlı dizi oluşturuldu.

Private Sub Belirle_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Belirle.Click

Dim rsayi, sayac, i, j As Integer

sayac = 0

ReDim labelSayi(70) ‘ekrana oluşturcağımız labellerin elelman sayısını belirtiyoruz

Dim labelDummy As Label

Randomize(DateAndTime.Timer) ‘Aynı sayılar üretilmesin diye random sayıların başlangıcını sistem saatine ayarlıyoruz

For i = 1 To Val(ComboBox1.Text) ‘1’den combo’dan seçilen değere kadar kodları işle

While sayac < 6 ‘sayac 6 dan küçük olduğu zaman

rsayi = Int(Rnd() * 49 + 1) ‘1 ile 49 arasonda rastgele sayı üretiliyor

If (Array.IndexOf(sayilar, rsayi) = -1) Then ‘dizinin içinde aynı sayı yoksa

sayilar(sayac) = rsayi ‘üretilen rastgele sayiyi dizinin sayac kaç ise o elemanına ata

sayac = sayac + 1 ‘ sayacı bir artır

End If

End While

For j = 0 To 5 ‘ 0’den 5’e kadar kodları işle

labelDummy = New Label() ‘yeni bir labelDummy isimli label oluşturuyoruz

labelDummy.Text = sayilar(j) ‘labelDummyin textine sayılar dizisinin j. elemanını atıyoruz.

labelSayi(j) = labelDummy ‘Oluşturduğumuz labelDummy labeli labelSayi değişkeninin j. elemanına atıyoruz.

Me.Controls.Add(labelDummy) ‘ Kontrolü forma ekle

labelDummy.Location = New Point(100 * (j + 0.1), 30 + i * 30) ‘Oluşturduğumuz labelin koordinatlarını belirtiyoruz.

Next j

Erase sayilar ‘diziyi tekrar kullanabilmek için tüm elemanlarını siliyoruz.

Array.Resize(sayilar, 6) ‘diziyi yenide boyutlandırıyoruz

sayac = 0

Next i

End Sub

Private Sub Temizle_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Temizle.Click

Dim i As Integer

While i < Me.Controls.Count ‘Formdaki eleman sayısına kadar

If (TypeOf Me.Controls(i) Is Label) Then ‘Eğer i.eleman label ise

Me.Controls.RemoveAt(i) ‘o elemanı sil

Else ‘değilse

i += 1 ‘i yi bir artır.

End If

End While

End Sub

End Class[/code]

   

   

Yorumlar 14

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir