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

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


  Mostrar Temas
Páginas: 1 2 3 [4]
31  Programación / .NET (C#, VB.NET, ASP) / Duda ejercicio basico de programacion en: 24 Enero 2013, 21:07 pm
Muy buenas, estaba haciendo un ejercicio en visual sobre un juego de adivinar un nº que se introduce por pantalla y no se como hacer una de las partes. Exactamente la parte de los acumuladores de los puntos, por no querer rescribir todo el código lo he ido haciendo de una manera y al final me esta dando mas problemas que otra cosa.

El problema dice así: se desea realizar un programa donde se tienen a 2 jugadores y un arbitro, el arbitro introduce un nº por teclado y los 2 jugadores intenta averiguarlo. El nº debe estar entre el 1 y 100. Como máximo tienen 5 intentos y juegan de manera alternada. El que acierta a la primera obtendra 10 pts, si es a la 2ª 8puntos, 3ª 6puntos, 4ª 4 puntos 5ª 2puntos 6ª pierden el juego.
Hay que darles pistas a los jugadores si el nº introducido se encuentra a + o - 3 del nº a acertar mostrar "quemando", si es + o - 7 caliente, si es + o - 15 mostrar templado, resto frio.
Se acumulan los puntos, de forma que  se muestren siempre los puntos aun terminando una partida, poner un botón de inicio y otro de finalizar.

Por ahora me sale todo bien, excepto que siempre se me mete por la misma sentencia en puntos acumulados y gane quien gane se los da siempre al jugador 1.
¿ De que otra forma debería haberlo hecho  o que tengo que cambiar ?, por otra parte como hago un botón finalizar que interactue en el código del sub_button1 que es el botón de iniciar ?.

Código
  1. Public Class Form1
  2.    Dim T_PUNTOS_J1 As Short
  3.    Dim T_PUNTOS_J2 As Short
  4.    Dim I As Integer
  5.  
  6.    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  7.        Dim NUM_ACERTAR As Short
  8.        Dim NUM As Short
  9.        Dim PISTAS As Short
  10.        Dim B As Boolean = False
  11.        Dim C_INTENTOS As Short = 0
  12.        Dim C_INTENTOS_J2 As Short = 0
  13.  
  14.        For Me.I = 0 To 999
  15.  
  16.            NUM_ACERTAR = InputBox("Que el arbitro introduzca un nº entre 1 y 100")
  17.            Do Until NUM_ACERTAR >= 1 And NUM_ACERTAR <= 100
  18.                NUM_ACERTAR = InputBox("Introduzca un nº entre 1 y 100")
  19.            Loop
  20.  
  21.            Do
  22.                If B = False Then
  23.                    B = True
  24.                    C_INTENTOS = C_INTENTOS + 1
  25.                    NUM = InputBox("Turno del Jugador 1, intento nº: " & C_INTENTOS, "Turno Jugador 1", 0)
  26.                    TextBox4.Text = TextBox4.Text & " Numero: " & NUM & Chr(13) & Chr(10)
  27.                Else
  28.                    B = False
  29.                    C_INTENTOS_J2 = C_INTENTOS_J2 + 1
  30.                    NUM = InputBox("Turno del Jugador 2, intento nº: " & C_INTENTOS_J2, "Turno Jugador 2", 0)
  31.                    TextBox4.Text = TextBox4.Text & " Numero: " & NUM & Chr(13) & Chr(10)
  32.                End If
  33.  
  34.                'MENSAJES DE TEXTO PISTAS
  35.                If NUM_ACERTAR > NUM Then
  36.                    PISTAS = NUM_ACERTAR - NUM
  37.                ElseIf NUM_ACERTAR < NUM Then
  38.                    PISTAS = NUM - NUM_ACERTAR
  39.                ElseIf NUM = NUM_ACERTAR Then
  40.                    PISTAS = 0
  41.                End If
  42.  
  43.                If PISTAS <= 3 Then
  44.                    TextBox1.Text = "QUEMANDO"
  45.                ElseIf PISTAS <= 7 Then
  46.                    TextBox1.Text = "CALIENTE"
  47.                ElseIf PISTAS <= 15 Then
  48.                    TextBox1.Text = "TEMPLADO"
  49.                Else
  50.                    TextBox1.Text = "FRIO"
  51.                End If
  52.  
  53.                'RECUENTOS DE LOS PUNTOS ACUMULADOS
  54.                If C_INTENTOS = 1 And NUM = NUM_ACERTAR Then
  55.                    T_PUNTOS_J1 = T_PUNTOS_J1 + 10
  56.                    C_INTENTOS = 6
  57.                    TextBox1.Text = "HAS GANADO J1"
  58.                ElseIf C_INTENTOS = 2 And NUM = NUM_ACERTAR Then
  59.                    T_PUNTOS_J1 = T_PUNTOS_J1 + 8
  60.                    C_INTENTOS = 6
  61.                    TextBox1.Text = "HAS GANADO J1"
  62.                ElseIf C_INTENTOS = 3 And NUM = NUM_ACERTAR Then
  63.                    T_PUNTOS_J1 = T_PUNTOS_J1 + 6
  64.                    C_INTENTOS = 6
  65.                    TextBox1.Text = "HAS GANADO J1"
  66.                ElseIf C_INTENTOS = 4 And NUM = NUM_ACERTAR Then
  67.                    T_PUNTOS_J1 = T_PUNTOS_J1 + 4
  68.                    C_INTENTOS = 6
  69.                    TextBox1.Text = "HAS GANADO J1"
  70.                ElseIf C_INTENTOS = 5 And NUM = NUM_ACERTAR Then
  71.                    T_PUNTOS_J1 = T_PUNTOS_J1 + 2
  72.                    C_INTENTOS = 6
  73.                    TextBox1.Text = "HAS GANADO J1"
  74.                ElseIf C_INTENTOS_J2 = 1 And NUM = NUM_ACERTAR Then
  75.                    T_PUNTOS_J2 = T_PUNTOS_J2 + 10
  76.                    C_INTENTOS = 6
  77.                    TextBox1.Text = "HAS GANADO J2"
  78.                ElseIf C_INTENTOS_J2 = 2 And NUM = NUM_ACERTAR Then
  79.                    T_PUNTOS_J2 = T_PUNTOS_J2 + 8
  80.                    C_INTENTOS = 6
  81.                    TextBox1.Text = "HAS GANADO J2"
  82.                ElseIf C_INTENTOS_J2 = 3 And NUM = NUM_ACERTAR Then
  83.                    T_PUNTOS_J2 = T_PUNTOS_J2 + 6
  84.                    C_INTENTOS = 6
  85.                    TextBox1.Text = "HAS GANADO J2"
  86.                ElseIf C_INTENTOS_J2 = 4 And NUM = NUM_ACERTAR Then
  87.                    T_PUNTOS_J2 = T_PUNTOS_J2 + 4
  88.                    C_INTENTOS = 6
  89.                    TextBox1.Text = "HAS GANADO J2"
  90.                ElseIf C_INTENTOS_J2 = 5 And NUM = NUM_ACERTAR Then
  91.                    T_PUNTOS_J2 = T_PUNTOS_J2 + 2
  92.                    C_INTENTOS = 6
  93.                    TextBox1.Text = "HAS GANADO J2"
  94.                End If
  95.  
  96.                TextBox2.Text = T_PUNTOS_J1
  97.                TextBox3.Text = T_PUNTOS_J2
  98.  
  99.            Loop Until C_INTENTOS >= 5
  100.            I = 99999
  101.        Next
  102.    End Sub
  103.  
  104. End Class
  105.  
32  Programación / Programación Visual Basic / Duda ejercicio basico de programacion en: 24 Enero 2013, 20:23 pm
Muy buenas, estaba haciendo un ejercicio en visual sobre un juego de adivinar un nº que se introduce por pantalla y no se como hacer una de las partes. Exactamente la parte de los acumuladores de los puntos, por no querer rescribir todo el código lo he ido haciendo de una manera y al final me esta dando mas problemas que otra cosa.

El problema dice así: se desea realizar un programa donde se tienen a 2 jugadores y un arbitro, el arbitro introduce un nº por teclado y los 2 jugadores intenta averiguarlo. El nº debe estar entre el 1 y 100. Como máximo tienen 5 intentos y juegan de manera alternada. El que acierta a la primera obtendra 10 pts, si es a la 2ª 8puntos, 3ª 6puntos, 4ª 4 puntos 5ª 2puntos 6ª pierden el juego.
Hay que darles pistas a los jugadores si el nº introducido se encuentra a + o - 3 del nº a acertar mostrar "quemando", si es + o - 7 caliente, si es + o - 15 mostrar templado, resto frio.
Se acumulan los puntos, de forma que  se muestren siempre los puntos aun terminando una partida, poner un botón de inicio y otro de finalizar.

Por ahora me sale todo bien, excepto que siempre se me mete por la misma sentencia en puntos acumulados y gane quien gane se los da siempre al jugador 1.
¿ De que otra forma debería haberlo hecho  o que tengo que cambiar ?, por otra parte como hago un botón finalizar que interactue en el código del sub_button1 que es el botón de iniciar ?.

Código
  1. Public Class Form1
  2.    Dim T_PUNTOS_J1 As Short
  3.    Dim T_PUNTOS_J2 As Short
  4.    Dim I As Integer
  5.  
  6.    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  7.        Dim NUM_ACERTAR As Short
  8.        Dim NUM As Short
  9.        Dim PISTAS As Short
  10.        Dim B As Boolean = False
  11.        Dim C_INTENTOS As Short = 0
  12.        Dim C_INTENTOS_J2 As Short = 0
  13.  
  14.        For Me.I = 0 To 999
  15.  
  16.            NUM_ACERTAR = InputBox("Que el arbitro introduzca un nº entre 1 y 100")
  17.            Do Until NUM_ACERTAR >= 1 And NUM_ACERTAR <= 100
  18.                NUM_ACERTAR = InputBox("Introduzca un nº entre 1 y 100")
  19.            Loop
  20.  
  21.            Do
  22.                If B = False Then
  23.                    B = True
  24.                    C_INTENTOS = C_INTENTOS + 1
  25.                    NUM = InputBox("Turno del Jugador 1, intento nº: " & C_INTENTOS, "Turno Jugador 1", 0)
  26.                    TextBox4.Text = TextBox4.Text & " Numero: " & NUM & Chr(13) & Chr(10)
  27.                Else
  28.                    B = False
  29.                    C_INTENTOS_J2 = C_INTENTOS_J2 + 1
  30.                    NUM = InputBox("Turno del Jugador 2, intento nº: " & C_INTENTOS_J2, "Turno Jugador 2", 0)
  31.                    TextBox4.Text = TextBox4.Text & " Numero: " & NUM & Chr(13) & Chr(10)
  32.                End If
  33.  
  34.                'MENSAJES DE TEXTO PISTAS
  35.                If NUM_ACERTAR > NUM Then
  36.                    PISTAS = NUM_ACERTAR - NUM
  37.                ElseIf NUM_ACERTAR < NUM Then
  38.                    PISTAS = NUM - NUM_ACERTAR
  39.                ElseIf NUM = NUM_ACERTAR Then
  40.                    PISTAS = 0
  41.                End If
  42.  
  43.                If PISTAS <= 3 Then
  44.                    TextBox1.Text = "QUEMANDO"
  45.                ElseIf PISTAS <= 7 Then
  46.                    TextBox1.Text = "CALIENTE"
  47.                ElseIf PISTAS <= 15 Then
  48.                    TextBox1.Text = "TEMPLADO"
  49.                Else
  50.                    TextBox1.Text = "FRIO"
  51.                End If
  52.  
  53.                'RECUENTOS DE LOS PUNTOS ACUMULADOS
  54.                If C_INTENTOS = 1 And NUM = NUM_ACERTAR Then
  55.                    T_PUNTOS_J1 = T_PUNTOS_J1 + 10
  56.                    C_INTENTOS = 6
  57.                    TextBox1.Text = "HAS GANADO J1"
  58.                ElseIf C_INTENTOS = 2 And NUM = NUM_ACERTAR Then
  59.                    T_PUNTOS_J1 = T_PUNTOS_J1 + 8
  60.                    C_INTENTOS = 6
  61.                    TextBox1.Text = "HAS GANADO J1"
  62.                ElseIf C_INTENTOS = 3 And NUM = NUM_ACERTAR Then
  63.                    T_PUNTOS_J1 = T_PUNTOS_J1 + 6
  64.                    C_INTENTOS = 6
  65.                    TextBox1.Text = "HAS GANADO J1"
  66.                ElseIf C_INTENTOS = 4 And NUM = NUM_ACERTAR Then
  67.                    T_PUNTOS_J1 = T_PUNTOS_J1 + 4
  68.                    C_INTENTOS = 6
  69.                    TextBox1.Text = "HAS GANADO J1"
  70.                ElseIf C_INTENTOS = 5 And NUM = NUM_ACERTAR Then
  71.                    T_PUNTOS_J1 = T_PUNTOS_J1 + 2
  72.                    C_INTENTOS = 6
  73.                    TextBox1.Text = "HAS GANADO J1"
  74.                ElseIf C_INTENTOS_J2 = 1 And NUM = NUM_ACERTAR Then
  75.                    T_PUNTOS_J2 = T_PUNTOS_J2 + 10
  76.                    C_INTENTOS = 6
  77.                    TextBox1.Text = "HAS GANADO J2"
  78.                ElseIf C_INTENTOS_J2 = 2 And NUM = NUM_ACERTAR Then
  79.                    T_PUNTOS_J2 = T_PUNTOS_J2 + 8
  80.                    C_INTENTOS = 6
  81.                    TextBox1.Text = "HAS GANADO J2"
  82.                ElseIf C_INTENTOS_J2 = 3 And NUM = NUM_ACERTAR Then
  83.                    T_PUNTOS_J2 = T_PUNTOS_J2 + 6
  84.                    C_INTENTOS = 6
  85.                    TextBox1.Text = "HAS GANADO J2"
  86.                ElseIf C_INTENTOS_J2 = 4 And NUM = NUM_ACERTAR Then
  87.                    T_PUNTOS_J2 = T_PUNTOS_J2 + 4
  88.                    C_INTENTOS = 6
  89.                    TextBox1.Text = "HAS GANADO J2"
  90.                ElseIf C_INTENTOS_J2 = 5 And NUM = NUM_ACERTAR Then
  91.                    T_PUNTOS_J2 = T_PUNTOS_J2 + 2
  92.                    C_INTENTOS = 6
  93.                    TextBox1.Text = "HAS GANADO J2"
  94.                End If
  95.  
  96.                TextBox2.Text = T_PUNTOS_J1
  97.                TextBox3.Text = T_PUNTOS_J2
  98.  
  99.            Loop Until C_INTENTOS >= 5
  100.            I = 99999
  101.        Next
  102.    End Sub
  103.  
  104. End Class
33  Programación / Programación General / ¿Alguien sabe como aprender el Inglés orientado a la informática ? en: 14 Diciembre 2012, 19:31 pm
Antes de todo no se a que categoría pertenece mi pregunta :/ si algún admin decide cambiarlo ;) mejor.

Ahora si, tenía ganas de leer un libro de programación pero al ver que la mayoría son en inglés al parecer lo que necesito antes es aprender inglés :/ . He decidido aprender antes inglés , el problema que veo es que no encuentro libros orientados a la informática. Como conocer las palabras mas usadas, sinónimos típicos lenguajes sus significado, frases típicas y la verdad no se si existen siquiera este tipo de libros tan... raros. Muchas veces me ha pasado de leer algo que no entiendo traducirlo con google traductor y encontrar una frase sin sentido ninguno.

¿ Alguna idea ?
34  Programación / Programación General / Duda en seudocodigo en: 8 Diciembre 2012, 02:33 am
Muy buenas, estaba viendo uno de los ejemplos que tengo y no entiendo bien una cosilla en un método de ordenación sucesivo de menores. El ejemplo dice dado un array de 100 elementos ordenar de menor a mayor usando el método de ordenación sucesivo de menores.


Mi pregunta viene en el método de proc_intercambio
Código:
<ordenar>
Inicio
  Tabla Tb(100)
  <cargar_tabla>
  <orde_sucesivo_de_menores>
  <proc_intercambio>
Fin

<orde_sucesivo_de_menores>
Inicio
  Para i desde 1 hasta 99
        Min = Tb(i)
        pos_ele = i
       Para j desde j=i+1 hasta 100
            Si min > Tb(j)
                entonces
                   min = Tb(j)
                   pos_ele = j
            Fin_si
       Fin_para
       <proc_intercambio>
   Fin_para
Fin


<proc_intercambio>
Inicio
  aux = Tb(i)
  Tb(i) = Tb(pos_ele)
  Tb(pos_ele) = aux
Fin

En este ultimo método tengo una duda, yo simplemente haría en la 2ª linea en vez de Tb(i) = Tb(pos_ele) pondría sin dudarlo Tb(i) = min pero ahora al ver la solución no entiendo si están las dos formas bien hechas o no.

¿Están bien las dos formas ? ¿ no ? ¿ Que diferencia tiene si esque hace cosas diferentes ?
Por lo que yo entiendo estaría simplemente metiendo en tb(i) el valor min cosa que es lo que quiero ya que se quedo guardado, de la otra forma creo qu elo que hace es lo mismo pero en vez de meter el valor le estoy diciendo una posición del array que contiene justamente el min creo o no...
Páginas: 1 2 3 [4]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines