Autor Tema: Juego del domino en Visual Basic  (Leído 7615 veces)

Andres7722

  • Sin experiencia
  • *
  • Mensajes: 6
    • Ver Perfil
Juego del domino en Visual Basic
« en: 10 de Mayo 2015, 22:36 »
Hola: muy buenas, verán estoy metido en un proyecto del juego del domino, donde tengo un boton para iniciar el juego con un Random que mezclan las imagen, de cada 28 piezas que se compone el juego, cada pieza tiene su imagen correspondiente, después del random al hacer click en una de ellas le paso la posición donde yo deseo, hasta hay bien. El problema es que no se como puedo hacer en tiempo de ejecución que compare la colocada con la siguiente a colocar?? y sino se corresponden que mande un sonido o un msgbox .? es posible que las imagen no sean las adecuadas para este tipo de juego??   posdata: esto lo hago con visual Express 2010. Gracias muchas gracias un saludo
« Última modificación: 11 de Mayo 2015, 11:11 por Alex Rodríguez »

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Re:Juego del domino
« Respuesta #1 en: 11 de Mayo 2015, 11:11 »
Hola Andrés, para poder ayudar siempre pedimos que se pegue o añada como archivo adjunto el código necesario (incluidos archivos auxiliares, por ejemplo en este caso archivos de imágenes). La forma de pegar o adjuntar archivos la tienes explicada en https://www.aprenderaprogramar.com/foros/index.php?topic=1460.0

Saludos

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Re:Juego del domino en Visual Basic
« Respuesta #2 en: 11 de Mayo 2015, 11:13 »
Por cierto para quien pueda tener curiosidad indicar que crear un programa de juego del dominó completo desde cero es bastante laborioso y requiere bastante tiempo y conocimientos...

Andres7722

  • Sin experiencia
  • *
  • Mensajes: 6
    • Ver Perfil
Re:Juego del domino en Visual Basic
« Respuesta #3 en: 11 de Mayo 2015, 12:36 »
Hola de nuevo : Alex pues si es bastante complicado y creo que empece muy fuerte, la teoría  del juego la tengo porque soy vicioso de este  juego, y soy consciente  que es muy complicado. Bueno vamos al tema los picturebox los tengo en archivos de recurso del proyecto y definidos con el tag o el nombre a cada imagen,  como ya comenté antes el problema lo tengo cuando hago click en una imagen o ficha. como puedo comparar una con otra?   pregunto he existe  la posibilidad de enumera las imagen ??  seria una opción, de   todas formas le enviare el codígo  del random y el click de una de las imagen. A ver qué hago mal. A continuación del random hay un select case que es el turno donde empieza el jugado con la 1ª ficha a colocar. gracias de nuevo sr. Alex.

