#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 + Multi-Zitat Zitieren
#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 + Multi-Zitat Zitieren
#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 + Multi-Zitat Zitieren
#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 + Multi-Zitat Zitieren
#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) + Multi-Zitat Zitieren
#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 + Multi-Zitat Zitieren
#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 + Multi-Zitat Zitieren
#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 + Multi-Zitat Zitieren
#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? + Multi-Zitat Zitieren
#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 + Multi-Zitat Zitieren