Randomize
For i = 0 To 52
swap(arr (i), arr(rand(0, i)))
Next i
Function Random(min As Integer, max As Integer)
Random = Int(Rnd * (max - min)) + min
End Function
Sub Swap(V1 As Byte, V2 As Byte)
Dim Mk As Byte
Mk = V2
V2 = V1
V1 = Mk
End Sub
Function Random(min As Byte, max As Byte)
Random = Int(Rnd * (max - min)) + min
End Function
Private Sub Command1_Click()
Dim arr As Byte
Randomize
For i = 0 To 52
Swap Arr(i), Arr(Random(0, i))
List1.AddItem i, i
Next i
End Sub
Random = Int(Rnd * (max - min)) + min
Random = Int(Rnd * (52))
FaKk2 писал(а):забавно что как раз на прошлой неделе нам учитель упоминал код для такого случайного перемешивания.
Public Sub Swap(a, b)
Dim tmp
tmp = a
a = b
b = tmp
End Sub
Public Sub Mix(Ary() As Long)
Dim LB As Long, UB As Long
Dim i As Long
LB = LBound(Ary)
UB = UBound(Ary)
For i = LB To UB
Swap Ary(i), Ary(Int(Rnd(1) * (UB - LB + 1) + LB))
Next i
End Sub
Private Sub command1_click()
Const n = 52
Dim Ary() As Long
Dim i As Long
ReDim Ary(0 To n - 1)
For i = 0 To n - 1
Ary(i) = i + 1
Next i
Randomize Timer
Mix Ary
For i = 0 To n - 1
Text1.Text = Text1.Text & " " & Ary(i)
Next i
End Sub
ExiliM писал(а):Здраствуйте. Заранее спасибо.
Загони имена картинок в другой массив, и бери оттуда нужное имя по индексу из первого массива. Хотя это бред тот ещё...
Private Type Card
cIndex As Integer 'индекс
cFace As Picture 'изображение
cName As String 'Имя (например "Двойка бубн")
cValue As Long 'или Single если надо
cRules As String 'строка с описанием правил для карты
End Type
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 19