Código: [Seleccionar]
Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click   
        'MEZCLAR Y REPARTIR FICHAS
        Dim listaimagenes As New List(Of Image)
        For index = 1 To 28
            Dim picture As PictureBox = Me.Controls.Item("PictureBox" + index.ToString())
            listaimagenes.Add(picture.Image.Tag)
        Next
        Dim rnd As New Random(DateTime.Now.Millisecond)
        For inde = 1 To 28
            Dim pos As Integer = rnd.Next(listaimagenes.Count)
            Dim picture As PictureBox = Me.Controls.Item("PictureBox" + inde.ToString())
            picture.Image = listaimagenes(pos)
            Timer1.Start()
            listaimagenes.RemoveAt(pos)
        Next
        counter = 0
        Timer1.Interval = 20
        Timer1.Enabled = True
        'Primero desabilitas los 4 botones

        Button2.Visible = False
        Button5.Visible = False
        Button4.Visible = False
        Button3.Visible = False

        Dim temp As Integer = rnd.[Next](1, 4)
        Select Case temp
            Case 1
                Button2.Visible = True
                Button2.Enabled = True
                Button2.Text = "Juego yo " & sender.tag
                Button2.Focus()
                Button2.BackColor = Color.Cyan
                Exit Select
            Case 2
                Button3.Visible = True
                Button3.Enabled = True
                Button3.Text = "Juego yo " & sender.tag
                Button3.Focus()
                Button3.BackColor = Color.Cyan

                Exit Select
            Case 3
                Button4.Visible = True
                Button4.Enabled = True
                Button4.Text = "Juego yo " & sender.tag
                Button4.Focus()
                Button4.BackColor = Color.Cyan

                Exit Select
            Case 4
                Button5.Visible = True
                Button5.Enabled = True
                Button5.Text = "Juego yo " & sender.tag
                Button5.Focus()
                Button5.BackColor = Color.Cyan

                Exit Select
            Case Else
                Exit Select
        End Select

    End Sub]  Private Sub PictureBox1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles PictureBox1.Click
        ' IZQUIERDA
        PictureBox1.Location = New Point(425, 200)
        PictureBox1.Image.RotateFlip(RotateFlipType.Rotate270FlipNone)
        PictureBox1.Width = 69
        PictureBox1.Height = 50
        Label2.Text = "Picture1" & sender.tag
        Button4.Visible = False
        Button3.Visible = True
        Button3.BackColor = Color.Cyan
    End Sub
« Última modificación: 12 de Mayo 2015, 12:19 por Alex Rodríguez »

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Re:Juego del domino en Visual Basic
« Respuesta #4 en: 12 de Mayo 2015, 12:52 »
Hola, te digo cómo empezaría yo, aunque si otras personas pueden aportar ideas serían bienvenidas.

Como el juego es muy complicado, antes de intentar crear el juego trataría de hacer un programa simple que me sirviera como base para ir construyendo el juego. Supongamos que el programa simple consiste en poner 4 fichas encima de la pantalla: el doble seis, el seis-cinco, el cinco-cuatro y el cuatro-seis.

Definiría dos zonas: la zona de fichas y la zona de juego.

Inicialmente, se podría arrastrar una ficha desde la zona de fichas hacia la zona de juego. Para simplificar, inicialmente todas las fichas dobles sólo permitiría que fueran en vertical y todas las demás fichas en horizontal.

Ahora tendríamos que hacer supuestos de jugadas. Para detectar los movimientos necesitaríamos detectar el evento de movimiento de una ficha y comprobar que la ficha se coloca en la posición de juego.

Prueba de jugada 1:

Supongamos que arrastramos a la zona de juego el doble seis. A continuación arrastramos el cinco-cuatro. Nos tendría que salir un mensaje: "No está permitido colocar esta ficha".

Prueba de jugada 2:

Supongamos que arrastramos a la zona de juego el doble seis. A continuación arrastramos el cuatro seis. El programa debería colocar la ficha con el seis pegando al doble seis y el cuatro en sentido opuesto, de modo que el seis quede alineado como debe...


¿Cómo comprobar si una ficha puede colocarse?

Podría hacerse de muchas maneras, supongo que lo mejor sería crear una clase ficha donde tengas atributos y puedas establecer posiciones de rotación, pero esto requiere un buen dominio de orientación a objetos y otras cosas. Si no quieres meterte con esto podrías hacerlo intentando mantener en la propiedad Tag del picturebox qué números tiene la ficha y en qué posición está. Por ejemplo, si se coloca un doble seis tendríamos PictureBox1.Tag = "doble6"

Esta ficha sólo sería compatible con fichas como "seis_left_cuatro_right". En estas fichas tienes que diferenciar qué número queda a la izquierda y cuál a la derecha. En caso de intentar colocar sobre un doble seis una ficha "cuatro_left_seis_right" tendrías que rotar la imagen 180 grados y cambiar su atributo a "seis_left_cuatro_rigth" para que quedara la imagen como debe y la información de la ficha como debe.

Una vez conseguido todo esto ya pasaría a ver más cuestiones.

Saludos

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".