juego del ahorcado
Publicado por Raul (1 intervención) el 06/06/2009 18:17:48
hola a todo los compis programadores.
Soy novato en esto de la programacion y me han mandando hacer el juego del ahorcado, copiao el codigo fuente aqui, para ver si alguien me puede dar una solucion.
Module Module1
Sub Main()
Console.WriteLine("------------------------juego del ahorcado--------------------------")
Console.WriteLine("Reglas")
Console.WriteLine("------")
Console.WriteLine("7 errores eres un mal jugador")
Console.WriteLine("2-5 debes de entrenarte un poco mas")
Console.WriteLine("0 eres un tio muy listo")
Dim cadenaoculta(4) As String
Dim fallos() As String 'en esta tabla iré guardando los fallos
Dim aciertos() As String 'en esta tabla iré guardando los aciertos
'palabra que hay adivinar
cadenaoculta(0) = "c"
cadenaoculta(1) = "o"
cadenaoculta(2) = "c"
cadenaoculta(3) = "h"
cadenaoculta(4) = "e"
'aqui recorro la tabla para verificar que la palabra que tengo que adivinar esta correctamente en la tabla
Dim r As Integer 'contador que recorre la cadenaoculta
For r = 0 To cadenaoculta.GetUpperBound(r)
Console.WriteLine("posicion:{0} ->letra: {1} ", r, cadenaoculta(r))
Next
'compruebo el tamaño de la cadena
Dim tamaño As String
tamaño = cadenaoculta.Length
Console.WriteLine()
Console.WriteLine("el tamaño de la palabra a adivinar tiene {0} letras", tamaño)
Console.WriteLine("ahora intenta adivinar la palabra")
Dim letras As String = ""
letras = Console.ReadLine()
'control de error para que no casque cuando meta un numero
While True
Try
If IsNumeric(letras) Then
Console.WriteLine("error, no puedes escribir numeros")
Else
Exit While
End If
Catch ex As Exception
Console.WriteLine("vuelve a introducir una letra")
End Try
End While
Dim f As Integer 'contador de fallos
Dim a As Integer 'contador de aciertos
ReDim Preserve fallos(f)
'este while me ejecuta el juego mientras el jugador no supere los 7 fallos o acierta
While f < 7 And a = 0
(en este for me da un fallo cuando introdusco la letra, y creo que en los demas for tambien no acabo de entender por que)
For r = 0 To cadenaoculta.GetUpperBound(r)
If letras <> cadenaoculta(f) Then
fallos(f) = letras
f += 1
Else
aciertos(a) = letras
a += 1
End If
Next
'tabla que me muestra los fallos que voy teniendo
For f = 0 To fallos.GetUpperBound(f)
Console.WriteLine("{0}", fallos(f))
Next
'tabla que me muestra los aciertos
For a = 0 To aciertos.GetUpperBound(a)
Console.WriteLine("{0}", aciertos(a))
Next
Select Case f
Case 0
Console.WriteLine("a la primera eres un maquina")
Case 1 - 3
Console.WriteLine("no has estado mal")
Case 4 - 6
Console.WriteLine("deberias jugar mas amenudo")
Case Else
Console.WriteLine("has perdido")
End Select
Console.ReadLine()
End While
End Sub
End Module
Gracias a los que han dedicado un minuto o mas en repasar mi codigo, tambien acepto posibles sugerencias
Soy novato en esto de la programacion y me han mandando hacer el juego del ahorcado, copiao el codigo fuente aqui, para ver si alguien me puede dar una solucion.
Module Module1
Sub Main()
Console.WriteLine("------------------------juego del ahorcado--------------------------")
Console.WriteLine("Reglas")
Console.WriteLine("------")
Console.WriteLine("7 errores eres un mal jugador")
Console.WriteLine("2-5 debes de entrenarte un poco mas")
Console.WriteLine("0 eres un tio muy listo")
Dim cadenaoculta(4) As String
Dim fallos() As String 'en esta tabla iré guardando los fallos
Dim aciertos() As String 'en esta tabla iré guardando los aciertos
'palabra que hay adivinar
cadenaoculta(0) = "c"
cadenaoculta(1) = "o"
cadenaoculta(2) = "c"
cadenaoculta(3) = "h"
cadenaoculta(4) = "e"
'aqui recorro la tabla para verificar que la palabra que tengo que adivinar esta correctamente en la tabla
Dim r As Integer 'contador que recorre la cadenaoculta
For r = 0 To cadenaoculta.GetUpperBound(r)
Console.WriteLine("posicion:{0} ->letra: {1} ", r, cadenaoculta(r))
Next
'compruebo el tamaño de la cadena
Dim tamaño As String
tamaño = cadenaoculta.Length
Console.WriteLine()
Console.WriteLine("el tamaño de la palabra a adivinar tiene {0} letras", tamaño)
Console.WriteLine("ahora intenta adivinar la palabra")
Dim letras As String = ""
letras = Console.ReadLine()
'control de error para que no casque cuando meta un numero
While True
Try
If IsNumeric(letras) Then
Console.WriteLine("error, no puedes escribir numeros")
Else
Exit While
End If
Catch ex As Exception
Console.WriteLine("vuelve a introducir una letra")
End Try
End While
Dim f As Integer 'contador de fallos
Dim a As Integer 'contador de aciertos
ReDim Preserve fallos(f)
'este while me ejecuta el juego mientras el jugador no supere los 7 fallos o acierta
While f < 7 And a = 0
(en este for me da un fallo cuando introdusco la letra, y creo que en los demas for tambien no acabo de entender por que)
For r = 0 To cadenaoculta.GetUpperBound(r)
If letras <> cadenaoculta(f) Then
fallos(f) = letras
f += 1
Else
aciertos(a) = letras
a += 1
End If
Next
'tabla que me muestra los fallos que voy teniendo
For f = 0 To fallos.GetUpperBound(f)
Console.WriteLine("{0}", fallos(f))
Next
'tabla que me muestra los aciertos
For a = 0 To aciertos.GetUpperBound(a)
Console.WriteLine("{0}", aciertos(a))
Next
Select Case f
Case 0
Console.WriteLine("a la primera eres un maquina")
Case 1 - 3
Console.WriteLine("no has estado mal")
Case 4 - 6
Console.WriteLine("deberias jugar mas amenudo")
Case Else
Console.WriteLine("has perdido")
End Select
Console.ReadLine()
End While
End Sub
End Module
Gracias a los que han dedicado un minuto o mas en repasar mi codigo, tambien acepto posibles sugerencias
Valora esta pregunta


0