[Python] gehe zu Befehl ?

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von romestylez, 1. Oktober 2008 .

Schlagworte:
  1. 1. Oktober 2008
    So also habe mit Python angefangen und nen kleines Spiel "gemacht" wo man eine Zahl raten muss

    Code schaut so aus

    Code:
    #!/usr/bin/python
    zahl = 27
    weiter = True
    geraten3 = 2
    while weiter:
     geraten = int(raw_input('Geben Sie eine ganze Zahl ein: '))
     if zahl == geraten:
     print 'Richtig geraten:) Und gewonnen hast du *trommelwirbel*'
     print 'NICHTS !!11'
     elif geraten < zahl:
     print 'Nein die Zahl ist etwas hoeher.'
     else:
     print 'Nein die Zahl ist etwas niedriger :P'
    [B]while weiter:
     geraten2 = int(raw_input('Weiter ?: '))
     if geraten2 == geraten3:
     print 'Okay dann nicht'
     weiter = False # das fuehrt zum Ende der while-Schleife
     elif geraten3 == 1:
     print 'Okay weiter gehts.'[/B]
    

    So wenn man nun diese Zahl erraten hat, war das Spiel eigentlich beendet. Nun will ich die Schwierigkeit für mich aber etwas steigern Scheinbar ein zu grosser Schritt ^^

    Wie bekomme ich es jetzt hin das wenn die Zahl erraten wurde, er die Abfrage stellt ob man weiter spielen will ?

    Den Code habe ich ja schon drin er springt nur iwie net dahin habe gegoogelt etc aber wohl falsche Wörter verwendet

    Es muss doch ne Funktion geben

    Stelle es mir iwie so vor
    Code:
     if zahl == geraten:
     print 'Richtig geraten Baby :) Und gewonnen hast du *trommelwirbel*'
     print 'NICHTS !!11'
     go to line XX
    Wat weiss ich obs so is oder anders...


    Hilfe wäre echt nett und wenns nur kleine Tipps sind

    BITTE NICHT DEN KOMPLETTEN CODE POSTEN WIE ES RICHTIG WÄRE Will ja schliesslich lernen
     
  2. 1. Oktober 2008
    AW: [Python] gehe zu Befehl ?

    Warum nicht einfach ne while schleife machen die solange durchläuft bis die Zahl richtig war.
    go to Befehle kenn ich persönlich nur aus Hardwarenahen Programmiersprachen.
    Da Python jedoch wie alle modernen Programmiersprachen eher Objektorientiert und/oder Imperativ arbeiten, wird es solch einen Befehl nicht geben.

    Wie gesagt eine While schleife sollte dein problem lösen
     
  3. 1. Oktober 2008
    AW: [Python] gehe zu Befehl ?

    Hoi!

    Wie gesagt eine zweite While-Schleife.
    (Pseudo-Code):
    Code:
    while spieler_das_spiel_nicht_beenden_will:
     while zahl_falsch:
     # lasse_zahl_eingeben
    
    'goto' ist schlechter Stil, unnoetig und fehleranfaellig. NIEMALS benutzen. Danke, dass Python gar kein GOTO hat

    Mfg,

    Kolazomai
     
  4. 1. Oktober 2008
    AW: [Python] gehe zu Befehl ?


    Mhpf ich bin absoluter voll Nub

    Ich rall garnichts mit deinem codeschnipsel oh man ich glaub ich bin iwie zu doof fürs coden

    Also wenn derjenige bei der Abfrage ne 1 eingibt solls weiter gehen bei 2 solls beendet werden -_- Ich bekomms aber net hin kp hab das Buch "byteofpython" gelesen aber bekomms trotzdem net hin

    Weiss net wo der Code hinkommt das er halt net direkt wieder die Zahl abfragt wenn die vorher richtig war
     
  5. 1. Oktober 2008
    AW: [Python] gehe zu Befehl ?


    will ich nich nochmal hören!
    wenn du es nach 20 min probieren nicht schaffst is das normal
    du darfst nur nich locker lassen.
    iwann kommt das von alleine und dann fängts an spaß zu machen
    aber wenn du jetzt sagst dass du es sowieso nicht kannst, brauchstes ers garnich versuchen

    ich hab letztens 4 std nach nem fehler gesucht ( mit erfolg)
     
  6. 1. Oktober 2008
    AW: [Python] gehe zu Befehl ?

    Hey!

    Nur nicht aufgeben, am Anfang ist das 'Denken wie ein Computer' ziemlich schwer und ungewohnt...
    Schau dir bisschen Beispielcode an, und versuch das dann aus dem Kopf zu reproduzieren, indem du die Idee noch einmal umsetzt. So lernst du die ersten 'Schritte' bzw. einige gaengige Moeglichkeiten und Wege dem Computer irgendwas beizubringen.

    Mfg,

    Kolazomai
     
  7. 1. Oktober 2008
    AW: [Python] gehe zu Befehl ?

    Ich hock hier die ganze Zeit ich bekomms hin das erst gefragt wird wollen sie weiter spielen und wenn man dann 1 eingibt geht es zum spiel aber andersrum geht es net -_-

    Habs dann einfach umgedreht aber will net kp...

    Hat da keiner nen Lösungsansatz

    // EDIT :

    Also habs jetzt soweit das man die Zahl eingeben soll die man tippen will

    Code:
    #!/usr/bin/python
    zahl = 27
    weiter = True
    weiternein = 2
    geraten = int(raw_input('Geben Sie eine ganze Zahl ein: '))
    if zahl == geraten:
     print 'Richtig geraten :) Und gewonnen hast du *trommelwirbel*'
     print 'NICHTS !!11'
    elif geraten < zahl:
     print 'Nein die Zahl ist etwas hoeher.'
    else:
     print 'Nein die Zahl is etwas niedriger'
    while weiter:
     weiter = int(raw_input('Weiter spielen ? 1 Ja 2 Nein : '))
    if weiter == weiternein:
     print 'Okay dann nicht'
     weiter = False # das fuehrt zum Ende der while-Schleife
    elif weiter == 1:
     print 'Okay weiter gehts.'
    
    Aber nun is das Problem wenn man die falsche Zahl eingibt, dann springt er direkt zur Abfrage ob man weiter spielen will

    Wie kann ich das unterbinden ?

    Und er sagt auch nimmer wenn ich 1 eintippe "Okay weiter gehts" Und bei 2 sagter auch net "Okay dann net"

    Ich ralls atm einfach nimmer bin ja schonmal froh das ich nach einigen Stunden schonmal soweit bin das die Abfrage kommt aber bei nein sollte dann das Spiel auch beendet werden
     
  8. 1. Oktober 2008
    AW: [Python] gehe zu Befehl ?

    in python genau auf die einrückungen achten... da ist bei dir der fehler
    außerdem hast du das "while weiter:" viel zu tief... und du brauchst wie vorher schon angedeutet eine 2. while schleife, in der du die zahlen abfragst, sonst kann man nur 1 mal raten...

    ein ganz kleiner hinweis:

    Code:
    weiter = true
    while weiter:
     zahl falsch = true
     while zahl_falsch:
     #hier zahl abfragen, ggf. zahl_falsch = false
     
     # hier abfragen, ob weitergespielt werden soll
     # ggf. weiter = false
    
    
     
  9. 1. Oktober 2008
    AW: [Python] gehe zu Befehl ?

    Schau mal hier hast du nen PseudoCode für ein Spiel welches bei richtig geratener Zahl fragt ob man beenden will oder lust hat ne neue Runde zu spielen.
    Wird die Zahl falsch geraten, fragt er ob man nochmal spielen möchte oder das Programm beenden will.

    Musst den PseudeCode nun nur noch in Phyton übersetzen !

    Code:
    beenden = false
    zahl_raten = ZufallsZahl
    
    while beenden == false
     //User gibt die Zahl ein (gespeichert in 'zahl')
     
     if zahl == zahl_raten
     print Richtig geraten! 
     print Willst du noch ne Runde spielen? -> 1 Ja | 0 -> Nein
     if input == 0
     beenden = true
     else
     zahl_raten = NeueZufallsZahl
     ende if
     else
     print Falsch geraten !
     print Nochmal Versuchen? -> 1 Ja | 0 -> Nein
     if input == 0
     beenden = true
     ende if
     ende if
    ende while
    
    print Das Spiel wird jetzt beendet
    

    Wieso braucht man ne zweite While Schleife?
     
  10. 1. Oktober 2008
    AW: [Python] gehe zu Befehl ?

    Hoi!

    Braucht man nicht, geht aber auch mit. Wie so oft fuehren mehrere Wege nach Rom, obwohl ich zugeben muss, dass der Weg mit 'if' vielleicht etwas einfacher ist, der mit 2 While-Schleifen ist aber von der Ueberlegung her sinnvoller.

    Mfg,

    Kolazomai
     
  11. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.