tres en raya sencillito en vb

Iniciado por Daklon, 29 Octubre 2010, 18:50 PM

0 Miembros y 1 Visitante están viendo este tema.

BlackZeroX

Cita de: Daklon en 29 Octubre 2010, 19:45 PM
eso ultimo no acabo de entenderlo,las variables tipo boolean no eran true y false?

como le digo lo que es true y lo que es false?

edit: otra cosa que me acabo de fijar:

con lo de lbound lo que haces es usar el command mas pequeño no?

eso no causaría conflicto con el command1 que es para hacer una nueva partida?

se solucionaría cambiándole el nombre no?

Todo lo que has dicho es correcto.

solo por aclarate FiThen funciona con valores Booleanos con solo poner true como te lo a mostrado Mr. Frogs es suficiente, al iggual que tan solo poner la variable tipo Boolean.

Dulces Lunas!¡.
The Dark Shadow is my passion.

EddyW

Cita de: BlackZeroX▓▓▒▒░░ en 30 Octubre 2010, 03:49 AM
asi

Código (Vb) [Seleccionar]


VariableBoolean = Label1.Caption = Label2.Caption and Label2.Caption = Label3.Caption and Label3.Caption = "X" ' // por lo tanto Label3.Caption deberia ser =? Label1.Caption si fuese Toda la sentencia = true



o si que si deseas entenderlo mejor...

Código (Vb) [Seleccionar]


VariableBoolean = cbool(Label1.Caption = Label2.Caption and Label2.Caption = Label3.Caption and Label3.Caption = "X") ' // por lo tanto Label3.Caption deberia ser =? Label1.Caption si fuese Toda la sentencia = true



El código se ve algo sucio xD
No se si es más fácil así pero igual lo pongo:
Código (vbnet) [Seleccionar]
VariableBoolean = CBool(Join(Array(Label1, Label2, Label3), "") = "XXX")
En una tontera de ver que resulta si junto muchos objetos en un Array, no resultó nada, pero rescaté esto
:xD

SaluDOS!!!

Daklon

a ok ya entendi xD

estaba pensando como si fuera una variable tipo string xD

ahora me surgio otra duda xD

a ver he borrado todos los command button menos el primero que era para crear una nueva partida y el commandbutton2 que era el primero de los que decian que casilla se marca, pero ahora no se como hacer para que cuando se aprete el primer commandbutton se ponga una x o un O en el primer label y que cuando se aprete el commandbutton2 pero de index 1 se ponga una X o un O en el segundo label, no se si me explico, que cuando creo una matriz de controles no se como hacer para poner codigos distintos a cada uno

BlackZeroX

.
@3D1

Join() lo dejo para otras cosas... por algo existe "_"

Código (Vb) [Seleccionar]

' // por lo tanto Label3.Caption deberia ser =? Label1.Caption si fuese Toda la sentencia = true
VariableBoolean = CBool( _
                            Label1.Caption = Label2.Caption _
                        And Label2.Caption = Label3.Caption _
                        And Label3.Caption = "X" _
                        )


Dulce Infierno Lunar!¡.
The Dark Shadow is my passion.

BlackZeroX

a si cuando agregas una matriz de controles se agrega en los eventos un aprametro llamado index de tipo integer, este sirve para identificar a dicho control...

Código (Vb) [Seleccionar]


Private Sub Command1_Click(Index As Integer)
    Select Case Index
   
        Case 0
            '   //  Codigo de un boton
        Case 1
            '   //  Codigo de un boton
        Case n..
            '   //  Codigo de un boton
        Case Else
            '   //  De donde carajo salio este Index?
    End Select
End Sub



Dulce Infierno Luanr!¡.
The Dark Shadow is my passion.

Daklon

ok gracias

a ver si mañana saco tiempo y hago el código recortado con los consejos que me han dado  xD

EddyW

Cita de: BlackZeroX▓▓▒▒░░ en 31 Octubre 2010, 02:34 AM
.
@3D1

Join() lo dejo para otras cosas... por algo existe "_"

Código (Vb) [Seleccionar]

' // por lo tanto Label3.Caption deberia ser =? Label1.Caption si fuese Toda la sentencia = true
VariableBoolean = CBool( _
                            Label1.Caption = Label2.Caption _
                        And Label2.Caption = Label3.Caption _
                        And Label3.Caption = "X" _
                        )


Dulce Infierno Lunar!¡.


Creo que es Bueno aprovechar todo lo que tenemos a mano., ;)
El código que coloqué no tiene ninguna restricción y/o problema cumple las reglas :P

SaluDOS!!!

Edu

Como vas con el proyecto Daklon? yo una vez hice uno pero no tan sencillo pero podrias vicharlo ya q te va a servir, de seguro si lo hago denuevo ahora q he aprendido un poco mas talvez, lo haria mas corto pero bueno en ese tiempo fue lo q me salio xD
En el codigo podras ver como usar los arrays de controles q yo use labels en ves de commands xD q me parece q queda mas lindo.. pero bueno miralo q te servira y cualkier duda con el code pregunta q te puedo ayudar

TaTeTi: http://www.megaupload.com/?d=URXZU187

79137913

#18
HOLA!!!
EL FORM:
(una matriz de controles de labels llamado lbl del index 0 al 8)
Ubicados asi:
lbl(0)   lbl(1)   lbl(2)
lbl(3)   lbl(4)   lbl(5)
lbl(6)   lbl(7)   lbl(8)

Mi codigo:
Código (vb) [Seleccionar]

Option Explicit
Dim CT As Integer
Dim X As Integer 'PARA EL BUCLE

Private Sub Form_Load()
    Call BORRAR_LBL
End Sub

Private Sub lbl_Click(Index As Integer)
Dim SIGNO As Byte
Dim GANO As Boolean
    If lbl(Index).Caption = "X" Or lbl(Index).Caption = "O" Then Exit Sub
    If CT = 9 Then Call BORRAR_LBL
    CT = CT + 1
    If CT Mod 2 = 0 Then SIGNO = 79 Else SIGNO = 88
    lbl(Index).Caption = Chr(SIGNO)
    lbl(Index).ForeColor = vbBlack
    GANO = False
    For X = 1 To 3
        'HORIZONTALES
        If lbl(X * 3 - 1).Caption = lbl(X * 3 - 2).Caption And lbl(X * 3 - 2).Caption = lbl(X * 3 - 3).Caption Then
            GANO = MsgBox("GANADOR " & lbl(X * 3 - 1).Caption)
        'VERTICALES
        ElseIf lbl(-1 + X).Caption = lbl(2 + X).Caption And lbl(2 + X).Caption = lbl(5 + X).Caption Then
            GANO = MsgBox("GANADOR " & lbl(-1 + X).Caption)
        End If
    Next
    'DIAGONALES
    If lbl(0).Caption = lbl(4).Caption And lbl(4).Caption = lbl(8).Caption Then
        GANO = MsgBox("GANADOR " & lbl(0).Caption)
    ElseIf lbl(2).Caption = lbl(4).Caption And lbl(4).Caption = lbl(6).Caption Then
        GANO = MsgBox("GANADOR " & lbl(6).Caption)
    End If
    If GANO = True Then Call BORRAR_LBL
End Sub

Private Sub BORRAR_LBL()
    For X = 0 To 8
        lbl(X).Caption = X + 1
        lbl(X).ForeColor = lbl(X).BackColor
    Next
    CT = 0
End Sub



GRACIAS POR LEER!!!
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

79137913                          *Shadow Scouts Team*

Edu

Esta bueno el code pero te diria q uses Option Explicit siempre ya q si lo pusieras ya te daria un error porq no has declarado la variable X cuando la usas por primera vez en el form load, asique la podrias declarar mejor donde declaraste la variable CT.

Despues lo de usar el bucle para sacar si ganaste horizontal o vertical o cruzado nunca lo habia pensado asi xD asique es buena ayuda para Daklon q esta haciendolo