4 Gewinnt

Code-Stücke können hier veröffentlicht werden.
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Es dürfte wohl eher so sein, dass es unterschiedliche Auffassungen darüber gibt, wie "Hilfe" aussehen sollte. Es gibt eine ganze Reihe hier im Forum, die sich hinsetzen könnten und in vertretbarer Zeit ein fertiges Programm "4 Gewinnt" posten könnten. Aber das ist doch keine sinnvolle Hilfe!
secretwz
User
Beiträge: 40
Registriert: Mittwoch 14. Januar 2009, 22:01

nja ok so mein ich das auch nciht^^
sicher ist es keine hilfe wenn man demjenigen alles macht. aber auch sachen nennen und erklären. auch wenn es tausend docs und bücher drüber gibt .. vielleicht nicht wegen jedem ding was auch ich falsch gemacht hab un andre damit nervte.. naja irgendwie sehr viel nsichtssache xD jetz bin ich auch einw enig raus.. naja xD ich wünsche noch viel glück beim fehler finden ;)
cz3kit
User
Beiträge: 74
Registriert: Freitag 9. Januar 2009, 16:24

@ Hyperion nein wir haben leider noch keine Funktionen behandelt, also wen es verständlicher wäre, dan verschtäh ich nicht ganz wie wir das dan machen sollen -.- ICh werd noch etwas dran rumspielen falls ein Ergebniss dabei heraus kommt dan werde ich es posten

@wuf hier is der stand es hat nichts geändert den ich belasse es immer beim alten http://paste.pocoo.org/show/100136/
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

Hallo cz3kit

Danke für deine Antwort. Ich habe dein Code runtergeladen und ohne etwas daran zu ändern getestet.

Bei mir zeigt sich folgende Meldung auf der Konsole (Linux):

Code: Alles auswählen

Four_Winns

Player1, please put in your name: a
Player2, please put in your name: b
sh: cls: command not found

Four_Winns

['_', '_', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '_', '_']
['0', '1', '2', '3', '4', '5', '6']
a
Please put in a column: 0
sh: cls: command not found
Traceback (most recent call last):
  File "4_gewinnt_02.py", line 96, in <module>
Fragen:
Was ist dein OS: Winows oder Linux?
Was ist deine Python-Version: 2.5 oder 2.6?
Was bekommst du für eine Meldung, wenn du deinen Code ausführst?
Kannst du die Meldung hier posten?

Gruss wuf :wink:
Take it easy Mates!
secretwz
User
Beiträge: 40
Registriert: Mittwoch 14. Januar 2009, 22:01

ja der range bei "vertical" ist irgendwie falsch.. ich weiß garnicht wie das da funktioniert von daher kann ich nicht sagen was direkt falsch ist aber wenn ich den code auf folgendes ändern:

Code: Alles auswählen

#vertical
    for x in range(4):
        for y in range(6):
und jetzt funktioniert es ohne das er den fehler anzeigt.. jetzt gibt es dort allerdings das problem das niemand gewinnt xD also man kann alles schön mit x und # ausfülln aber da ist nie schluss.. naja vielleicht hilft das ;)[/code]

@wuf das zeigt mir wenn ich es per konsole teste auch ;) logischer weise^^ aber unter IDLE zeigt er ein range fehler an... ausserdem musste ich den code noch bissl umänder.. da sind die tabs n bissl falsch und auch das [x[y]] muss zu [x][y] geändert werden..
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Also so kann man nicht arbeiten! Du kannst nicht einfach Code ändern und den dann nicht hier posten - wie soll man dann die Fehler nachvollziehen?

Was für ne Meldung kam denn?

Wieso zum Geier lässt Du Dir die Werte nicht mal per print ausgeben! Dann siehst Du doch, wie er falsch zählt!
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

@secretwz: Bei meiner Meldung ist der erste Fehler:

Code: Alles auswählen

sh: cls: command not found 
Ist diese Anweisung richtig?:

Code: Alles auswählen

os.system("cls")
Gruss wuf :wink:
Take it easy Mates!
secretwz
User
Beiträge: 40
Registriert: Mittwoch 14. Januar 2009, 22:01

klar kann ich schon^^ http://paste.pocoo.org/show/cH2lkqgJtP2OZlOIddPu/
also so hab ich ihn geändert... ja nja ich versteh das da ja alles nich mit dem range ding un ich wollte ja eigentlich auch nur sagen das es daran liegt! ausserdem hab ich den fehler schon ein paar posts davor ;)

Code: Alles auswählen

Traceback (most recent call last):
  File "/home/willi/Namenloser Ordner/heheee.py", line 108, in <module>
    if (board[x][y] == Currentsign
IndexError: list index out of range
das hat er angezeigt bevor ich das bei range geändert hab! jetzt zeigt er kein fehler mehr an aber es kann halt keiner gewinn...
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

@secretwz: Ist dein erster Benutzername cz3kit ? und der zweite secretwz ? (Du hast nicht zwei Benutzername? Nur weil ich von cz3kit noch nichts gehört habe)

@secretwz
Ich probierte den Code nicht unter IDLE aus. Löscht bei dir folgende Anweisung den Inhalt der Ausgabe-Konsole?:

Code: Alles auswählen

os.system("cls")
Bei mir nicht!

Ich habe sie durch folgende Anweisung ersetzt:

Code: Alles auswählen

os.system("clear")
So funktioniert jetzt die Löschung des Konsoleinhaltes!

Gruss wuf :wink:
Take it easy Mates!
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

secretwz hat geschrieben: also so hab ich ihn geändert... ja nja ich versteh das da ja alles nich mit dem range ding un ich wollte ja eigentlich auch nur sagen das es daran liegt!
Stichwort Hilfe zur Selbsthilfe! Wieso zum Teufel noch eines probierst Du es nicht aus und evaluierst range() einfach? Sorry, aber diese Dickefälligkeit begreife ich nicht!

Öffne Dir ne Python-Shell, probiere das Verhalten von range() aus, indem du dir eine for-Schleife bastelst und guckst, wie range() Zahlen generiert. Dann bastel Dir ne Demo-Liste und probiere per Index darauf zuzugreifen (und das ganze per print auszugeben!).

Dann überlege Dir, wann es einen Index-Errror gibt!

Dann übertrage die print Ausgabe in deinen Problem-Code und gucke, welche Werte da durchlaufen werden.

Dann überlege noch einmal, wo das Problem liegt!
secretwz
User
Beiträge: 40
Registriert: Mittwoch 14. Januar 2009, 22:01

nene hier liegt ne verwechslung vor xD ich bin nicht cz3kit... ich habe lediglich probiert ihm zu helfen.. @hyperion und ich weiß garnicht was du von mir willst es geht doch garnicht um mich ich habe doch nur probiert dem user hier probiert zu helfen und ich weiß garnicht warum du mir jetzt sagst was ich zu tun habe xD des ist ja nicht mein problem sondern von cz3kit... und habe ihm nur gesagt das es bei mir den fehler gibt das es am range liegt und das habe ich auch durch die veränderung des codes bewiesen.. mehr wollte ich doch garnicht ;) entweder du hast mich auch verwechselst oder probiertst du mir was beizubring? dann tuts mir leid das des hier vllt bisschen böse rüberkommt also war nich so gemeint ;) also viel spass euch noch ;)
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

.... Mit meiner Änderung von:

Code: Alles auswählen

os.system("cls")
auf

Code: Alles auswählen

os.system("clear")
wird folgende Exception sichtbar:

Code: Alles auswählen

