CAYBURG.COM
Programlama Dilleri Delphi, Visual Basic, C, C++,C#, ASP, Perl, Php, Html vb. diller hakkında bilgi ve birikimlerinizi paylaşabilir ve yardım alabilirsiniz.
Cevapla
VB Rasgele Sayılar Bu konu 19 defa okundu ve 0 yorum yazildi.
 
Seçenekler
Alt 07.06.2008, 00:36   #1
internetadami
Bronze Members
Standart VB Rasgele Sayılar

Oyun için gerekli olan nesneler
3 command button,4 maskeditbox,2 label,1 listbox(labeller yerine değişken de kullanabilirsiniz)
isteyenler oyunun orjinal şeklini
[For Members][Üye Özel]
adresinden indirebilir.
SAYI BULMA OYUNU
Const OLE_ACTIVATE = 7
Dim i As Variant
Dim j As Integer
Dim check As Boolean
Dim a As Variant
Dim değer As Variant
Dim b(1 To 4) As Variant
Dim sonuç As Integer
Dim giriş As Variant
Dim rastgelesayı(1 To 4) As Integer
Dim girilensayı(1 To 4) As Variant
Dim dizi1(1 To 4) As Variant
Dim dizi2(1 To 6) As Variant
Dim dizi3(1 To 4) As Variant
Dim dizi4(1 To 24) As Variant
Dim dizi5(1 To 36) As Variant
Dim dizi6(1 To 8) As Variant
Dim dizi7(1 To 12) As Variant
Dim dizi8(1 To 6) As Variant
Dim dizi9(1 To 12) As Variant
Dim dizi10(1 To 42) As Variant
Dim dizi11(1 To 44) As Variant
Dim dizi12(1 To 7) As Variant
Dim dizi15(1 To 207) As Variant
Private Sub Command1_Click()
t(0).SetFocus
'Kullanıcı tarafından girilen sayıları diziye aktaralım
For i = 1 To 4
girilensayı(i) = t(i - 1)
Next i
'Listbox'ta kullanıcının girdiği değerleri görmesi için
'giriş değişkenine aktaralım
giriş = t(0) & t(1) & t(2) & t(3)
'kutulara girilen karakterlerin boş ve alfanimerik olmamasını sağlayalım
For i = 1 To 4
b(i) = InStr(1, l, girilensayı(i))
Next i
'karşılaştırmada kullanacağımız sonuçları değer değişkenine aktaralım
l1 = b(1) & b(2) & b(3) & b(4)
değer = Val(l1)
'Karşılaştırmaları yapalım
For i = 0 To 3
If değer = dizi1(4)(i) Then
sonuç = 1
Exit For
End If
Next i
For i = 0 To 5
If değer = dizi2(6)(i) Then
sonuç = 2
Exit For
End If
Next i
For i = 0 To 3
If değer = dizi3(4)(i) Then
sonuç = 3
Exit For
End If
Next i
For i = 0 To 23
If değer = dizi4(24)(i) Then
sonuç = 4
Exit For
End If
Next i
For i = 0 To 35
If değer = dizi5(36)(i) Then
sonuç = 5
Exit For
End If
Next i
For i = 0 To 7
If değer = dizi6(8)(i) Then
sonuç = 6
Exit For
End If
Next i
For i = 0 To 11
If değer = dizi7(12)(i) Then
sonuç = 7
Exit For
End If
Next i
For i = 0 To 5
If değer = dizi8(6)(i) Then
sonuç = 8
Exit For
End If
Next i
For i = 0 To 11
If değer = dizi9(12)(i) Then
sonuç = 9
Exit For
End If
Next i
For i = 0 To 41
If değer = dizi10(42)(i) Then
sonuç = 10
Exit For
End If
Next i
For i = 0 To 43
If değer = dizi11(44)(i) Then
sonuç = 11
Exit For
End If
Next i
For i = 0 To 6
If değer = dizi12(7)(i) Then
sonuç = 12
Exit For
End If
Next i
If değer = 1234 Then
sonuç = 13
l.Visible = True
End If
If değer = 0 Then
sonuç = 14
End If
'Girilen sayının boş karakter olmamasını sağlayalım
For i = 0 To 3
If Not IsNumeric(t(i)) Then
yanlışgiriş
Exit For
End If
Next i
'Aynı sayıların tekrar girilmemesini sağlayalım
If t(0) = t(1) Or t(0) = t(2) Or t(0) = t(3) Or t(1) = t(2) Or t(1) = t(3) Or t(2) = t(3) Then yanlışgiriş2
'sonuçları listbox'a yazdıralım
Select Case sonuç
Case 1: OLE5.Action = OLE_ACTIVATE
lbx.AddItem giriş + " +3"
Case 2: OLE5.Action = OLE_ACTIVATE
lbx.AddItem giriş + " +2"
Case 3: OLE5.Action = OLE_ACTIVATE
lbx.AddItem giriş + " +1"
Case 4: OLE5.Action = OLE_ACTIVATE
lbx.AddItem giriş + " +1 -1"
Case 5: OLE5.Action = OLE_ACTIVATE
lbx.AddItem giriş + " +1 -2"
Case 6: OLE5.Action = OLE_ACTIVATE
lbx.AddItem giriş + " +1 -3"
Case 7: OLE5.Action = OLE_ACTIVATE
lbx.AddItem giriş + " +2 -1"
Case 8: OLE5.Action = OLE_ACTIVATE
lbx.AddItem giriş + " +2 -2"
Case 9: OLE5.Action = OLE_ACTIVATE
lbx.AddItem giriş + " -1"
Case 10: OLE5.Action = OLE_ACTIVATE
lbx.AddItem giriş + " -2"
Case 11: OLE5.Action = OLE_ACTIVATE
lbx.AddItem giriş + " -3"
Case 12: OLE5.Action = OLE_ACTIVATE
lbx.AddItem giriş + " -4"
Case 13: OLE2.Action = OLE_ACTIVATE
lbx.AddItem giriş + " TEBRİKLER"
l.Visible = True
Case 14: OLE3.Action = OLE_ACTIVATE
lbx.AddItem giriş + " Hiçbiri Yok"
End Select

