[Point - counter / Plx Tipps Hints] - Guessgame

Code-Stücke können hier veröffentlicht werden.
Frozen
User
Beiträge: 18
Registriert: Dienstag 6. Februar 2007, 22:37

[Point - counter / Plx Tipps Hints] - Guessgame

Beitragvon Frozen » Donnerstag 8. Februar 2007, 12:50

ich weis dass es was ganz easy ist, aber ich komme trodzdem nicht weiter...
ich versuche zwei sachen zu realisieren:
1) Dass wenn man einen Buchstaben eingibt statt eine Zahl es sich nicht schließt (ich weit dass wenn ich int wegnehme es klappen würde aber ich möchte es nicht weil .... punkt 2)
2) Dass wenn man einen Buchstaben eingibt statt eine Zahl eine meldung kommt dass es ein Buchstabe ist und keine Zahl aber dass für dieses "Spiel" eine Zahl notwenidg ist.

Könnte mir bitte jemand helfen?

Die Idee des Zahlenratenspieles ist nicht meine ich habe es gesehen genommen in der intention es auszubauen und daraus zu lernen

MfG

Gabriel

Code: Alles auswählen

#!/usr/bin/python

import random

print "Welcome to the Guessing Game"


number = random.randrange(1, 11, 1)

guess = 0

while guess != number:
   guess = raw_input("Guess a Number from 1-10: ")
   
   
   if guess == number:
      datei = open ('right.txt', 'r')
      sammlung = datei.readlines()
      datei.close ()
      right = random.choice (sammlung)
      print right
      if guess != int
         print "This is not a number"
   else:
      datei = open ('wrong.txt', 'r')
      sammlung = datei.readlines()
      datei.close ()
      wrong = random.choice (sammlung)
      print wrong
Zuletzt geändert von Frozen am Samstag 10. Februar 2007, 02:58, insgesamt 7-mal geändert.
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Donnerstag 8. Februar 2007, 13:07

Code: Alles auswählen

while 1:
    i = raw_input("Guess a Number from 1-10: ")
    try:
        i = int(i) # String eingabe in Zahl umwandeln
    except ValueError: # Fehler abfangen, wenn die Eingaben nicht umgewandelt werden kann
        print "Error: Not a number!"
        continue

    if i > 10 or i < 1:
        print "Error: Out of range (1-10)!"
        continue
    else:
        print "OK"
        break # While Schleife verlassen

print "Number:", i
Zuletzt geändert von jens am Donnerstag 8. Februar 2007, 13:24, insgesamt 1-mal geändert.

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Frozen
User
Beiträge: 18
Registriert: Dienstag 6. Februar 2007, 22:37

Beitragvon Frozen » Donnerstag 8. Februar 2007, 13:18

ich bedanke mich mal zuerst xD

möchte ja nicht nerven aber um sicher zu gehen, ich bitte um gedult, der code denn du mir gegeben hast, den verstehe ich ja (zum teil xD) und ich vermute ich muss dass so schreiben ab der while sentence.
ich vemute dass noch ein fehler da ist weil ich kann das programm garnicht starten (arbeite mit xp, habe die datei mit .py geschpeichert und windows kennt die endung) ich kann sozusagen diesen code nicht in meinen richtig integrieren

plx nicht flamen
es ist vlt mein 2 tag mit python

MfG

Gabriel

Code: Alles auswählen

#!/usr/bin/python

import random

print "Welcome to the Guessing Game"


number = random.randrange(1, 11, 1)

guess = 0

while 1:
    i = raw_input("Guess a Number from 1-10: ")
    try:
        i = int(i)
    except ValueError:
        print "Error: Not a number!"
        continue

    if i > 10 or i < 1:
        print "Error: Out of range (1-10)!"
        continue
    else:
        print "OK"
        break

print "Number:", i
   
   
   if 1 == number:
      datei = open ('right.txt', 'r')
      sammlung = datei.readlines()
      datei.close ()
      right1 = random.choice (sammlung)
      print right1
   else:
      datei = open ('wrong.txt', 'r')
      sammlung = datei.readlines()
      datei.close ()
      wrong1 = random.choice (sammlung)
      print wrong1
BlackJack

Beitragvon BlackJack » Donnerstag 8. Februar 2007, 13:22

Schau Dir mal die Anweisungen ``try`` und ``except`` an und die Ausnahme die ``int()`` auslöst, wenn die Zeichenkette keine gültige Zahl darstellt.
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Donnerstag 8. Februar 2007, 13:26

Hab oben nochmal Kommentare eingefügt.

Und schau mal das an: [wiki]FAQ#WieStarteIchSkripte[/wiki]

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Frozen
User
Beiträge: 18
Registriert: Dienstag 6. Februar 2007, 22:37

Beitragvon Frozen » Donnerstag 8. Februar 2007, 13:34

na ja es ist ja nicht so dass alle .py sich nich ausführen lassen, nur hat dieses game -.-
ich habe die zeile print "Number:", i gelöscht und es ist gestartet aber als ich eine zahl eingegen haben ist es abgestürzt und wenn ich einen buchstaben eingegeben habe so kam die von mir ersehnte meldung error not a number xD

wo ist mein fehler?

/---------------------------/
wie habt ihr angefangen bzw wie war der start in der programmierwelt?
und wie habt ihr bis zu euren jetzigen level weitergearbeitet?
ich tuhe mich noch leider schwer

MfG

Gabriel


Code: Alles auswählen

#!/usr/bin/python

import random

print "Welcome to the Guessing Game"


number = random.randrange(1, 11, 1)

guess = 0

while 1:
    i = raw_input("Guess a Number from 1-10: ")
    try:
        i = int(i) # String eingabe in Zahl umwandeln
    except ValueError: # Fehler abfangen, wenn die Eingaben nicht umgewandelt werden kann
        print "Error: Not a number!"
        continue

    if i > 10 or i < 1:
        print "Error: Out of range (1-10)!"
        continue
    else:
        print "OK"
        break # While Schleife verlassen

print "Number: ", i
   
    if i == number:
        datei = open ('right.txt', 'r')
        sammlung = datei.readlines()
        datei.close ()
        right1 = random.choice (sammlung)
        print right1
    else:
        datei = open ('wrong.txt', 'r')
        sammlung = datei.readlines()
        datei.close ()
        wrong1 = random.choice (sammlung)
        print wrong1

(habe mir die comments geholt damit ich auch später es verstehen kann, hoffentlich geht dass
Frozen
User
Beiträge: 18
Registriert: Dienstag 6. Februar 2007, 22:37

Beitragvon Frozen » Donnerstag 8. Februar 2007, 13:53

yeah xD mein erster winzi kleiner erfolg ich habe es geschafft dass es startet und dass es funktioniert habe folgendes gemacht:

Code: Alles auswählen

number = random.randrange(1, 11, 1)

guess = 0

while 1:
    i = raw_input("Guess a Number from 1-10: ")
    try:
        i = int(i) # String eingabe in Zahl umwandeln
    except ValueError: # Fehler abfangen, wenn die Eingaben nicht umgewandelt werden kann
        print "Error: Not a number!"
        continue
        break # While Schleife verlassen

   
    if i == number:


aber die idee auch eine meldung zu haben wenn man eine zahl eingibt die aus den vorgegebenen bereich austritt finde ich genial, aber ich musste das löschen damit der rest funktioniert jetzt die folgende frage wie kann ich diese meldung behalten ohne den rest zu gefährden?

MfG

Gabriel
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Donnerstag 8. Februar 2007, 14:12

Ich verstehe nicht dein Problem... Vielleicht wird es so klarer:

Code: Alles auswählen

while 1:
    i = raw_input("Guess a Number from 1-10 ('q' to abort): ")
    if i == "q":
        print "quit..."
        break

    try:
        i = int(i) # String eingabe in Zahl umwandeln
    except ValueError: # Fehler abfangen, wenn die Eingaben nicht umgewandelt werden kann
        print "Error: Not a number!"
        continue # neue Eingabe

    if i > 10 or i < 1:
        print "Error: Out of range (1-10)!"
        continue # neue Eingabe

    # Mach hier irgendwas mit der eingegeben Zahl...
    print "OK"
    print "Number:", i

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Frozen
User
Beiträge: 18
Registriert: Dienstag 6. Februar 2007, 22:37

Beitragvon Frozen » Donnerstag 8. Februar 2007, 14:15

yeah! ich bin weitergekommen :P
1)Meldung kommt wenn es ein Buchstabe ist
2)Meldung kommt wenn es out of range ist

wenn ich eine zahl eingeben so schließt es sich, ich schau mal wenn ich es nicht schaffe so poste ich hir nochmal rein

danke daweil

MfG

Gabriel
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Donnerstag 8. Februar 2007, 14:27

Frozen hat geschrieben:wenn ich eine zahl eingeben so schließt es sich, ich schau mal wenn ich es nicht schaffe so poste ich hir nochmal rein

Schön dass du es hinbekommen hast - kannst du dann derweil den Threadtitel ändern, damit er Aussage bekommt?
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Frozen
User
Beiträge: 18
Registriert: Dienstag 6. Februar 2007, 22:37

Beitragvon Frozen » Donnerstag 8. Februar 2007, 14:32

so jetzt funktioniert alles!! :lol:

ok schon gemacht worden hoffentlich ist der titel jetzt ok

MfG

Gabriel

P.S Mit dem "game" bin ich nocht nicht fertig also macht euch gefasst dass ich hir noch weiterposte :D

habe gerade gesehen dass wenn man die richtige zahl gefunden hat dass sie sich nicht ändert, mann muss dafür dass programm neu starten.... werde versuchen dass zu ändern.
Frozen
User
Beiträge: 18
Registriert: Dienstag 6. Februar 2007, 22:37

Beitragvon Frozen » Donnerstag 8. Februar 2007, 20:02

So einmal wieder da :D

ich habe veruscht mein aktuelles programm so umzuschreiben dass nachdem der user die richtige zahl gefunden hat, eine neue zahl random gewählt wird damit es nicht immer die gleiche zahl ist die richtig ist.

habe folgendes versucht aber klappte nicht, bitte wieder um hilfe

MfG

Gabriel
Einmal das ganze stück

Code: Alles auswählen

#!/usr/bin/python

import random

print "Welcome to the Guessing Game"


number = random.randrange(1, 11, 1)

guess = 0

while 1:
    i = raw_input("Guess a Number from 1-10: ")
    try:
        i = int(i) # String eingabe in Zahl umwandeln
    except ValueError: # Fehler abfangen, wenn die Eingaben nicht umgewandelt werden kann
        print "Error: Not a number!"
        continue
    
    if i > 10 or i < 1:
          print "Error: Out of range (1-10)!"
        continue # neue Eingabe
       
   break # While Schleife verlassen

   
    if i == number:
        datei = open ('right.txt', 'r')
        sammlung = datei.readlines()
        datei.close ()
        right1 = random.choice (sammlung)
        print right1
   
    else:
        datei = open ('wrong.txt', 'r')
        sammlung = datei.readlines()
        datei.close ()
        wrong1 = random.choice (sammlung)
        print wrong1


und jetzt meine versuche:

Code: Alles auswählen

if i == number:
        datei = open ('right.txt', 'r')
        sammlung = datei.readlines()
        datei.close ()
        right1 = random.choice (sammlung)
        print right1
        number += 1 #es wird um ein erhöt aber wenn es aus dem vorgegebenen bereich geht dann funktioniert es nicht mehr , logisch

Code: Alles auswählen

if i == number:
        datei = open ('right.txt', 'r')
        sammlung = datei.readlines()
        datei.close ()
        right1 = random.choice (sammlung)
        print right1
        number = random.randrage(1, 11, 1) # funktionert auch nicht wenn man das richtige erwischt so stürzt es ab :P


und habe auch noch paar sachen versucht
ich versuche ja dass erst wenn man die richtige zahl gefunden hat eine neue zahl erstellt werden soll, nicht dass nach jedem versuch eine neue zahl "erstellt" wird
@admins-- soll ich die "alten" codes in diesen bereich löschen damit das formun nicht "überlastet" wird?
BlackJack

Beitragvon BlackJack » Donnerstag 8. Februar 2007, 20:34

Wenn man will, dass etwas mehrfach ausgeführt wird, dann steckst man es in eine Schleife.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Donnerstag 8. Februar 2007, 20:40

Ich hätte dieses anzubieten. Mit zwei while-Schleifen.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Frozen
User
Beiträge: 18
Registriert: Dienstag 6. Februar 2007, 22:37

Beitragvon Frozen » Donnerstag 8. Februar 2007, 22:46

:shock: :shock: :shock: :shock: :shock: :shock: :shock: :shock:

WTF wenn ich es mal so sagen darf, es ist perfekt leider nicht von mir :P--

ganz anders als mein anfänglicher code, ich muss mich mal in deins einarbeiten und gleich die erste n00b frage was ist def?

Nochmals danke

MfG

Gabriel

Ich vermute ihr hattet es satt mit mir und habt mir desshalb mir einen kompletten code gegeben :arrow:

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder