HI. folgendes Problem. ...
ich hab 5 Versuche wenn der 5 te Versuch die richtige Zahl ist dann soll er schreiben Richtig ....
sollten 5 Rateversuche vorbei sein dann soll er schreiben Leider alle ....
Problem ist das wenn ich 5 mal rate - er mich noch mal ein 6tes mal auffordert eine Zahl einzugeben und dann erst den WriteLine.. Leider alle Versuche ausgibt. er soll aber nach dem 5ten Mal falsch Eingabe Gleich schreiben Leider alle Versuche verbraucht.
2) Sub Abfragen ob neues Spiel ja oder nein - das nein liest er mir als falsche Zahl ein .. . wie kann ich das verhindern.. er soll doch nur das Spiel komplett beenden.
ich hab 5 Versuche wenn der 5 te Versuch die richtige Zahl ist dann soll er schreiben Richtig ....
sollten 5 Rateversuche vorbei sein dann soll er schreiben Leider alle ....
Problem ist das wenn ich 5 mal rate - er mich noch mal ein 6tes mal auffordert eine Zahl einzugeben und dann erst den WriteLine.. Leider alle Versuche ausgibt. er soll aber nach dem 5ten Mal falsch Eingabe Gleich schreiben Leider alle Versuche verbraucht.
2) Sub Abfragen ob neues Spiel ja oder nein - das nein liest er mir als falsche Zahl ein .. . wie kann ich das verhindern.. er soll doch nur das Spiel komplett beenden.
VB.NET-Quellcode
- Imports System.Console
- Module Module1
- Public bisher As New List(Of Integer) 'Liste mit den eingegeben Zahlen
- Public eingabe As String = String.Empty
- Sub Main()
- WriteLine("Eine Zahl zwischen 1 und 20 wurde generiert")
- WriteLine()
- bisher.Clear() 'Nach neuem Spiel soll das Array wieder bei 0 anfangen
- Dim zufallszahl As Integer = New Random().Next(1, 20) 'Zufallsgenerator starten
- Dim eingegeben As String = String.Empty 'Eingegeben (Var) = 0
- ZahlAbfangen() 'startet die Prozedur zum Einlesen der Zahl
- Dim counter As Integer = 1 'Counter bzw. Versuche fängt bei 1 an
- Do
- bisher.Add(Integer.Parse(eingabe)) 'Fügt die neue Eingabe dem Array hinzu
- 'eingegeben = EingegebeneZahlen() 'Ruft die Funktion auf und gibt den Wert an die Variable weiter
- Select Case Integer.Parse(eingabe) 'Vergleichte die Eingabe mit der Zufallszahl
- Case Is < zufallszahl
- eingegeben = EingegebeneZahlen() 'Ruft die Funktion auf und gibt den Wert an die Variable weiter
- Console.WriteLine("Die gesuchte Zahl ist größer.")
- Console.WriteLine("Bisher folgende Zahlen benutzt: {0} - {1}. Versuch", eingegeben, counter)
- ZahlAbfangen()
- Case Is > zufallszahl
- eingegeben = EingegebeneZahlen() 'Ruft die Funktion auf und gibt den Wert an die Variable weiter
- Console.WriteLine("Die gesuchte Zahl ist kleiner.")
- Console.WriteLine("Bisher folgende Zahlen benutzt: {0} - {1}. Versuch", eingegeben, counter)
- ZahlAbfangen()
- Case Else
- eingegeben = EingegebeneZahlen() 'Ruft die Funktion auf und gibt den Wert an die Variable weiter
- Console.WriteLine("Richtig, die Zahl lautete {0} und Sie haben {1} Versuche gebraucht!", zufallszahl, counter)
- Abfragen()
- Exit Do
- End Select
- counter += 1
- Loop Until counter > 5 'wenn alle Versuche verbraucht
- Console.WriteLine("Sie haben leider all ihre Versuche verbraucht! Die Zahl lautete {0}.", zufallszahl)
- Abfragen()
- End Sub
- Private Function EingegebeneZahlen() As String 'Funktion zur Speicherung der bereits eingegebenen Zahlen
- Dim _zahlen As String = String.Empty
- For i As Integer = 0 To bisher.Count - 1
- _zahlen &= bisher(i).ToString() + ", " 'Variable (ReDim)
- Next
- Return _zahlen.Remove(_zahlen.Length - 2, 2) 'Funktion gibt den Wert zurück
- End Function
- Private Sub Abfragen() 'wenn Spiel vorbei oder alle Versuche abgelaufen
- Console.Write("Möchten Sie nochmal spielen? (Y|N): ")
- Dim antwort As String = Console.ReadLine()
- Do Until antwort.ToLower() = "y" Or antwort.ToLower() = "n"
- Console.Write("Falsche Eingabe - (Y|N): ") 'falls falsche Eingabe
- antwort = Console.ReadLine()
- Loop
- Select Case antwort.ToLower()
- Case "y"
- Main()
- Case Else
- Exit Sub
- End Select
- End Sub
- Private Sub ZahlAbfangen()
- Console.WriteLine()
- Console.Write("Geben Sie die gesuchte Zahl ein: ")
- eingabe = Console.ReadLine()
- Do Until Integer.TryParse(eingabe, 0)
- Console.Write("Das war keine Zahl, bitte neu eingeben: ")
- eingabe = Console.ReadLine()
- Loop
- End Sub
- End Module
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „thedarkside21986“ ()