Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: arts en 24 Enero 2013, 20:23 pm



Título: Duda ejercicio basico de programacion
Publicado por: arts 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


Título: Re: Duda ejercicio basico de programacion
Publicado por: Danyfirex en 24 Enero 2013, 20:39 pm
Esto va en NET


Título: Re: Duda ejercicio basico de programacion
Publicado por: arts en 24 Enero 2013, 21:03 pm
vaya, crei que eran lo mismo :/