Está en la página 1de 14

Cdigo Juego SIMON en Visual Basic 6.

Cdigo Juego SIMON en Visual Basic 6.0

Primero que todo se explicara el mtodo de juego; SIMON, es un juego en el


cual debes repetir una secuencia de colores, la lgica utilizada es la siguiente,
se tienen un array en el cual se guardara la secuencia a seguir, 4 botones para
indicar la secuencia, 3 contadores de tiempo, uno para medir el tiempo entre
color y los otros dos para medir el tiempo que dura el botn de otro color para
la secuencia dada por el PC y la del jugador, esta es una breve explicacin.

Controles utilizados

Para esta ocasin se utilizaran 3 contenedores ya que se guardaran los


mejores 10 puntajes en un archivo plano.

- Form1
Borderstyle=3 Fixed dialog
Startupposition=2 center screen
- Frminicio
- Frmjuego
Visible=false
- Frmpuntos
Visible=false
- Cmbjugar
- Cmbp
- Cmbsalir
- Cmbs
- Cmbnuevoj
- Cmbmenu
- Cmbsalirj
- Cmbmp
- Lblpuntaje
- List1
- Tmrpausa
Enable=false
Interval=300
- Tmrboton
Ebnable=false
Interval=0
- Tmrcolor
Enable=false
Interval=150

Desarrollado por JoxeDuKe12 --- www.quedese.110mb.com Pgina 1


Cdigo Juego SIMON en Visual Basic 6.0

Los dems controles son para documentar el juego y las propiedades se


adecuan al gusto de cada desarrollador, como lo son los tamaos, los colores
etc.

El juego se vera de la siguiente forma,

Inicio del juego,

Desarrollado por JoxeDuKe12 --- www.quedese.110mb.com Pgina 2


Cdigo Juego SIMON en Visual Basic 6.0

Jugando,

Desarrollado por JoxeDuKe12 --- www.quedese.110mb.com Pgina 3


Cdigo Juego SIMON en Visual Basic 6.0

Puntajes,

En el archivo adjunto encontraran los sonidos utilizados para el juego, el


archivo plano para los puntajes se creara el ejecutarse el juego, datos.dat.

Cdigo

Variablea a utilizar

'libreria para cargar los sonidos

Private Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal


lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long

varibles para guardar puntos

Private Type ScoreReg

Nom As String * 25

Points As Integer

End Type

Dim Score(9) As ScoreReg

Desarrollado por JoxeDuKe12 --- www.quedese.110mb.com Pgina 4


Cdigo Juego SIMON en Visual Basic 6.0

Otras variables

Dim velocidad As Integer ' tiempo entre cada boton

Dim nivel As Integer ' cantidad de secuencias

Dim colores(3000) As Integer ' guardar las secuendia se pone un valor grande

Dim color As Byte ' recorrer posiciones a comparar pc

Dim cambio As Byte 'indica inicio o final de cambio de cambio de colore pc

Dim clicks As Integer ' recorrer posiciiones a comparar pc

Dim colorj As Byte ' color seleccionado por el jugador a comparar

Dim mensaje As String

Dim puntaje As Integer 'puntos obtenidos

Inicio del formulario

Private Sub Form_Load() ' se carga el archivo plano o secrea si no existe

Open App.Path & "\datos.dat" For Binary As #1

If LOF(1) < 150 Then

c = 10

For i = 0 To 9

Score(i).Nom = "Anonimo"

Score(i).Points = c

c=c-1

Next

ViewScore

Else

Get #1, , Score

End If

Close #1

ViewScore

SaveScore

Desarrollado por JoxeDuKe12 --- www.quedese.110mb.com Pgina 5


Cdigo Juego SIMON en Visual Basic 6.0

End Sub

Procedimientos para cargar , ver y ordenar los puntajes

Sub ViewScore()

List1.Clear

Dim var As String

var = ""

For i = 0 To 9

var = " " & Str(i + 1) + ".- " & Score(i).Nom & Str(Score(i).Points)

List1.AddItem (var)

Next i

End Sub

Sub SaveScore()

Open App.Path & "\datos.dat" For Binary As #1

Put #1, , Score

Close #1

End Sub

Sub OrdenarScores()

Dim sw As Integer

Dim aux As Integer

sw = 0

Do Until sw = 1

sw = 1

For X = 0 To 8

If Score(X).Points < Score(X + 1).Points Then

sw = 0

aux = Score(X).Points

Desarrollado por JoxeDuKe12 --- www.quedese.110mb.com Pgina 6


Cdigo Juego SIMON en Visual Basic 6.0

Score(X).Points = Score(X + 1).Points

Score(X + 1).Points = aux

aux2 = Score(X).Nom

Score(X).Nom = Score(X + 1).Nom

Score(X + 1).Nom = aux2

End If

Next

Loop

ViewScore

End Sub

Procedimiento, mensaje para salir del juego

Sub terminar()

menzaje = MsgBox("Desea salir del juego ", vbYesNo, "Simon")

If menzaje = 6 Then

End

Else

' no se sale

End If

End Sub

Botones salida los cuales llaman al procedimiento terminar

Private Sub cmbsalir_Click()

terminar

End Sub

Desarrollado por JoxeDuKe12 --- www.quedese.110mb.com Pgina 7


Cdigo Juego SIMON en Visual Basic 6.0

Private Sub cmbsalirj_Click()

terminar

End Sub

Pasar a men desde el juego se ocultan los contenedores para evitar usar
mas formularios y se inhabilitan los contadores de tiempo

Private Sub cmbmenu_Click()

' para evitar algun blucke o error

Me.tmrboton.Enabled = False

Me.tmrboton.Enabled = False

Me.tmrpausa.Enabled = False

Me.frminicio.Visible = True

Me.frmjuego.Visible = False

End Sub

Iniciar nuevo juego desde el juego se ocultan los contenedores para evitar
usar mas formularios y se inhabilitan los contadores de tiempo

Private Sub cmbnuevoj_Click()

' para evitar algun blucke o error

Me.tmrboton.Enabled = False

Me.tmrboton.Enabled = False

Me.tmrpausa.Enabled = False

jugar

End Sub

Pasar al men desde la puntuacin se ocultan los contenedores para evitar


usar mas formularios

Private Sub cmbmp_Click()

Me.frmpuntos.Visible = False

Me.frminicio.Visible = True

Desarrollado por JoxeDuKe12 --- www.quedese.110mb.com Pgina 8


Cdigo Juego SIMON en Visual Basic 6.0

End Sub

Pasar a la puntuacin desde el men se ocultan los contenedores para evitar


usar mas formularios

Private Sub cmbp_Click()

Me.frminicio.Visible = False

Me.frmpuntos.Visible = True

End Sub

Botn jugar men se ocultan los contenedores para evitar usar mas
formularios

Private Sub cmbjugar_Click()

Me.frminicio.Visible = False

Me.frmjuego.Visible = True

jugar

End Sub

Procedimientos utilizados durante el juego

Sub jugar() ' lo utilizo de estamanera por si se requiere llamar el procedimiento


por aparte

inicio

End Sub

Sub inicio()

puntaje = 0 el puntaje aumenta cada que se repite la secuencia correctamente

Me.lblpuntaje.Caption = 0

nivel = 0

velocidad = 1000

clicks = 0

cambio = 0

color = 0

Desarrollado por JoxeDuKe12 --- www.quedese.110mb.com Pgina 9


Cdigo Juego SIMON en Visual Basic 6.0

botonfalso

Me.tmrboton.Interval = velocidad

Me.tmrboton.Enabled = True

End Sub

Sub botonfalso() se inhabilitan los botones

For j = 0 To 3

Me.cmbs(j).Enabled = False

Next j

End Sub

Control de tiempo

Private Sub tmrboton_Timer()

Randomize

aleatorio = Int(Rnd * 4)

colores(nivel) = aleatorio el arrar botones se controla con sus respectivos


ndices del 0 al 3

Me.tmrpausa.Enabled = True

Me.tmrboton.Enabled = False

End Sub

Private Sub tmrpausa_Timer()

If cambio = 0 Then cambio indica si el botn esta en color norma o esta


seleccionado cuando esta en 1

botonactivo colores(color) cambio de color para el botn seleccionado

cambio = 1 se pasa a 1 para que vuelva a cambiar a estado normal

Else

coloresorigen

If color = nivel Then ' termina la secuencia y el jugador ingresa la secuencia

Desarrollado por JoxeDuKe12 --- www.quedese.110mb.com Pgina 10


Cdigo Juego SIMON en Visual Basic 6.0

color = 0

Me.tmrpausa.Enabled = False

botonestrue

Else

color = color + 1 la secuencia no termia de ser mostrada

End If

cambio = 0

End If

End Sub

Sub coloresorigen() colores estndar para los botones

Me.cmbs(0).BackColor = &H8080FF

Me.cmbs(1).BackColor = &HFFFF80

Me.cmbs(2).BackColor = &H80FFFF

Me.cmbs(3).BackColor = &H80FF80

End Sub

Sub botonestrue() se habilitan los botones para que el jugador ingrese la


secuencia

For j = 0 To 3

Me.cmbs(j).Enabled = True

Next j

End Sub

Botones secuencia el jugador ingresa la secuencia

Private Sub cmbs_Click(Index As Integer)

Botonfalso se deshabilitan los botones para verificar si la seleccin es


correcta

colorj = Index

Desarrollado por JoxeDuKe12 --- www.quedese.110mb.com Pgina 11


Cdigo Juego SIMON en Visual Basic 6.0

botonactivo colorj

Me.tmrcolor.Enabled = True se inicia contador botn con color cambiado

End Sub

Contador tiempo botn seleccionado

rivate Sub tmrcolor_Timer()

If cambio = 0 Then

cambio = 1

Else

coloresorigen

If colores(clicks) = colorj Then cuando el jugador termina de ingresar la


secuencia

If clicks = nivel Then verifica si la seleccin es correcta

puntaje = puntaje + 1

Me.lblpuntaje.Caption = puntaje

botonfalso

clicks = 0

Me.tmrcolor.Enabled = False

Cargarnivel carga el nuevo nivel

Else continua ingresando la secuencia

botonestrue

clicks = clicks + 1

Me.tmrcolor.Enabled = False

End If

cambio = 0

Else

Final termina el juego y se guarda el puntaje

Me.tmrcolor.Enabled = False

Desarrollado por JoxeDuKe12 --- www.quedese.110mb.com Pgina 12


Cdigo Juego SIMON en Visual Basic 6.0

Me.frmjuego.Visible = False

Me.frmpuntos.Visible = True

End If

End If

End Sub

Procedimiento final

Sub final()

If Score(9).Points < puntaje Then

Score(9).Nom = InputBox("En hora buen,tienes uno de las mejores 10


puntajes, escribe tu nombre : ", "Concentrese")

Score(9).Points = puntaje

OrdenarScores

SaveScore

Else

MsgBox "No superaste a ningun otro jugador"

End If

End Sub

Procedimiento botn activo

Sub botonactivo(valor) recibe el valor desde la seleccin del jugador o la


secuencia del pc para mostrar botn seleccionado

Select Case valor

Case 0

Me.cmbs(0).BackColor = &HC0&

PlaySound App.Path & "\somido0.wav", ByVal 0&, SND_FILENAME Or


SND_ASYNC

Case 1

Me.cmbs(1).BackColor = &H808000

Desarrollado por JoxeDuKe12 --- www.quedese.110mb.com Pgina 13


Cdigo Juego SIMON en Visual Basic 6.0

PlaySound App.Path & "\somido1.wav", ByVal 0&, SND_FILENAME Or


SND_ASYNC

Case 2

Me.cmbs(2).BackColor = &HFFFF&

PlaySound App.Path & "\somido2.wav", ByVal 0&, SND_FILENAME Or


SND_ASYNC

Case 3

Me.cmbs(3).BackColor = &H8000&

PlaySound App.Path & "\somido3.wav", ByVal 0&, SND_FILENAME Or


SND_ASYNC

End Select

End Sub

Pasar al siguiente nivel

Sub cargarnivel()

nivel = nivel + 1

If velocidad = 50 Then

'limite velocidad

Else

velocidad = velocidad - 50

End If

Me.tmrboton.Interval = velocidad

Me.tmrboton.Enabled = True

End Sub

PD1. El cdigo utilizado ni la lgica son las ms ptimas para este juego y el
cdigo puede ser modificado por el lector.

PD2. Disculpas por la mala ortografa o redaccin del documento.

Desarrollado por JoxeDuKe12 --- www.quedese.110mb.com Pgina 14