elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Ayuda. Juego del periódico (Cuadro Numérico)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda. Juego del periódico (Cuadro Numérico)  (Leído 3,863 veces)
juanlulete

Desconectado Desconectado

Mensajes: 31



Ver Perfil
Ayuda. Juego del periódico (Cuadro Numérico)
« en: 3 Agosto 2012, 14:09 pm »

Hola, estoy haciendo un programa para que me resuelva el cuadro numérico del periódico.
El programa consiste en 27 textbox y un botón.
Los textbox están ordenados de arriba hacia abajo y de izquierda a derecha.



Esta es solo la formula para la primera fila pero cuando pongo los signos (en el textbox 2 y 4) y el resultado (en el textbox 6) al iniciarla no funciona y me dice: "La conversión de la cadena "" en el tipo 'Double' no es válida."
Me lo dice en la parte de negrita.

Código:
Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim text1 As Integer
        Dim text3 As Integer
        Dim text5 As Integer

        Dim a As Integer
        Dim b As Integer
        Dim text2 As String = TextBox2.Text
        Dim text4 As String = TextBox4.Text
     
        For text1 = 1 To 9
            For text3 = 1 To 9
                For text5 = 1 To 9
                    If text2 = "*" Then a = text1 * text3
                    If text2 = "+" Then a = text1 + text3
                    If text2 = "-" Then a = text1 - text3
                    If text2 = "/" Then a = text1 / text3

                    If text4 = "*" Then b = a * text5
                    If text4 = "+" Then b = a + text5
                    If text4 = "-" Then b = a - text5
                    If text4 = "/" Then b = a / text5

                    If b = Val(TextBox6.Text) Then [b]TextBox1.Text = text1 And TextBox3.Text = text3 And TextBox5.Text = text5[/b]
                Next
            Next
        Next
    End Sub
End Class

¿Me podrían ayudar para que me funcione el cuadro entero y decirme como tendría que poner la fórmula?

Gracias.


En línea

Keyen Night


Desconectado Desconectado

Mensajes: 496


Nothing


Ver Perfil
Re: Ayuda. Juego del periódico (Cuadro Numérico)
« Respuesta #1 en: 3 Agosto 2012, 16:15 pm »

Explícame como es el juego porque no se cuál es :-X y seguro te puedo ayudar ;)


« Última modificación: 3 Agosto 2012, 21:07 pm por Keyen Night » En línea

La Fé Mueve Montañas...
                                    ...De Dinero

La programación es más que un trabajo es más que un hobby es una pasión...
juanlulete

Desconectado Desconectado

Mensajes: 31



Ver Perfil
Re: Ayuda. Juego del periódico (Cuadro Numérico)
« Respuesta #2 en: 3 Agosto 2012, 17:02 pm »

Claro, el juego consiste en rellenar las casillas que están en blanco con números del 0 al 9 (incluidos los dos)
Las "x" son los sitios donde faltan los números.
n es un número que ya te dan.

x - x + x    =8
-   +    +
x+ n  / x    =2
/    -    *   
x +x+  x   =9

=   =   =
2    4    8
En línea

Keyen Night


Desconectado Desconectado

Mensajes: 496


Nothing


Ver Perfil
Re: Ayuda. Juego del periódico (Cuadro Numérico)
« Respuesta #3 en: 3 Agosto 2012, 21:10 pm »

Entiendo, Pero tengo algunas preguntas, las operaciones son siempre las mismas?, osea siempre será:

Código:
x-x+x
- + +
x+n/x
  / - *  
x+x+x

Y otra, los resultados de las orillas también te los dan?
« Última modificación: 3 Agosto 2012, 21:12 pm por Keyen Night » En línea

La Fé Mueve Montañas...
                                    ...De Dinero

La programación es más que un trabajo es más que un hobby es una pasión...
juanlulete

Desconectado Desconectado

Mensajes: 31



Ver Perfil
Re: Ayuda. Juego del periódico (Cuadro Numérico)
« Respuesta #4 en: 3 Agosto 2012, 23:05 pm »

Las operaciones no son las mismas y los resultados de las orillas sí te los dan.
En línea

Keyen Night


Desconectado Desconectado

Mensajes: 496


Nothing


Ver Perfil
Re: Ayuda. Juego del periódico (Cuadro Numérico)
« Respuesta #5 en: 4 Agosto 2012, 00:59 am »

Ahora ya habiendo preguntado todo. Da ese error por que los valores no están, tu estas pidiendo los valores de los cuadros vacíos y eso es precisamente lo que estas buscando. Te doy un ejemplo:

Con el cuadro de 3x3 que tu me diste:

x - x + x    =8
-   +    +
x+ n  / x    =2
/    -    *  
x +x+  x   =9

=   =   =
2    4    8

Aquí hay 6 ecuaciones o formulas, como les quieras decir:

Código:
x-x+x=8
x+n/x=2
x+x+x=9
x-x/x=2
x+n-x=4
x+x*x=9

Entonces como estás haciendo debes dividir, sumar, restar o multiplicar los números del 1 al 9 con la formula que posees hasta hallar todas las posibles soluciones.

Coloquemosle nombre a las "x" que son los TextBox para confundirnos menos:

Por ejemplo:
Código:
x-x+x=8

Código
  1.        Dim resultado As Integer = 8
  2.  
  3.        For x1 As Integer = 1 To 9
  4.            For x2 As Integer = 1 To 9
  5.                For x3 As Integer = 1 To 9
  6.                    If x1 - x2 + x3 = resultado Then
  7.                        MessageBox.Show(String.Format("{0}-{1}+{2}={3}", x1, x2, x3, resultado))
  8.                    End If
  9.                Next
  10.            Next
  11.        Next

Este código hallo 52 soluciones posibles.

Código:
1-1+8=8
1-2+9=8
2-1+7=8
2-2+8=8
2-3+9=8
3-1+6=8
3-2+7=8
3-3+8=8
3-4+9=8
4-1+5=8
4-2+6=8
4-3+7=8
4-4+8=8
4-5+9=8
5-1+4=8
5-2+5=8
5-3+6=8
5-4+7=8
5-5+8=8
5-6+9=8
6-1+3=8
6-2+4=8
6-3+5=8
6-4+6=8
6-5+7=8
6-6+8=8
6-7+9=8
7-1+2=8
7-2+3=8
7-3+4=8
7-4+5=8
7-5+6=8
7-6+7=8
7-7+8=8
7-8+9=8
8-1+1=8
8-2+2=8
8-3+3=8
8-4+4=8
8-5+5=8
8-6+6=8
8-7+7=8
8-8+8=8
8-9+9=8
9-2+1=8
9-3+2=8
9-4+3=8
9-5+4=8
9-6+5=8
9-7+6=8
9-8+7=8
9-9+8=8

Ahora esas son posibles soluciones para esa fila, te recomiendo almacenar esas soluciones en algún sitio, porque cuando vayas a hallar los valores en las columnas que interceptan esa fila la solución correcta solo será unas pocas si que acaso una sola de las N que existan.

Ahora solucionaremos la primera columna:

Código:
x1-x4/x7=2

Debemos probar con los números del 1-9 para las "x" que no conocemos y usar los valores que hemos almacenado para las "x" que conocemos hasta que nos de 2 que es el resultado que buscamos.

Ejemplo:

Código
  1.  'Aqui almacenaremos las x1, x2 y x3 que dan solución'
  2.        Dim _x1 As New List(Of Integer)
  3.        Dim _x2 As New List(Of Integer)
  4.        Dim _x3 As New List(Of Integer)
  5.  
  6.        Dim resultado_fila_1 As Integer = 8
  7.        Dim resultado_columna_1 As Integer = 2
  8.  
  9.        For x1 As Integer = 1 To 9
  10.            For x2 As Integer = 1 To 9
  11.                For x3 As Integer = 1 To 9
  12.                    If x1 - x2 + x3 = resultado_fila_1 Then
  13.                        If Not _x1.Contains(x1) Then
  14.                            _x1.Add(x1)
  15.                        End If
  16.                        If Not _x2.Contains(x2) Then
  17.                            _x2.Add(x2)
  18.                        End If
  19.                        If Not _x3.Contains(x3) Then
  20.                            _x3.Add(x3)
  21.                        End If
  22.                    End If
  23.                Next
  24.            Next
  25.        Next
  26.  
  27.        For x4 As Integer = 1 To 9
  28.            For x7 As Integer = 1 To 9
  29.                For Each x1 As Integer In _x1
  30.                    If x1 - x4 / x7 = resultado_fila_1 Then
  31.                        MessageBox.Show(String.Format("{0}-{1}/{2}={3}", x1, x4, x7, resultado_columna_1))
  32.                    Else
  33.                        _x1.Remove(x1)
  34.                    End If
  35.                Next
  36.            Next
  37.        Next

Este código calcula que de las 52 soluciones solo hay 9 que satisfacen la columna 1 cuando intercepta la fila 1, este procedimiento hay que seguirlo aplicando hasta hallar la solución completa, es bastante trabajo pero al terminarlo es una obra de arte Los juegos de computadora son la máxima expresión de la lógica y la matemática aplicada :xD

Mira que si no se satisface la condición el valor es removido de _x1, vas realizando el procedimiento una y otra vez, y cuando finalices todas las filas y columnas te quedara una lista de valores x1, x2, x3, x4, x5 y x6 que guardan las combinaciones perfectas que llegan a la solución.
« Última modificación: 4 Agosto 2012, 20:52 pm por Keyen Night » En línea

La Fé Mueve Montañas...
                                    ...De Dinero

La programación es más que un trabajo es más que un hobby es una pasión...
s00rk

Desconectado Desconectado

Mensajes: 195



Ver Perfil
Re: Ayuda. Juego del periódico (Cuadro Numérico)
« Respuesta #6 en: 4 Agosto 2012, 01:48 am »

Cambia esto:
Código:
If b = Val(TextBox6.Text) Then [b]TextBox1.Text = text1 And TextBox3.Text = text3 And TextBox5.Text = text5[/b]

a esto:
Código:
If b = Val(TextBox6.Text) Then 
    TextBox1.Text = text1
    TextBox3.Text = text3
    TextBox5.Text = text5
End If
En línea

juanlulete

Desconectado Desconectado

Mensajes: 31



Ver Perfil
Re: Ayuda. Juego del periódico (Cuadro Numérico)
« Respuesta #7 en: 4 Agosto 2012, 11:57 am »

Muchas gracias Keyen Night eres un máquina y lo has explicado muy bien.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Plantilla y soft para periódico escrito
Diseño Gráfico
illera88 2 7,406 Último mensaje 20 Febrero 2010, 17:28 pm
por peib0l
Ayuda Python -script generador numerico-
Scripting
lithium93 2 3,179 Último mensaje 30 Octubre 2010, 00:17 am
por criskapunk
Ayuda programa en C que encuentre y reemplace un índice numérico
Programación C/C++
akakariko 1 2,425 Último mensaje 18 Septiembre 2017, 17:27 pm
por AlbertoBSD
Almacenamiento periodico de información de visor de eventos
Seguridad
aangrymasther 1 2,099 Último mensaje 5 Enero 2023, 02:28 am
por planton
truco periodico
Foro Libre
DaVinci4 1 1,653 Último mensaje 23 Marzo 2023, 20:22 pm
por Machacador
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines