Mastermind-Löser Exception Problem
Hallo und willkommen im Forum!
Da wir momentan alle keine funktionierenden Glaskugeln besitzen ist die wichtigste Frage: Welche Exception wird eigentlich geworfen? Zeige am besten den gesamten Traceback, dann kann man dir helfen. Und wenn du eine Datei verlinks, dann solltest du auch dafür sorgen, dass man auch an den Code kommt
Da wir momentan alle keine funktionierenden Glaskugeln besitzen ist die wichtigste Frage: Welche Exception wird eigentlich geworfen? Zeige am besten den gesamten Traceback, dann kann man dir helfen. Und wenn du eine Datei verlinks, dann solltest du auch dafür sorgen, dass man auch an den Code kommt
Das Leben ist wie ein Tennisball.
@mccom: Dir sollte auch klar sein, dass Du diese Arbeit möglicherweise nicht einfach so von Deiner Website verbreiten darfst. Eine Matura-Arbeit ist jetzt vielleicht nicht die Welt, unterliegt aber trotzdem urheberrechtlichem Schutz.
Davon abgesehen sollte es mit ein bisschen Eigenengagement auch problemlos möglich sein, die „Emailaddy“ des Autoren herauszufinden oder eine anderweitige Kontaktmöglichkeit zu erlangen. Die Schule, an der diese Arbeit geschrieben wurde, hat bestimmt ein Sekretariat mit entsprechender Kontaktadresse, an die man eine Bitte um Kontakt zum Schüler oder zumindest zum Betreuer bitten kann.
Um die eigentliche Fehlermeldung zu erhalten, musst Du den "except"-Block und die "try"-Anweisung entfernen, und das Programm nochmals ausführen. Ob das allerdings zielführend ist, sei dahingestellt. Die Qualität des gesamten Quelltexts ist so unterirdisch, dass ich persönlich nicht die geringste Lust habe, diesen zu lesen, geschweige denn zu korrigieren, und vielen anderen wird es da wahrscheinlich ganz genauso gehen.
Davon abgesehen sollte es mit ein bisschen Eigenengagement auch problemlos möglich sein, die „Emailaddy“ des Autoren herauszufinden oder eine anderweitige Kontaktmöglichkeit zu erlangen. Die Schule, an der diese Arbeit geschrieben wurde, hat bestimmt ein Sekretariat mit entsprechender Kontaktadresse, an die man eine Bitte um Kontakt zum Schüler oder zumindest zum Betreuer bitten kann.
Um die eigentliche Fehlermeldung zu erhalten, musst Du den "except"-Block und die "try"-Anweisung entfernen, und das Programm nochmals ausführen. Ob das allerdings zielführend ist, sei dahingestellt. Die Qualität des gesamten Quelltexts ist so unterirdisch, dass ich persönlich nicht die geringste Lust habe, diesen zu lesen, geschweige denn zu korrigieren, und vielen anderen wird es da wahrscheinlich ganz genauso gehen.
Ich kann mir überhaupt niemanden vorstellen, der Lust hat, sich mit diesem Quelltext länger als 10 s zu beschäftigen, denn die reichen, um sich mit Entsetzen von ihm abzuwenden.lunar hat geschrieben:Die Qualität des gesamten Quelltexts ist so unterirdisch, dass ich persönlich nicht die geringste Lust habe, diesen zu lesen, geschweige denn zu korrigieren, und vielen anderen wird es da wahrscheinlich ganz genauso gehen.
@mccom: Beschäftigung mit Python ist ganz gewiss eine lohnende Sache, das Master-Mind-Problem ebenfalls. Aber tu dir diesen Quelltext nicht an. Da kannst du nur lernen, wie man es nicht macht!
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Ja sehr schlimm - wenn der gezeigte Ausschnitt repraesentativ ist. Ich fuerchte als Vorbild ist das nicht sonderlich hilfreich. Versuche den Algorithmus wenn moeglich aus der Arbeit - nicht dem Code - herauszuholen oder such dir eine einfachere Mine. Sonst bleibt nur noch die Empfehlung einer guten Nervenheilanstalt ...mccom hat geschrieben:Quellcode von ihm ist schlimm? Gut zu wissen, also wenn dann nach diesem Vorbild sauber neu-interpretieren...
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
@mccom: Die Schule gibt die Adresse sicherlich nicht heraus, doch sie kann über den Betreuer der Arbeit Kontakt mit diesem Schüler aufnehmen, und Deine Adresse an diesen Schüler weiterleiten, so dass dieser Schüler von sich aus Kontakt mit Dir aufnehmen kann. Das hat nichts mit Kanonen und Spatzen zu tun, eine E-Mail ist schnell geschrieben. Das wäre mein erster Ansatz gewesen, weit vor einer Suche auf Facebook, zumal mir nicht ganz klar ist, warum in Teufels Namen der Autor dieser Arbeit Fan des FC Bayern sein sollte ...
Bei der Fehlermeldung ist für mich persönlich jetzt jedenfalls Schluss. Ein NameError durch eine falsch geschriebene Variable, das wäre noch im Rahmen gewesen, aber die Ursache eines ungültigen Index-Zugriffs herauszufinden, ist mehr, als ich bei diesem Quelltext zu tun gewillt bin.
Soweit ich das Inhaltsverzeichnis dieser Arbeit gesehen habe, sind dort allerdings mögliche Lösungsstrategien beschrieben. Angesichts der Qualität des Quelltexts ist es daher sinnvoller, eine dieser Strategien anhand der Beschreibung in der Arbeit von Grund auf neu zu implementieren.
Bei der Fehlermeldung ist für mich persönlich jetzt jedenfalls Schluss. Ein NameError durch eine falsch geschriebene Variable, das wäre noch im Rahmen gewesen, aber die Ursache eines ungültigen Index-Zugriffs herauszufinden, ist mehr, als ich bei diesem Quelltext zu tun gewillt bin.
Soweit ich das Inhaltsverzeichnis dieser Arbeit gesehen habe, sind dort allerdings mögliche Lösungsstrategien beschrieben. Angesichts der Qualität des Quelltexts ist es daher sinnvoller, eine dieser Strategien anhand der Beschreibung in der Arbeit von Grund auf neu zu implementieren.
@mccom: Es gibt nichts, wofür Du Dich hier entschuldigen müsstest (mal abgesehen von der Wortschöpfung "Emailaddy" ). Ich bin keinesfalls genervt, und entschuldige mich dafür, wenn das so gewirkt hat.
Letztlich wollte ich Dir nur auf eine Kontaktmöglichkeit zum Schüler hinweisen, da die Aussicht auf Hilfe hier aufgrund der geringen Qualität des Quelltexts sehr gering sind. Und das ist – nur um das klarzustellen – selbstverständlich nicht Deine Schuld, es ist ja nicht einmal Dein Quelltext. Es ist nur eine einfache Tatsache.
Auf die Idee, den Autoren über Twitter und Blogspot zu suchen, wäre ich ehrlich gesagt gar nicht gekommen.
Letztlich wollte ich Dir nur auf eine Kontaktmöglichkeit zum Schüler hinweisen, da die Aussicht auf Hilfe hier aufgrund der geringen Qualität des Quelltexts sehr gering sind. Und das ist – nur um das klarzustellen – selbstverständlich nicht Deine Schuld, es ist ja nicht einmal Dein Quelltext. Es ist nur eine einfache Tatsache.
Auf die Idee, den Autoren über Twitter und Blogspot zu suchen, wäre ich ehrlich gesagt gar nicht gekommen.
Ich wusste das Thema hatten hatte ich schon mal beackert: Hier ist mein Computerspieler von damals: http://paste.pocoo.org/show/38982/
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Du musst wissen, dass Python2.x und Python3.x nicht kompatibel zueinander sind. Du verwendest anscheinend Python3.x, der Code ist für Version 2.x.mccom hat geschrieben:@BlackJack: Danke fürs raussuchen. Hab es mir kopiert um es nachzuvollziehen. Hab die Prints mit () versehen, weil er sonst meckert. Einziges Problem noch, das er ifilter nicht finden kann? Muss man das extra laden?
Einige Funktionen des itertools-Moduls wurden in die Standardfunktionen übernommen, da nun auch dort konsequent auf Iteratoren gesetzt wird, anstatt neue Listen zu generieren. http://docs.python.org/py3k/library/functions.html
Die Lösung für das import Problem besteht also darin, dieses einfach wegzulassen und das "i" als Präfix bei den Funktionsaufrufen zu entfernen
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
Ausserdem gibt es in Python 3.x die `next()`-Methode auf Iteratoren nicht mehr -- muss man die also durch die neue `next()`-Funktion ersetzen und `raw_input()` heisst nur noch `input()`.
*kopf gegen tisch*
Da hab ich mir ja ne schöne neue Sprache gesucht. Hab mich damals bei aufstieg von Php2 bis php5 jedes mal aufs neue gefreut wenn funktionen verschwanden oder sich änderten
Aber vielen dank, werde gleich mal alles umsetzen und schaun ob ich es hinbekomme!
Da hab ich mir ja ne schöne neue Sprache gesucht. Hab mich damals bei aufstieg von Php2 bis php5 jedes mal aufs neue gefreut wenn funktionen verschwanden oder sich änderten
Aber vielen dank, werde gleich mal alles umsetzen und schaun ob ich es hinbekomme!
@mccom: Da hast Du ausgerechnet "jetzt" halt den ersten Versionssprung seit einer Ewigkeit erwischt, bei dem mal mit der Rückwärtskompatibilität gebrochen wurde -- dann aber auch richtig.
Bei Python 3.x sollte auch ein Programm namens `2to3` dabei sein, das beim Umschreiben hilft und versucht möglichst viel automatisiert "modernisiert". Bei einigen Sachen muss man trotzdem noch per Hand nachbessern, aber bei dem Mastermind-Löser von mir erwischt das Programm alles.
Ansonsten ist auch die 2.7er-Version ein *aktuelles* Python -- 2.x und 3.x werden momentan noch gleichwertig nebeneinander angeboten. Ich habe bis vor kurzem noch mit und für die 2.5 entwickelt, einfach weil das auf einigen "stabilen" Betriebssystemen immer noch das Standardpython ist, und auch bei manchen alternativen Python-Implementierungen der Stand der Dinge ist.
Bei Python 3.x sollte auch ein Programm namens `2to3` dabei sein, das beim Umschreiben hilft und versucht möglichst viel automatisiert "modernisiert". Bei einigen Sachen muss man trotzdem noch per Hand nachbessern, aber bei dem Mastermind-Löser von mir erwischt das Programm alles.
Ansonsten ist auch die 2.7er-Version ein *aktuelles* Python -- 2.x und 3.x werden momentan noch gleichwertig nebeneinander angeboten. Ich habe bis vor kurzem noch mit und für die 2.5 entwickelt, einfach weil das auf einigen "stabilen" Betriebssystemen immer noch das Standardpython ist, und auch bei manchen alternativen Python-Implementierungen der Stand der Dinge ist.