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 ?.
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
Esto va en NET
vaya, crei que eran lo mismo :/