Servus Leute
Mastermind gibt es in Java so um die 50verschiedene
geht sowas auch in Python
für pygame gibts hier was
http://paste.pocoo.org/show/39314/
BUGFIX!!!!!!10.4.08
screeenshot
VIEL SPASS !
MASTERMIND in PYTHON wx das wärs doch
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Natürlich, warum auch nicht. In der Wikipedia stehen ein paar Fakten dazu und es ist problemlos zu programmieren.sea-live hat geschrieben:Mastermind gibt es in Java so um die 50verschiedene
geht sowas auch in Python
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Nein, Python ist für dermaßen komplexe Projekte nicht geeignet, es sei denn, man integriert JavaScript und lässt Code durch XML und XSLT erstellen.
Natürlich gehts in Python..blöde Frage. Du willst dir PyGame anschaun.
Natürlich gehts in Python..blöde Frage. Du willst dir PyGame anschaun.
Zu dem Thema fällt mir spontan das hier ein: Matermind verkehrt. Da ist auch ein wenig Python-Code zu finden.
so der erste teil steht es läuft auch schon so zu 10Prozent
kann man den code auch vereinfachen
kann man den code auch vereinfachen
Code: Alles auswählen
if pos[0] > 25 and pos[0] < 60 and pos[1] > 150 and pos[1] < 190 :
Pin(screen,farben[0])
if pos[0] > 80 and pos[0] < 120 and pos[1] > 150 and pos[1] < 190 :
Pin(screen,farben[1])
if pos[0] > 25 and pos[0] < 60 and pos[1] > 200 and pos[1] < 240 :
Pin(screen,farben[2])
if pos[0] > 80 and pos[0] < 120 and pos[1] > 200 and pos[1] < 240 :
Pin(screen,farben[3])
Ja, du kannst zunjächst die Bedingungen noch etwas umschreiben:
Außerdem kommen alle Bedingungen zweimal vor, also bestimmst du diese einfach einmal und packst sie in eine Variable:
Eventuell kannst du noch ein wenig mit else und elif zusammenfassen, oder das ganze in eine Funktion "get_color_id" zusammenfassen und dann so aufrufen:
Du musst dann lediglich die default-Farbe mit berücksichtigen.
Code: Alles auswählen
pos[0] > 25 and pos[0] < 60
#zu
25 <pos[0] < 60
Code: Alles auswählen
s1 = 25 < pos[0] < 60
s2 = 150 < pos[1] < 190
s3 = 80 < pos[0] < 120
s4 = 200 < pos[1] < 240
if s1 and s2:
Pin(screen,farben[0])
if s3 and s2:
Pin(screen,farben[1])
if s1 and s4:
Pin(screen,farben[2])
if s3 and s4:
Pin(screen,farben[3])
Code: Alles auswählen
Pin(screen, farben[get_color_id(pos)])
Code: Alles auswählen
koordinaten = [((25, 60), (150, 190)),
((80, 120), (150, 190)),
((25, 60), (200, 240)),
((80, 120), (150, 190))]
for farbe, ((x_low, x_high), (y_low, y_high)) in zip(farben, koordinaten):
if x_low < x < x_high and y_low < y < y_low:
Pin(screen, farbe)
break
@BlackJack so läuft das nicht
ohne dein code gehts ! MIT EYDU auch!
code ausgelagert
http://paste.pocoo.org/show/38433/
ohne dein code gehts ! MIT EYDU auch!
code ausgelagert
http://paste.pocoo.org/show/38433/
Zuletzt geändert von sea-live am Montag 7. April 2008, 19:12, insgesamt 1-mal geändert.
Naja, das letzte Unterelement der Letzten Koordinate sollte wohl (200, 240) heißen und nicht (150, 190).sea-live hat geschrieben:@BlackJack so läuft das nicht
@sea-live: Benutze doch bitte Konstanten und verstreu nicht irgendwelche Werte im Quellcode. Außerdem ist da eine Menge Code den man noch zusammenfassen kann.
dankeEyDu hat geschrieben:Naja, das letzte Unterelement der Letzten Koordinate sollte wohl (200, 240) heißen und nicht (150, 190).sea-live hat geschrieben:@BlackJack so läuft das nicht
@sea-live: Benutze doch bitte Konstanten und verstreu nicht irgendwelche Werte im Quellcode. Außerdem ist da eine Menge Code den man noch zusammenfassen kann.
http://paste.pocoo.org/show/38800/
hier mal ein screenshot
Zuletzt geändert von sea-live am Dienstag 8. April 2008, 18:57, insgesamt 1-mal geändert.
neues problem
meinewahl = [3,1,7,0]
wi kontroliere ich richtig ob im array eine 7 drin ist oder nicht
wenn keine 7 drin dann Auswerten()
ansonsten weiter
code ausgelagert
http://paste.pocoo.org/show/38433/
meinewahl = [3,1,7,0]
wi kontroliere ich richtig ob im array eine 7 drin ist oder nicht
wenn keine 7 drin dann Auswerten()
ansonsten weiter
code ausgelagert
http://paste.pocoo.org/show/38433/
Code: Alles auswählen
if 7 in meine_liste: do_stuff()
Ich darf mir mal einige Kommentare erlauben:
Die ganzen herumfliegenden Zahlen hatte ich ja schon erwähnt. Spätestens in zwei Wochen wirst dur nicht mehr wissen, was diese bedeuten.
Ersetze die *-Importe. Bei dir hilft vielleicht schon ein "import ... as ..."
Konstanten werden nach PEP8 in Großbuchstaben geschrieben und gehören natürlich auch irgendwie dokumentiert/kommentiert.
Zum Einrücken verwende doch bitte pro Block 4 Leerzeichen und keine Tabs oder gar gemische Formen!
Vor und hinter ein Gleichheitszeichen gehören jeweils ein Leerzeichen.
Funktionsnamen werden übrigens mit einem Kleinbuchstaben begonnen: ich_bin_eine_funktion.
Außerdem vermischt du englische und deutsche Bezeichner.
Das Kommentar "globale variablen" ist total überflüssig.
Du arbeitest sehr viel mit copy&paste:
Deine "Mach"-Funktion ist viel zu lang, da kann man sicher etwas auslagern. Vorallem alles nach dem Kommentar "reihe feststellen" ist viel zu kompliziert:
Die Funktion kannst du gleich auslagern und auch auf "spalte festellen" anwenden. Das ist quasi das selbe!
Statt "done = 0" und "done = 1" verwende besser "True" und "False": "done = True".
Die ganzen herumfliegenden Zahlen hatte ich ja schon erwähnt. Spätestens in zwei Wochen wirst dur nicht mehr wissen, was diese bedeuten.
Ersetze die *-Importe. Bei dir hilft vielleicht schon ein "import ... as ..."
Konstanten werden nach PEP8 in Großbuchstaben geschrieben und gehören natürlich auch irgendwie dokumentiert/kommentiert.
Zum Einrücken verwende doch bitte pro Block 4 Leerzeichen und keine Tabs oder gar gemische Formen!
Vor und hinter ein Gleichheitszeichen gehören jeweils ein Leerzeichen.
Funktionsnamen werden übrigens mit einem Kleinbuchstaben begonnen: ich_bin_eine_funktion.
Außerdem vermischt du englische und deutsche Bezeichner.
Das Kommentar "globale variablen" ist total überflüssig.
Du arbeitest sehr viel mit copy&paste:
Code: Alles auswählen
pygame.draw.circle(screen, farben[0],(40,170), 20)
pygame.draw.circle(screen, farben[1],(100,170), 20)
pygame.draw.circle(screen, farben[2],(40,220), 20)
pygame.draw.circle(screen, farben[3],(100,220), 20)
#besser als
coords = [(40, 170), (100, 170), ...]
for farbe, coord in zip(farben, coords):
pygame.draw.circle(screen, farbe, coord, 20)
Code: Alles auswählen
cx = 150 < pos[0] < 250
if cx:
coords = [(20, 45), (50, 75), ...]
for index, (x, y) in coords:
if x < pos[1] < y:
akt_zeile = index+1
Statt "done = 0" und "done = 1" verwende besser "True" und "False": "done = True".
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Dann erstellt doch einen neuen Thread. Dafür sind sie ja da. Wenn du Fragen an einen Thread hängt dann hilft das weder dir (weil niemand einen Thread liest in dem es laut Topic um Mastermind geht, wenn er nicht dran interessiert ist) noch jemandem anderen (weil in der Suchfunktion dann dieser Thread auftauscht und dort keiner die Antwort auf so eine Frage erwartet).sea-live hat geschrieben:neues problem
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
so ich hab mal ein ergebniss
hier zufinden
es läuft ist aber noch mit einem bug bei der farbeninfo
keinen schimmer warumm
!! Noch nicht !!!
http://paste.pocoo.org/show/39314
BUGFIX !!!
screenshot
hier zufinden
es läuft ist aber noch mit einem bug bei der farbeninfo
keinen schimmer warumm
!! Noch nicht !!!
http://paste.pocoo.org/show/39314
BUGFIX !!!
screenshot
Zuletzt geändert von sea-live am Donnerstag 10. April 2008, 15:55, insgesamt 4-mal geändert.
Zuletzt geändert von sea-live am Donnerstag 10. April 2008, 15:55, insgesamt 2-mal geändert.