Febrero 24, 2018, 06:07:22 am

Autor Tema: 3 en Raya, Tu vs Computer [Vb.net]  (Leído 4167 veces)

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

Desconectado .:.IlcOn14.:.

  • Yo vivo en CPH
  • ***
  • Mensajes: 1146
  • Sexo: Masculino
  • Simplemente Pro
    • Ver Perfil
3 en Raya, Tu vs Computer [Vb.net]
« en: Mayo 05, 2011, 10:28:20 am »
Aqui os dejo el código de un 3 en raya que he estado haciendo, consta de 2 niveles de dificultad, Facil y Normal, el facil es muy facil y el normal... algo dificil  ;D
Para hacer el juego, necesitas 11 imagebox, un combobox y 2 imagenes, asiq como no me apetece poner todo explicado, subo a internet la carpeta del proyecto, y dejo aqui el código.

Código: (vbnet) You are not allowed to view links. Register or Login
Public Class Form1
    Dim Enabledd(8) As Char
    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        For i = 0 To 8
            Enabledd(i) = Nothing
        Next
    End Sub
    Public Sub ReiniciarJuego() ' Renicia el Juego totalmente
        For i = 0 To 8
            Enabledd(i) = Nothing
        Next
        _1x1.Image = Nothing
        _1x2.Image = Nothing
        _1x3.Image = Nothing
        _2x1.Image = Nothing
        _2x2.Image = Nothing
        _2x3.Image = Nothing
        _3x1.Image = Nothing
        _3x2.Image = Nothing
        _3x3.Image = Nothing
        _1x1.Enabled = True
        _1x2.Enabled = True
        _1x3.Enabled = True
        _2x1.Enabled = True
        _2x2.Enabled = True
        _2x3.Enabled = True
        _3x1.Enabled = True
        _3x2.Enabled = True
        _3x3.Enabled = True
    End Sub
    ' Click en cualquier caja
    Private Sub Clicks()
        ' Codigo
        '....................................................
        ' Bloquea las imagenes y empieza la comparación
        _1x1.Enabled = False
        _1x2.Enabled = False
        _1x3.Enabled = False
        _2x1.Enabled = False
        _2x2.Enabled = False
        _2x3.Enabled = False
        _3x1.Enabled = False
        _3x2.Enabled = False
        _3x3.Enabled = False
        ' Compruebaciones
        '....................................................
        ' Comprueba si has ganado
        If Enabledd(0) = "C" And Enabledd(1) = "C" And Enabledd(2) = "C" Then
            MsgBox("Has ganado")
            ReiniciarJuego()
            Exit Sub
        ElseIf Enabledd(0) = "C" And Enabledd(3) = "C" And Enabledd(6) = "C" Then
            MsgBox("Has ganado")
            ReiniciarJuego()
            Exit Sub
        ElseIf Enabledd(0) = "C" And Enabledd(4) = "C" And Enabledd(8) = "C" Then
            MsgBox("Has ganado")
            ReiniciarJuego()
            Exit Sub
        ElseIf Enabledd(2) = "C" And Enabledd(5) = "C" And Enabledd(8) = "C" Then
            MsgBox("Has ganado")
            ReiniciarJuego()
            Exit Sub
        ElseIf Enabledd(6) = "C" And Enabledd(7) = "C" And Enabledd(8) = "C" Then
            MsgBox("Has ganado")
            ReiniciarJuego()
            Exit Sub
        ElseIf Enabledd(2) = "C" And Enabledd(4) = "C" And Enabledd(6) = "C" Then
            MsgBox("Has ganado")
            ReiniciarJuego()
            Exit Sub
        ElseIf Enabledd(1) = "C" And Enabledd(4) = "C" And Enabledd(7) = "C" Then
            MsgBox("Has ganado")
            ReiniciarJuego()
            Exit Sub
        ElseIf Enabledd(3) = "C" And Enabledd(4) = "C" And Enabledd(5) = "C" Then
            MsgBox("Has ganado")
            ReiniciarJuego()
            Exit Sub
        End If
        ' Contrincante Mueve y coloca
        If ComboBox1.Text = "Facil" Then
            ' Nivel Facil
            MoverFacil()
            _1x1.Enabled = True
            _1x2.Enabled = True
            _1x3.Enabled = True
            _2x1.Enabled = True
            _2x2.Enabled = True
            _2x3.Enabled = True
            _3x1.Enabled = True
            _3x2.Enabled = True
            _3x3.Enabled = True
        ElseIf ComboBox1.Text = "Normal" Then
            MoverNormal()
            _1x1.Enabled = True
            _1x2.Enabled = True
            _1x3.Enabled = True
            _2x1.Enabled = True
            _2x2.Enabled = True
            _2x3.Enabled = True
            _3x1.Enabled = True
            _3x2.Enabled = True
            _3x3.Enabled = True
        End If
        ' Comprueba si el contrincante ha ganado
        If Enabledd(0) = "Z" And Enabledd(1) = "Z" And Enabledd(2) = "Z" Then
            MsgBox("Has perdido")
            ReiniciarJuego()
            Exit Sub
        ElseIf Enabledd(0) = "Z" And Enabledd(3) = "Z" And Enabledd(6) = "Z" Then
            MsgBox("Has perdido")
            ReiniciarJuego()
            Exit Sub
        ElseIf Enabledd(0) = "Z" And Enabledd(4) = "Z" And Enabledd(8) = "Z" Then
            MsgBox("Has perdido")
            ReiniciarJuego()
            Exit Sub
        ElseIf Enabledd(2) = "Z" And Enabledd(5) = "Z" And Enabledd(8) = "Z" Then
            MsgBox("Has perdido")
            ReiniciarJuego()
            Exit Sub
        ElseIf Enabledd(6) = "Z" And Enabledd(7) = "Z" And Enabledd(8) = "Z" Then
            MsgBox("Has perdido")
            ReiniciarJuego()
            Exit Sub
        ElseIf Enabledd(2) = "Z" And Enabledd(4) = "Z" And Enabledd(6) = "Z" Then
            MsgBox("Has perdido")
            ReiniciarJuego()
            Exit Sub
        ElseIf Enabledd(1) = "Z" And Enabledd(4) = "Z" And Enabledd(7) = "Z" Then
            MsgBox("Has perdido")
            ReiniciarJuego()
            Exit Sub
        ElseIf Enabledd(3) = "Z" And Enabledd(4) = "Z" And Enabledd(5) = "Z" Then
            MsgBox("Has perdido")
            ReiniciarJuego()
            Exit Sub
        End If
    End Sub
    Dim a As New Random()
    Dim b As Integer
    ' Coloca ficha de forma FACIL
    Public Sub MoverFacil()
        If ObtenerLibres() = 0 Then
            ReiniciarJuego()
            Exit Sub
        End If
        b = a.Next(8)
        If Not Enabledd(b) = Nothing Then
            MoverFacil()
        Else
            Select Case b
                Case 0
                    _1x1.Image = Cruz.Image
                Case 1
                    _1x2.Image = Cruz.Image
                Case 2
                    _1x3.Image = Cruz.Image
                Case 3
                    _2x1.Image = Cruz.Image
                Case 4
                    _2x2.Image = Cruz.Image
                Case 5
                    _2x3.Image = Cruz.Image
                Case 6
                    _3x1.Image = Cruz.Image
                Case 7
                    _3x2.Image = Cruz.Image
                Case 8
                    _3x3.Image = Cruz.Image
            End Select
            Enabledd(b) = "Z"
        End If
    End Sub
    ' Coloca de Forma Normal
    Public Sub MoverNormal()
        'b = a.Next(7)
        'If b = 4 Or b = 2 Then
        'MoverFacil()
        ' Exit Sub
        'End If
        If ObtenerLibres() = 8 Then
            If Enabledd(4) = Nothing Then
                _2x2.Image = Cruz.Image
                Enabledd(4) = "Z"
                Exit Sub
            End If
            MoverFacil()
            Exit Sub
        ElseIf ObtenerLibres() = 0 Then
            ReiniciarJuego()
            Exit Sub
        Else
            MoverNormal6()
            Exit Sub
        End If
    End Sub
    Public Sub MoverNormal6()
        If ComprobarVerticales6() = 0 Then
            If ComprobarHorizontales6() = 0 Then
                If ComprobarDiagonales6() = 0 Then
                    MoverFacil()
                Else
                    Select Case ComprobarDiagonales6()
                        Case 1
                            _3x3.Image = Cruz.Image
                            Enabledd(8) = "Z"
                        Case 2
                            _2x2.Image = Cruz.Image
                            Enabledd(4) = "Z"
                        Case 3
                            _1x1.Image = Cruz.Image
                            Enabledd(0) = "Z"
                        Case 4
                            _3x1.Image = Cruz.Image
                            Enabledd(6) = "Z"
                        Case 5
                            _2x2.Image = Cruz.Image
                            Enabledd(4) = "Z"
                        Case 6
                            _1x3.Image = Cruz.Image
                            Enabledd(2) = "Z"
                    End Select
                End If
            Else
                Select Case ComprobarHorizontales6()
                    Case 1
                        _1x3.Image = Cruz.Image
                        Enabledd(2) = "Z"
                    Case 2
                        _1x2.Image = Cruz.Image
                        Enabledd(1) = "Z"
                    Case 3
                        _1x1.Image = Cruz.Image
                        Enabledd(0) = "Z"
                    Case 4
                        _2x3.Image = Cruz.Image
                        Enabledd(5) = "Z"
                    Case 5
                        _2x2.Image = Cruz.Image
                        Enabledd(4) = "Z"
                    Case 6
                        _2x1.Image = Cruz.Image
                        Enabledd(3) = "Z"
                    Case 7
                        _3x3.Image = Cruz.Image
                        Enabledd(8) = "Z"
                    Case 8
                        _3x2.Image = Cruz.Image
                        Enabledd(7) = "Z"
                    Case 9
                        _3x1.Image = Cruz.Image
                        Enabledd(6) = "Z"
                End Select
            End If
        Else
            Select Case ComprobarVerticales6()
                Case 1
                    _3x1.Image = Cruz.Image
                    Enabledd(6) = "Z"
                Case 2
                    _2x1.Image = Cruz.Image
                    Enabledd(3) = "Z"
                Case 3
                    _1x1.Image = Cruz.Image
                    Enabledd(0) = "Z"
                Case 4
                    _3x2.Image = Cruz.Image
                    Enabledd(7) = "Z"
                Case 5
                    _2x2.Image = Cruz.Image
                    Enabledd(4) = "Z"
                Case 6
                    _1x2.Image = Cruz.Image
                    Enabledd(1) = "Z"
                Case 7
                    _3x3.Image = Cruz.Image
                    Enabledd(8) = "Z"
                Case 8
                    _2x3.Image = Cruz.Image
                    Enabledd(5) = "Z"
                Case 9
                    _1x3.Image = Cruz.Image
                    Enabledd(2) = "Z"
            End Select
        End If
    End Sub
    '...............
    '
    '...............
    Public Function ComprobarVerticales6() As Integer ' Comprueba si hay opciones de resolver verticalmente
        If Enabledd(0) = "C" And Enabledd(3) = "C" Then
            If Enabledd(6) = Nothing Then : Return 1 : End If
        ElseIf Enabledd(0) = "C" And Enabledd(6) = "C" Then
            If Enabledd(3) = Nothing Then : Return 2 : End If
        ElseIf Enabledd(3) = "C" And Enabledd(6) = "C" Then
            If Enabledd(0) = Nothing Then : Return 3 : End If
        ElseIf Enabledd(1) = "C" And Enabledd(4) = "C" Then
            If Enabledd(7) = Nothing Then : Return 4 : End If
        ElseIf Enabledd(1) = "C" And Enabledd(7) = "C" Then
            If Enabledd(4) = Nothing Then : Return 5 : End If
        ElseIf Enabledd(4) = "C" And Enabledd(7) = "C" Then
            If Enabledd(1) = Nothing Then : Return 6 : End If
        ElseIf Enabledd(2) = "C" And Enabledd(5) = "C" Then
            If Enabledd(8) = Nothing Then : Return 7 : End If
        ElseIf Enabledd(2) = "C" And Enabledd(8) = "C" Then
            If Enabledd(5) = Nothing Then : Return 8 : End If
        ElseIf Enabledd(5) = "C" And Enabledd(8) = "C" Then
            If Enabledd(2) = Nothing Then : Return 9 : End If
        Else
            Return 0
        End If
    End Function
    Public Function ComprobarHorizontales6() As Integer
        If Enabledd(0) = "C" And Enabledd(1) = "C" Then
            If Enabledd(2) = Nothing Then : Return 1 : End If
        ElseIf Enabledd(0) = "C" And Enabledd(2) = "C" Then
            If Enabledd(1) = Nothing Then : Return 2 : End If
        ElseIf Enabledd(1) = "C" And Enabledd(2) = "C" Then
            If Enabledd(0) = Nothing Then : Return 3 : End If
        ElseIf Enabledd(3) = "C" And Enabledd(4) = "C" Then
            If Enabledd(5) = Nothing Then : Return 4 : End If
        ElseIf Enabledd(3) = "C" And Enabledd(5) = "C" Then
            If Enabledd(4) = Nothing Then : Return 5 : End If
        ElseIf Enabledd(4) = "C" And Enabledd(5) = "C" Then
            If Enabledd(3) = Nothing Then : Return 6 : End If
        ElseIf Enabledd(6) = "C" And Enabledd(7) = "C" Then
            If Enabledd(8) = Nothing Then : Return 7 : End If
        ElseIf Enabledd(6) = "C" And Enabledd(8) = "C" Then
            If Enabledd(7) = Nothing Then : Return 8 : End If
        ElseIf Enabledd(7) = "C" And Enabledd(8) = "C" Then
            If Enabledd(6) = Nothing Then : Return 9 : End If
        Else
            Return 0
        End If
    End Function
    Public Function ComprobarDiagonales6() As Integer
        If Enabledd(0) = "C" And Enabledd(4) = "C" Then
            If Enabledd(8) = Nothing Then : Return 1 : End If
        ElseIf Enabledd(0) = "C" And Enabledd(8) = "C" Then
            If Enabledd(4) = Nothing Then : Return 2 : End If
        ElseIf Enabledd(4) = "C" And Enabledd(8) = "C" Then
            If Enabledd(0) = Nothing Then : Return 3 : End If
        ElseIf Enabledd(2) = "C" And Enabledd(4) = "C" Then
            If Enabledd(6) = Nothing Then : Return 4 : End If
        ElseIf Enabledd(2) = "C" And Enabledd(6) = "C" Then
            If Enabledd(4) = Nothing Then : Return 5 : End If
        ElseIf Enabledd(4) = "C" And Enabledd(6) = " C" Then
            If Enabledd(2) = Nothing Then : Return 6 : End If
        Else
            Return 0
        End If
    End Function
    '...............
    '
    '...............
    Public Function ObtenerLibres() As Byte
        Dim Contador As Byte = 0
        For i = 0 To 8
            If Enabledd(i) = Nothing Then
                Contador += 1
            End If
        Next i
        Return Contador
    End Function
    Private Sub Click1x1() Handles _1x1.Click
        If Not Enabledd(0) = Nothing Then : Exit Sub : End If
        _1x1.Image = Circulo.Image
        Enabledd(0) = "C"
        Clicks()
    End Sub
    Private Sub Click1x2() Handles _1x2.Click
        If Not Enabledd(1) = Nothing Then : Exit Sub : End If
        _1x2.Image = Circulo.Image
        Enabledd(1) = "C"
        Clicks()
    End Sub
    Private Sub Click1x3() Handles _1x3.Click
        If Not Enabledd(2) = Nothing Then : Exit Sub : End If
        _1x3.Image = Circulo.Image
        Enabledd(2) = "C"
        Clicks()
    End Sub
    Private Sub Click2x1() Handles _2x1.Click
        If Not Enabledd(3) = Nothing Then : Exit Sub : End If
        _2x1.Image = Circulo.Image
        Enabledd(3) = "C"
        Clicks()
    End Sub
    Private Sub Click2x2() Handles _2x2.Click
        If Not Enabledd(4) = Nothing Then : Exit Sub : End If
        _2x2.Image = Circulo.Image
        Enabledd(4) = "C"
        Clicks()
    End Sub
    Private Sub Click2x3() Handles _2x3.Click
        If Not Enabledd(5) = Nothing Then : Exit Sub : End If
        _2x3.Image = Circulo.Image
        Enabledd(5) = "C"
        Clicks()
    End Sub
    Private Sub Click3x1() Handles _3x1.Click
        If Not Enabledd(6) = Nothing Then : Exit Sub : End If
        _3x1.Image = Circulo.Image
        Enabledd(6) = "C"
        Clicks()
    End Sub
    Private Sub Click3x2() Handles _3x2.Click
        If Not Enabledd(7) = Nothing Then : Exit Sub : End If
        _3x2.Image = Circulo.Image
        Enabledd(7) = "C"
        Clicks()
    End Sub
    Private Sub Click3x3() Handles _3x3.Click
        If Not Enabledd(8) = Nothing Then : Exit Sub : End If
        _3x3.Image = Circulo.Image
        Enabledd(8) = "C"
        Clicks()
    End Sub