Traceback (most recent call last):
  File "4_gewinnt_02_01.py", line 96, in <module>
    if (board[x[y]] == Currentsign
TypeError: 'int' object is unsubscriptable
Habe ab Zeile 96 folgende Anpassungen durchgeführt:

Code: Alles auswählen

#vertical
    for x in range(3): #for x in range(7):
	for y in range(7): #for y in range(3):
	    if (board[x][y] == Currentsign: #if (board[x[y]] == Currentsign
	    and board[x][y+1] == Currentsign
	    and board[x][y+2] == Currentsign
	    and board[x][y+3] == Currentsign
            ):
		if Currentsign == SignPlayer1:
	    		Player1win = 1
		elif Currentsign == SignPlayer2:
	   		Player2win = 1
Folgende Zeile 96 ist sicher falsch:

Code: Alles auswählen

if (board[x[y]] == Currentsign:
Korrektur-1:

Code: Alles auswählen

if (board[x][y] == Currentsign:
Ein zusätzlicher Fehler ist mit den 'ranges'. Die Werte von x und y sind vertauscht!
Hier sollte man x,y besser durch Bezeichnungen wie row,column ersetzen:

Code: Alles auswählen

for x in range(7):
    for y in range(3):
Korrektur-2:

Code: Alles auswählen

for x in range(3):
    for y in range(7):
So scheint die Sache vorläufig zu funktionieren.

Edit: Habe noch fehlende Doppelpunkte eingesetzt.

Gruss wuf :wink:
Zuletzt geändert von wuf am Dienstag 20. Januar 2009, 21:09, insgesamt 1-mal geändert.
Take it easy Mates!
secretwz
User
Beiträge: 40
Registriert: Mittwoch 14. Januar 2009, 22:01

sehr nett von dir ;) hat sich ja nur bestätigt was ich gesagt hab aber wusste halt nich was für werte bei den x und y richtig sind ;) da ich davon keine ahnung hab un dies auch nicht weiter haben möchte xD ;) also viel spass wenn das problem jetz endlich gelöst ist an cz3kit ;)
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

secretwz hat geschrieben:nene hier liegt ne verwechslung vor xD ich bin nicht cz3kit... ich habe lediglich probiert ihm zu helfen.. @hyperion und ich weiß garnicht was du von mir willst es geht doch garnicht um mich ich habe doch nur probiert dem user hier probiert zu helfen und ich weiß garnicht warum du mir jetzt sagst was ich zu tun habe xD des ist ja nicht mein problem sondern von cz3kit... und habe ihm nur gesagt das es bei mir den fehler gibt das es am range liegt und das habe ich auch durch die veränderung des codes bewiesen.. mehr wollte ich doch garnicht ;) entweder du hast mich auch verwechselst oder probiertst du mir was beizubring? dann tuts mir leid das des hier vllt bisschen böse rüberkommt also war nich so gemeint ;) also viel spass euch noch ;)
Sorry, hab Dich mit dem Threadsteller verwechselt ;-)
secretwz
User
Beiträge: 40
Registriert: Mittwoch 14. Januar 2009, 22:01

kein problem^^ war ja nicht böse gemeint :P
cz3kit
User
Beiträge: 74
Registriert: Freitag 9. Januar 2009, 16:24

Hallo so da bin ich wieder sorry konnte nicht zurückschreiben, unser Lehrer hat uns noch das Pascalsche Dreieck reingedrückt -.-

@wuf zu deinen Fragen.
Mein OS ist Windows
Meine Python Version is 2.5.2
Meine Fehler Meldung: line 96, in <module>
Index Error: list index out of range
mit os.system('cls') clear er das Feld wen noch ein Spielstein reinfällt damit die Konsole nicht so überfüllt ist. Welche Version verwendest du den? Da du ja clear benutzt
und danke für die Korrekturen

@secretwz wir benutzen zur Zeit nur Konsole und danke wegen dem Tipp mit [x[y]]

Gruß cz3kit
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

Hallo cz3kit & secretwz

Danke für den Feedback.

Ich arbeite praktisch nur unter Linux. Momentan SuSE 11.0 installiert auf einem Laptop 'ACER-Aspire 5930G'

Editor: Kwrite
Python: 2.4, 2.5, 2.6, 3.0
Ausgabe: Bash-Terminal

OK! Wünsche euch noch viel Spass beim programmieren mit Python.

P.S. Wusste nicht, dass unter Windows *os.system('Cls')* verwendet wird.

Gruss wuf :wink:
Take it easy Mates!
Benutzeravatar
jonas
User
Beiträge: 156
Registriert: Dienstag 9. September 2008, 21:03

Hab ich irgendwie schon öfter von dir gehört Numerix,
langsam mach ich mir richtig Sorgen. Du solltest dringend
den Augenarzt deines Vertrauens aufsuchen oder darüber
nachdenken dir einen neuen Monitor zuzulegen :D :D
(Ist nur ein Witz)

MfG Jonas :wink:
Antworten