Visual Basic - juego del ahorcado

Life is soft - evento anual de software empresarial
 
Vista:

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
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder