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
Public Class Form1 Dim T_PUNTOS_J1 As Short Dim T_PUNTOS_J2 As Short Dim I As Integer Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim NUM_ACERTAR As Short Dim NUM As Short Dim PISTAS As Short Dim B As Boolean = False Dim C_INTENTOS As Short = 0 Dim C_INTENTOS_J2 As Short = 0 For Me.I = 0 To 999 NUM_ACERTAR = InputBox("Que el arbitro introduzca un nº entre 1 y 100") Do Until NUM_ACERTAR >= 1 And NUM_ACERTAR <= 100 NUM_ACERTAR = InputBox("Introduzca un nº entre 1 y 100") Loop Do If B = False Then B = True C_INTENTOS = C_INTENTOS + 1 NUM = InputBox("Turno del Jugador 1, intento nº: " & C_INTENTOS, "Turno Jugador 1", 0) TextBox4.Text = TextBox4.Text & " Numero: " & NUM & Chr(13) & Chr(10) Else B = False C_INTENTOS_J2 = C_INTENTOS_J2 + 1 NUM = InputBox("Turno del Jugador 2, intento nº: " & C_INTENTOS_J2, "Turno Jugador 2", 0) TextBox4.Text = TextBox4.Text & " Numero: " & NUM & Chr(13) & Chr(10) End If 'MENSAJES DE TEXTO PISTAS If NUM_ACERTAR > NUM Then PISTAS = NUM_ACERTAR - NUM ElseIf NUM_ACERTAR < NUM Then PISTAS = NUM - NUM_ACERTAR ElseIf NUM = NUM_ACERTAR Then PISTAS = 0 End If If PISTAS <= 3 Then TextBox1.Text = "QUEMANDO" ElseIf PISTAS <= 7 Then TextBox1.Text = "CALIENTE" ElseIf PISTAS <= 15 Then TextBox1.Text = "TEMPLADO" Else TextBox1.Text = "FRIO" End If 'RECUENTOS DE LOS PUNTOS ACUMULADOS If C_INTENTOS = 1 And NUM = NUM_ACERTAR Then T_PUNTOS_J1 = T_PUNTOS_J1 + 10 C_INTENTOS = 6 TextBox1.Text = "HAS GANADO J1" ElseIf C_INTENTOS = 2 And NUM = NUM_ACERTAR Then T_PUNTOS_J1 = T_PUNTOS_J1 + 8 C_INTENTOS = 6 TextBox1.Text = "HAS GANADO J1" ElseIf C_INTENTOS = 3 And NUM = NUM_ACERTAR Then T_PUNTOS_J1 = T_PUNTOS_J1 + 6 C_INTENTOS = 6 TextBox1.Text = "HAS GANADO J1" ElseIf C_INTENTOS = 4 And NUM = NUM_ACERTAR Then T_PUNTOS_J1 = T_PUNTOS_J1 + 4 C_INTENTOS = 6 TextBox1.Text = "HAS GANADO J1" ElseIf C_INTENTOS = 5 And NUM = NUM_ACERTAR Then T_PUNTOS_J1 = T_PUNTOS_J1 + 2 C_INTENTOS = 6 TextBox1.Text = "HAS GANADO J1" ElseIf C_INTENTOS_J2 = 1 And NUM = NUM_ACERTAR Then T_PUNTOS_J2 = T_PUNTOS_J2 + 10 C_INTENTOS = 6 TextBox1.Text = "HAS GANADO J2" ElseIf C_INTENTOS_J2 = 2 And NUM = NUM_ACERTAR Then T_PUNTOS_J2 = T_PUNTOS_J2 + 8 C_INTENTOS = 6 TextBox1.Text = "HAS GANADO J2" ElseIf C_INTENTOS_J2 = 3 And NUM = NUM_ACERTAR Then T_PUNTOS_J2 = T_PUNTOS_J2 + 6 C_INTENTOS = 6 TextBox1.Text = "HAS GANADO J2" ElseIf C_INTENTOS_J2 = 4 And NUM = NUM_ACERTAR Then T_PUNTOS_J2 = T_PUNTOS_J2 + 4 C_INTENTOS = 6 TextBox1.Text = "HAS GANADO J2" ElseIf C_INTENTOS_J2 = 5 And NUM = NUM_ACERTAR Then T_PUNTOS_J2 = T_PUNTOS_J2 + 2 C_INTENTOS = 6 TextBox1.Text = "HAS GANADO J2" End If TextBox2.Text = T_PUNTOS_J1 TextBox3.Text = T_PUNTOS_J2 Loop Until C_INTENTOS >= 5 I = 99999 Next End Sub End Class