vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Zahlenraten 
Autor: sv00010
Datum: 21.01.12 17:34

Lis schrieb:
Zitat:


Der fertige Code von Manfred (danke auf jeden Fall dafür! War
mal interessant, n fertiges Spiel zu sehen) hat mir leider
auch nur bedingt geholfen. Konnte nicht alle Schritte
nachvollziehen und ich würd auch gern die mögliche
Versuchsanzahl nicht festlegen, sondern solange raten lassen,
bis die Zahl gefunden ist.

Ich habe mal kurz ganz grob eines fertig programmiert (VB 2008 Express Edition).

Zahlenraten.zip

Es war eine gute Übung um die grauen Zellen mal wieder in Gang zu bringen.

Module Zahlenraten_CODE
 
    Private Structure INTERNAL_DATA
        Dim boolGameIsStarted As Boolean
        Dim lngNumberOfTries As Long
        Dim intZufallszahl As Integer
    End Structure
 
    'Varable für Structure mit Internen Werten (damit sie alle zusammen sind)
    Dim ID As INTERNAL_DATA
 
    Sub SetButtonAndLabelText()
 
        'Schrift des Buttons einstellen
        If ID.boolGameIsStarted = True Then
            Zahlenraten.Button_Action.Text = "Raten"
        Else
            Zahlenraten.Button_Action.Text = "Neues Spiel"
        End If
 
        'Anzahl der Versuche anzeigen
        Zahlenraten.Label_Wert_Anzahl_Versuche.Text = CStr(ID.lngNumberOfTries)
 
        'sicherheitshalber Refreshen (funktioniert vielleicht auch ohne)
        Zahlenraten.Button_Action.Refresh()
        Zahlenraten.Label_Wert_Anzahl_Versuche.Refresh()
 
    End Sub
    Function ValidateTextBoxContent() As Boolean
        Dim boolNumeric As Boolean = False
 
        'Überprüfen ob der Wert in der TextBox auch numerisch ist (Keine 
        ' Buchstaben usw.)
        Try
            boolNumeric = IsNumeric(Zahlenraten.TextBox_Number.Text)
        Catch ex As Exception
            boolNumeric = False
        End Try
 
        'MessageBox ausgeben, wenn der TextBox-Inhalt nicht numerisch ist.
        If boolNumeric = False Then MsgBox("Nur Zahlen eingeben!", _
          MsgBoxStyle.Critical, "Nur Zahlen eingeben!")
 
        Return boolNumeric
    End Function
 
    Sub CreateNewRandomNumber()
        Dim intZufallszahl As Integer = Nothing
        Dim TmpRnd As New Random
 
        'Neue Zufallszahl von 1 bis 1000 erstellen
        intZufallszahl = TmpRnd.Next(1, 1001)
 
        'Wert merken
        ID.intZufallszahl = intZufallszahl
 
    End Sub
 
    Sub Button_Action_Click()
 
        'Wenn das Spiel noch nicht gestartet wurde, dann
        If ID.boolGameIsStarted = False Then
            'Neue Zufallzahl erstellen und merken
            Zahlenraten_CODE.CreateNewRandomNumber()
 
            'Spiel wurde gestartet festlegen
            ID.boolGameIsStarted = True
 
            'Label und Button aktualisieren
            Zahlenraten_CODE.SetButtonAndLabelText()
 
            'Meldung ausgeben, dass neues Spiel gestartet wurde
            Zahlenraten.Label_Meldung.Text = "Neues Spiel gestartet"
        Else
            'Wenn das Spiel bereits läuft
 
            'Überprüfen ob der TextBox-Inhalt In Ordnung ist
            If Zahlenraten_CODE.ValidateTextBoxContent() = True Then
                'Auswertung des Inhaltes der TextBox
                Zahlenraten_CODE.CheckTextBoxValue()
            End If
        End If
 
    End Sub
    Sub CheckTextBoxValue()
        Dim intNummerTextBox As Integer = Nothing
 
        intNummerTextBox = CInt(Zahlenraten.TextBox_Number.Text)
 
        'Wenn die Zahl erraten wurde
        If intNummerTextBox = ID.intZufallszahl Then
 
            'MessageBox anzeigen
            MsgBox("Richtig!", MsgBoxStyle.Information, "Richtig!")
 
            'Interne Werte wieder auf 0 setzen (für nächstes Spiel)
            Zahlenraten_CODE.ResetInternalData()
 
            'TextBox und Label mit Meldung leer machen
            Zahlenraten.TextBox_Number.Text = Nothing
            Zahlenraten.Label_Meldung.Text = Nothing
 
 
            'Wenn die Zahl größer ist
        ElseIf intNummerTextBox < ID.intZufallszahl Then
            'Meldung anzeigen und Wert für Versuche um eins erhöhen
            Zahlenraten.Label_Meldung.Text = "Die gesuchte Zahl ist größer."
            ID.lngNumberOfTries = ID.lngNumberOfTries + 1
 
            'Wenn die Zahl kleiner ist
        ElseIf intNummerTextBox > ID.intZufallszahl Then
            'Meldung anzeigen und Wert für Versuche um eins erhöhen
            Zahlenraten.Label_Meldung.Text = "Die gesuchte Zahl ist kleiner."
            ID.lngNumberOfTries = ID.lngNumberOfTries + 1
        End If
 
        'Labels und Button neu anzeigen
        Zahlenraten_CODE.SetButtonAndLabelText()
 
    End Sub
 
    Sub ResetInternalData()
        ID.boolGameIsStarted = False
        ID.lngNumberOfTries = 0
        ID.intZufallszahl = 0
    End Sub
End Module
0
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Zahlenraten4.082Lis21.01.12 13:44
Re: Zahlenraten2.710keco21.01.12 15:06
Re: Zahlenraten2.7812Net21.01.12 15:15
Re: Zahlenraten2.775sv0001021.01.12 15:38
Game Over!!!2.811Manfred X21.01.12 15:43
Re: Game Over!!!2.813keco21.01.12 16:17
Re: Game Over!!!2.794Manfred X21.01.12 16:24
Re: Game Over!!!2.957keco21.01.12 16:32
Re: Game Over!!!2.780Manfred X21.01.12 16:40
Re: Zahlenraten2.774Lis21.01.12 17:20
Re: Zahlenraten2.700keco21.01.12 17:27
Re: Zahlenraten2.715Manfred X21.01.12 17:30
Re: Zahlenraten3.409sv0001021.01.12 17:34
Re: Zahlenraten2.831Manfred X21.01.12 17:38
Re: Zahlenraten2.721Lis21.01.12 21:40
Re: Zahlenraten3.012keco21.01.12 21:46
Re: Zahlenraten2.669Manfred X21.01.12 21:48
Re: Zahlenraten2.769Lis22.01.12 15:13
Re: Zahlenraten2.824sv0001022.01.12 17:52
Re: Zahlenraten3.072Manfred X22.01.12 20:58
Re: Zahlenraten2.787Maas22.01.12 18:09

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel