Granjero obsesivo asp

En este ejemplo de vb.net aremos la construcción del ejercicio del granjero obsesivo,

Ejercicio sacado del libro de océano el cual dice:

Un granjero tiene 36 gallinas. Por alguna razón, ha construido un gallinero con las jaulas distribuidas

Como muestra la figura:


Coloca en cada jaula una cantidad diferente de gallina, pudiendo haber desde 1 hasta 8 gallinas, sin repetir la cantidad en otra jaula, teniendo tanta obsesión el granjero  que además de eso dos jaulas vecinas (no continuas por un lado ni en diagonal) no pueden contener cantidades consecutivas de gallina. Es decir, si una jaula contiene por ejemplo 5 gallinas, en las vecinas no puede haber ni 4 ni 6,  además de que en cualquier otra jaula no podrá haber 5 gallinas.

 ¿De qué modo distribuye el granjero sus gallinas?


Para hacer este ejercicio debemos crear el diseño el cual es el ya mostrado:

El cual consta de 8 textboxt que representarían las jaulas donde pondremos x cantidad de gallinas
Un button que nos dirá si repartimos correctamente las gallinas.

Leyendo el ejercicio se deben reconocer las condiciones como ser:

  1.         I.            Números del 1 al 8

  2.       II.            Todas las jaulas con una cantidad diferente o que las mismas sumen 36

  3.     III.            No permitir cantidades consecutivas por jaulas vecinas

 

Definiéndolas solo faltaría editar el código

aqui el codigo


Public Class appletenhtml
    Private Sub ok_Click(sender As Object, e As EventArgs) Handles ok.Click
    'numeros del 1 al 8   
If (CInt(TextBox1.Text) > 0 And CInt(TextBox1.Text) <= 8 And CInt(TextBox2.Text) > 0 And CInt(TextBox2.Text) <= 8 And CInt(TextBox3.Text) > 0 And CInt(TextBox3.Text) <= 8 And CInt(TextBox4.Text) > 0 And CInt(TextBox4.Text) <= 8 And CInt(TextBox5.Text) > 0 And CInt(TextBox5.Text) <= 8 And CInt(TextBox6.Text) > 0 And CInt(TextBox6.Text) <= 8 And CInt(TextBox7.Text) > 0 And CInt(TextBox7.Text) <= 8 And CInt(TextBox8.Text) > 0 And CInt(TextBox8.Text) <= 8) Then
            If ((CInt(TextBox1.Text) + CInt(TextBox2.Text) + CInt(TextBox3.Text) + CInt(TextBox4.Text) + CInt(TextBox5.Text) + CInt(TextBox6.Text) + CInt(TextBox7.Text) + CInt(TextBox8.Text)) = 36) Then
             'sumen 36
                ''------------------- no permitir cantidades consecutivas por jaulas vecinas
                If ((CInt(TextBox1.Text) + 1) <> CInt(TextBox2.Text) And (CInt(TextBox1.Text) - 1) <> CInt(TextBox2.Text)) Then
                    If ((CInt(TextBox1.Text) + 1) <> CInt(TextBox4.Text) And (CInt(TextBox1.Text) - 1) <> CInt(TextBox4.Text)) Then
                        If ((CInt(TextBox2.Text) + 1) <> CInt(TextBox5.Text) And (CInt(TextBox2.Text) - 1) <> CInt(TextBox5.Text)) Then
                            If ((CInt(TextBox4.Text) + 1) <> CInt(TextBox5.Text) And (CInt(TextBox4.Text) - 1) <> CInt(TextBox5.Text)) Then
                                If ((CInt(TextBox3.Text) + 1) <> CInt(TextBox4.Text) And (CInt(TextBox3.Text) - 1) <> CInt(TextBox4.Text)) Then
                                    If ((CInt(TextBox5.Text) + 1) <> CInt(TextBox6.Text) And (CInt(TextBox5.Text) - 1) <> CInt(TextBox6.Text)) Then
                                        If ((CInt(TextBox4.Text) + 1) <> CInt(TextBox7.Text) And (CInt(TextBox4.Text) - 1) <> CInt(TextBox7.Text)) Then
                                            If ((CInt(TextBox5.Text) + 1) <> CInt(TextBox8.Text) And (CInt(TextBox5.Text) - 1) <> CInt(TextBox8.Text)) Then
                                                If ((CInt(TextBox7.Text) + 1) <> CInt(TextBox8.Text) And (CInt(TextBox7.Text) - 1) <> CInt(TextBox8.Text)) Then
                                                    MsgBox("Correcto", MsgBoxStyle.MsgBoxRight)
                                                End If
                      End If
                                        End If
                                    End If
                                End If
                            End If
                        End If
                    End If
                End If
                ''--------------------------
            Else
                MsgBox("No repetir los numeros")
            End If
        Else
            MsgBox("error numeros del 1 al 8")
        End If
    End Sub
End Class


Saludos.

Descargar ejemplo:

Comentarios

  1. Me puedes ayudar resolviendo el granjero obsesivoel granjero obsesivo un granjero tiene 36 gallinas. por alguna razón ha construido un gallinero con las jaulas distribuidas como muestra la figura: coloca en cada jaula una cantidad diferente de gallinas: en una jaula, una gallina; en otra, 2 gallinas; en una tercera, 3, y sigue asi hasta ubicar en la octava jaula 8 gallinas. pero lo más curioso de su obsesión es lo siguiente: en ningún caso 2 jaulas vecinas (ni contiguas por un lado, ni en diagonal) contienen cantidades consecutivas de gallinas. es decir, si una jaula contiene, por ejemplo, 5 gallinas, en las vecinas no puede haber ni 4 ni 6.



    Y también respondiendo está pregunta.

    de qué modo distribuye el granjero sus gallinas?

    ResponderBorrar
  2. Hola solo tenes que hacer el ejercicio de mi parte te compartiré una pista
    ordena los números del 1 al 8 pues sumados dan 36.

    Procura que no sean continuos por lado: por ejemplo 3 y 4
    ni diagonal(de arriba abajo) por ejemplo 7 y 8

    ResponderBorrar
  3. Hola me puedes ayudar con la pregunta ¿ De qué modo distribuye el granjero sus gallinas? Por fa. Es para hoy

    ResponderBorrar

Publicar un comentario

Populares

Buscar en este blog