End Class
En el codigo hay una zona que es codigo en forma de comentario, para reducir el nivel de el nivel normal, quitar los signos de comentario ;)

You are not allowed to view links. Register or Login ;)

Saludos!
Fuck Youuuuuuuuu (8)(8)

Desconectado mDrinky

  • Si te metes con CPH
    te metes conmigo
  • ****
  • Mensajes: 2868
    • Ver Perfil
Re: 3 en Raya, Tu vs Computer [Vb.net]
« Respuesta #1 en: Mayo 05, 2011, 01:59:08 pm »
^^ no esta mal pero se peude resumir el código bastante  :P

salu2!
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
Que guapo soy!

Desconectado .:.IlcOn14.:.

  • Yo vivo en CPH
  • ***
  • Mensajes: 1146
  • Sexo: Masculino
  • Simplemente Pro
    • Ver Perfil
Re: 3 en Raya, Tu vs Computer [Vb.net]
« Respuesta #2 en: Mayo 05, 2011, 02:01:21 pm »
Tan poco te creas eh, porque en ninguno de los sitios donde se repite siempre lo mismo se sigue un patron fijo...

Desconectado mDrinky

  • Si te metes con CPH
    te metes conmigo
  • ****
  • Mensajes: 2868
    • Ver Perfil
Re: 3 en Raya, Tu vs Computer [Vb.net]
« Respuesta #3 en: Mayo 05, 2011, 02:07:39 pm »
eso da igual,con una funcion y los eventos de los botones se hace, piensalo y veras.

Desconectado .:.IlcOn14.:.

  • Yo vivo en CPH
  • ***
  • Mensajes: 1146
  • Sexo: Masculino
  • Simplemente Pro
    • Ver Perfil
Re: 3 en Raya, Tu vs Computer [Vb.net]
« Respuesta #4 en: Mayo 05, 2011, 03:06:44 pm »
Si, es verdad, pero de esta forma es mas facil modificar / reutilizar el código ;)


xx
computer news

Iniciado por juandingas

2 Respuestas
1003 Vistas
Último mensaje Junio 24, 2007, 12:10:59 am
por xax
xx
computer stolen

Iniciado por andresveas

0 Respuestas
2294 Vistas
Último mensaje Abril 17, 2016, 08:08:40 pm
por andresveas
question
Varible no definida my.computer..

Iniciado por heetin

10 Respuestas
2004 Vistas
Último mensaje Julio 12, 2011, 06:05:03 pm
por calerobadia
xx
Computer Tool _/By_äim_HünteR\_

Iniciado por .-EL_Mello-.{%Windir%}

3 Respuestas
1345 Vistas
Último mensaje Octubre 10, 2007, 02:55:39 am
por ÄìmBòt
xx
The psychology of computer programming

Iniciado por chilicuil

2 Respuestas
1075 Vistas
Último mensaje Mayo 15, 2009, 11:27:11 pm
por chilicuil
xx
Shodan a Computer search engine

Iniciado por chili-remasterizado

4 Respuestas
1189 Vistas
Último mensaje Diciembre 07, 2009, 05:30:18 pm
por ~Gean
resuelto
Como programar en un Pocket Computer ?

Iniciado por JaAViEr

2 Respuestas
1190 Vistas
Último mensaje ſeptiembre 24, 2010, 05:27:47 pm
por JaAViEr
exclamation
Personal Computer & Internet - Curso de Linux con Ubuntu

Iniciado por Malvinas

0 Respuestas
816 Vistas
Último mensaje Julio 02, 2010, 05:31:31 pm
por Malvinas
grin
3 EN RAYA

Iniciado por kokehack

2 Respuestas
1267 Vistas
Último mensaje Marzo 31, 2007, 10:01:41 am
por kokehack
exclamation
juego 3 en raya!

Iniciado por DaNNiXs

14 Respuestas
1879 Vistas
Último mensaje Diciembre 28, 2009, 04:16:11 am
por ---saster---