Con los números aleatorios podemos crear simulaciones.
Serán fundamentales en nuestras aplicaciones.
'
Gambas class file
Private
carasdadosalida As
New
Integer[]
Private
odadopoker As
PictureBox
Public
Sub
Form_Open()
Me.Center()
Me.Caption
=
"DADOS
DE POKER"
End
Public
Function
mostrardados() As
Integer
Dim
contador As
Integer
Dim
cara As
Integer
For
contador =
1
To
6
cara =
Int(Rnd(7,
13))
odadopoker.Picture
=
Picture[cara &
".gif"]
'Para
que veamos una repetición de las caras
Wait 0.1
Next
carasdadosalida.Add(cara)
'Añadimos
la ultima cara que ha salido al array
Return
cara
End
Public
Sub
tobDados_Click()
Dim
objeto As
Object
Dim
x As
Integer
Dim
coincidencias As
Integer
Dim
temporal As
New
Integer[]
LblSalida.Caption
=
""
'Limpiamos
la etiqueta que nos dice la jugada que se ha hecho
For
Each
objeto In HBox2.Children
If
objeto Is
PictureBox Then
objeto.delete
'Borramos
todos los objetos si hubiera algunos. Para limpiar el contenedor
Endif
Next
carasdadosalida.Clear
'Limpiamos
el array que contendrá los valores de los dados en este array
creadadospoker()
'Creamos
5 dados
carasdadosalida.Sort
'Clasificamos
el array donde están los valores de los dados para identificar mejor
la jugada
Do
While
x <=
carasdadosalida.Count
-
2
'Mientras
x sea menor que el número de dados en el array
If
carasdadosalida[x] =
carasdadosalida[x +
1]
Then
'Si
el primero coincide con el segundo,el segundo con el tercero....etc.
'Siempre
sin salirnos del numero máximo de elementos del array
carasdadosalida
temporal.Add(carasdadosalida[x
+
1])
'Añadimos
al array temporal la cara del dado que se repite
coincidencias =
coincidencias +
1
'Aumentamos
el número de coincidencias
Endif
x +=
1
Loop
'Según
el número de coincidencias que existan,decimos la jugada que se ha
hecho
If
coincidencias =
1
Then
LblSalida.Caption
=
"Pareja"
'Una
sola coincidencia
If
coincidencias =
2
Then
If
temporal[0]
=
temporal[1]
Then
'Dos
coincidencias
LblSalida.Caption
=
"Trio"
'Ejemplo
777XX
Else
LblSalida.Caption
=
"Doble
Pareja" 'Ejemplo
7788X
Endif
Endif
If
coincidencias =
3
Then
If
(temporal[0]
=
temporal[1])
And
(temporal[0]
=
temporal[2])
Then
'Ejemplo
8888X
LblSalida.Caption
=
"Poker!"
Else
LblSalida.Caption
=
"Full"
'Ejemplo
88899
Endif
Endif
If
coincidencias =
4
Then
LblSalida.Caption
=
"Repoker!!"
'Si
hay 5 números iguales
Endif
End
Public
Sub
creadadospoker() 'Para
crear los 5 dados con su imagen
Dim
contador As
Integer
For
contador =
1
To
5
odadopoker =
New
PictureBox(HBox2)
With
odadopoker
.Width
=
64
.Height
=
64
.Stretch
=
True
.Picture
=
Picture[mostrardados() &
".gif"]
End
With
Next
End
Podéis bajar el código aquí:
No hay comentarios:
Publicar un comentario