End Sub
'Yanlış giriş için altyordam
Private Sub yanlışgiriş()
OLE4.Action = OLE_ACTIVATE
MsgBox "Kutuları Boş bırakamaz ve sadece rakam girebilirsiniz.!!! "
sonuç = 0

End Sub
'Yanlış giriş için altyordam
Private Sub yanlışgiriş2()
OLE4.Action = OLE_ACTIVATE
MsgBox "Aynı rakamı iki kere giremezsiniz!!! "
sonuç = 0

End Sub

Private Sub Command2_Click()
'Çıkış için seçenek tanıyalım
seçim = MsgBox("Çıkmak istediğinizden emin misiniz?", 20, "Sayı Bulma Oyunu")
If seçim = 6 Then
OLE6.Action = OLE_ACTIVATE
MsgBox "Program hakkındaki düşünce ve önerilerinizi ogunonrat@softhome.net adresine mail atarsanız sevinirim."
End
Else
Form1.Refresh
End If
End Sub
'Yeniden oynamak için seçenek
Private Sub Command3_Click()
seçim = MsgBox("Yeniden başlamak istediğinizden emin misiniz?", 20, "Sayı Bulma Oyunu")
If seçim = 6 Then
sayıüret
Else
Form1.Refresh
End If
End Sub
'Yeniden oynamak için alt yordam
Private Sub sayıüret()
Randomize
l = ""
lbx.Clear
rastgelesayı(1) = Int(Rnd * 10)
For i = 2 To 4
Do
rastgelesayı(i) = Int(Rnd * 10)
check = True
For j = 1 To i - 1
If rastgelesayı(i) = rastgelesayı(j) Then
check = False
Exit For
End If
Next j
Loop Until check
Next i
'Rastgele üretilen sayıyı karşılaştırma yapabilmek için string'e çevirelim
've oyun sonunda göstermek için l label'ine atalım
For i = 1 To 4
l = l & rastgelesayı(i)
Next i
l = CStr(l)
l.Visible = False
End Sub
Private Sub Form_Load()
Randomize
OLE1.Action = OLE_ACTIVATE
OLE7.Action = OLE_ACTIVATE
'Aşağıdaki tanımlanan diziler matamatiksel olarak manuel 'hesaplanmıştır. 4 basamaklı 2 variant değerin karşılaş
'tırılması sonucu albileceği değerlerdir.
dizi1(4) = Array(1230, 1204, 1034, 234)
dizi2(6) = Array(1200, 1030, 1004, 230, 204, 34)
dizi3(4) = Array(1000, 200, 30, 4)
dizi4(24) = Array(1400, 1040, 1020, 1002, 1300, 1003, 3200, 203, 4200, 240, 210, 201, 31, 130, 2030, 32, 4030, 430, 14, 104, 2004, 24, 3004, 304)
dizi5(36) = Array(132, 213, 243, 324, 432, 314, 431, 124, 241, 1023, 2031, 3024, 4032, 1043, 3014, 4031, 1042, 2014, 1302, 3201, 2304, 4203, 1403, 3104, 1402, 2104, 4201, 1320, 2130, 3210, 2430, 3240, 1340, 4130, 1420, 4210)
dizi6(8) = Array(1423, 1342, 4213, 3241, 2431, 4132, 2314, 3124)
dizi7(12) = Array(1203, 1240, 1032, 1430, 1024, 1304, 4230, 231, 3204, 214, 2034, 134)
dizi8(6) = Array(1243, 1432, 1324, 4231, 3214, 2134)
dizi9(12) = Array(100, 10, 1, 2000, 20, 2, 3000, 300, 3, 4000, 400, 40)
dizi10(42) = Array(4300, 4003, 4020, 4002, 4100, 4010, 4001, 3400, 2400, 420, 403, 402, 410, 401, 43, 42, 41, 340, 140, 3040, 2040, 2300, 2003, 2100, 2010, 2001, 21, 120, 3020, 320, 23, 12, 102, 3002, 302, 3100, 3010, 3001, 310, 301, 13, 103)
dizi11(44) = Array(2103, 2301, 2310, 2013, 3120, 3102, 3012, 3021, 123, 312, 321, 4320, 4302, 4023, 2403, 2340, 2043, 3420, 3402, 3042, 423, 342, 4103, 4310, 4301, 4013, 3410, 3401, 3140, 3041, 413, 143, 341, 4120, 4102, 4021, 4012, 2410, 2401, 2140, 2041, 412, 421, 142)
dizi12(7) = Array(4321, 4312, 4123, 3421, 3412, 2143, 2341)
'dizi 15 diğer dizi elemanlarının toplamıdır
dizi15(207) = Array(2103, 2301, 2310, 2013, 3120, 3102, 3012, 3021, 123, 312, 321, 4320, 4302, 4023, 2403, 2340, _
2043, 3420, 3402, 3042, 423, 342, 4103, 4310, 4301, 4013, 3410, 3401, 3140, 3041, 413, 143, 341, 4120, 4102, _
4021, 4012, 2410, 2401, 2140, 2041, 412, 421, 142, 1230, 1204, 1034, 234, 1200, 1030, 1004, 230, 204, 34, 1000, _
200, 30, 4, 1400, 1040, 1020, 1002, 1300, 1003, 3200, 203, 4200, 240, 210, 201, 31, 130, 2030, 32, 4030, 430, _
14, 104, 2004, 24, 3004, 304, 1243, 1432, 1324, 4231, 3214, 2134, 132, 213, 243, 324, 432, 314, 431, 124, 241, _
1023, 2031, 3024, 4032, 1043, 3014, 4031, 1042, 2014, 1302, 3201, 2304, 4203, 1403, 3104, 1402, 2104, 4201, _
1320, 2130, 3210, 2430, 3240, 1340, 4130, 1420, 4210, 1203, 1240, 1032, 1430, 1024, 1304, 4230, 231, 3204, 214, _
2034, 134, 1423, 1342, 4213, 3241, 2431, 4132, 2314, 3124, 100, 10, 1, 2000, 20, 2, 3000, 300, 3, 4000, 400, 40, _
4321, 4312, 4123, 3421, 3412, 2143, 2341, 4300, 4003, 4020, 4002, 4100, 4010, 4001, 3400, 2400, 420, 403, 402, _
410, 401, 43, 42, 41, 340, 140, 3040, 2040, 2300, 2003, 2100, 2010, 2001, 21, 120, 3020, 320, 23, 12, 102, 3002, _
302, 3100, 3010, 3001, 310, 301, 13, 103, 1234, 0)
'rastgele sayı üretelim ve aynı sayının tekrarlanmamsını sağlayalım
rastgelesayı(1) = Int(Rnd * 10)
For i = 2 To 4
Do
rastgelesayı(i) = Int(Rnd * 10)
check = True
For j = 1 To i - 1
If rastgelesayı(i) = rastgelesayı(j) Then
check = False
Exit For
End If
Next j
Loop Until check
Next i
'Rastgele üretilen sayıyı karşılaştırma yapabilmek için string'e çevirelim
've oyun sonunda göstermek için l label'ine atalım
For i = 1 To 4
l = l & rastgelesayı(i)
Next i
l = CStr(l)
End Sub
'kullanıcının t dizisine giriş yapmasını kolaylaştırmak için
'selllenght ve autotab özelliklerini ayarlayalım
Private Sub t_Change(Index As Integer)
For i = 0 To 3
t(i).SelLength = 2
Next i
End Sub
internetadami isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Cevapla


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 
Seçenekler

Yetkileriniz
Yeni Mesaj yazma yetkiniz Aktif değil dir.
Mesajlara Cevap verme yetkiniz aktif değil dir.
Eklenti ekleme yetkiniz Aktif değil dir.
Kendi Mesajınızı değiştirme yetkiniz Aktif değildir dir.

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-KodlarıKapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı

Paylaşmak Özgürlüktür - Arşiv - Yukarı git Web Stats TOPlist
File Hosting Free Kurd Radyo Dinle Bedava Albüm Vaylo Yeni Albüm Albüm Paylasim
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192
Powered by vBulletin® Version 3.7.4 ©2000 - 2008, Jelsoft Enterprises Ltd.
Bütün Zaman Ayarları WEZ +2 olarak düzenlenmiştir. Şu Anki Saat: 23:07 .