4 Gewinnt

Code-Stücke können hier veröffentlicht werden.
cz3kit
User
Beiträge: 74
Registriert: Freitag 9. Januar 2009, 16:24
Kontaktdaten:

4 Gewinnt

Beitragvon cz3kit » Samstag 17. Januar 2009, 20:08

Hallo ich hab da ein problem. Wir haben gerade 4 Gewinnt von der Schule als Aufgabe bekommen. Wir sollen es so machen das er erkennt wan vier steine in einer Reie sind und dan sagen spieler1hat gewonnen. So sieht das bis jetzt aus:

Code: Alles auswählen

import os
import copy

def showboard(foo_list):
    for element in foo_list:
        print element
def changeSign(sign, SignPlayer1, SignPlayer2):
    if sign == SignPlayer1:
        return SignPlayer2
    else:
       return SignPlayer1
def isComplete(board):
    return True

board = []
Currentsign = 0
line = ['_', '_', '_', '_', '_', '_', '_']
for x in range(6):
    line2 = copy.deepcopy(line)



    board.append(line2)

print
print "Four_Winns"
print

SignPlayer1 = '#'
SignPlayer2 = 'x'
sign = SignPlayer2

Player1 = raw_input("Player1, please put in your name: ")
Player2 = raw_input("Player2, please put in your name: ")

SignPlayer1 = "#"
SignPlayer2 = "x"
os.system("cls")


while isComplete(board):
    print
    print "Four_Winns"
    print
    showboard(board)
    print ['0', '1', '2', '3', '4', '5', '6']


    sign = changeSign(sign, SignPlayer1, SignPlayer2)
    if sign == SignPlayer1:
        print Player1
    else:
        print Player2

    column = input("Please put in a column: ")

    if column < 0 or column > 6:
        print "please choose another column"
        sign = changeSign(sign, SignPlayer1, SignPlayer2)
        continue
    os.system("cls")

    for i in range(5):
        if board[i+1][column] != '_':
            if board[i][column] != '_':
                print "Please choose another column"
                sign = changeSign(sign, SignPlayer1, SignPlayer2)

            else:
                board[i][column] = sign
            break

    if i == 4  and board[5][column] == '_':
        board[5][column] = sign



#checking
#breitx = 7   Hochy = 6
#horizontal
    for x in range(4):
   for y in range(6):
       if (board[x][y] == Currentsign
       and board[x+1][y] == Currentsign
            and board[x+2][y] == Currentsign
       and board[x+3][y] == Currentsign
       ):
      if Currentsign == SignPlayer1:
          Player1win = 1
      elif Currentsign == SignPlayer2:
               Player2win = 1

#vertical
    for x in range(7):
   for y in range(3):
       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

#diagonal
#left to right
    for x in range(4):
   for y in range(3):
       if (board[x][y] == Currentsign
       and board[x+1][y+1] == Currentsign
       and board[x+2][y+2] == Currentsign
       and board[x+3][y+3] == Currentsign
            ):
      if Currentsign == SignPlayer1:
          Player1win = 1
      elif Currentsign == SignPlayer2:
          Player2win = 1

#right to left
    for x in range(4):
        for y in range(3,6,1):
       if (board[x][y] == SignPlayer1
       and board[x+1][y-1] == SignPlayer1
       and board[x+2][y-2] == SignPlayer1
       and board[x+3][y-3] == SignPlayer1
       ):
      if Currentsign == SignPlayer1:
          Player1win = 1
      elif Currentsign == SignPlayer2:
          Player2win = 1




Wäre für jede Hilfe dankbar
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Samstag 17. Januar 2009, 20:35

Hast du irgendein konkretes Problem?
My god, it's full of CARs! | Leonidasvoice vs Modvoice
cz3kit
User
Beiträge: 74
Registriert: Freitag 9. Januar 2009, 16:24
Kontaktdaten:

Beitragvon cz3kit » Samstag 17. Januar 2009, 20:39

Hab ich das nicht gesagt? Hoppla. Also es geht ab Zeile79 los. Er soll kontrollieren ob 4 Steine in einer Reihe sind und sagen Spieler1 hat Gewonnen. Es funzt irgendwie nicht und ich weiß nicht warum. Vielleicht ist das mit dem kontrollieren an der falschen Stelle oder falsch geschrieben ich bin mir nicht sicher. Das wäre dan mein Problem.
Benutzeravatar
martin101986
User
Beiträge: 85
Registriert: Montag 3. Dezember 2007, 19:15
Wohnort: Steiermark, Österreich

Beitragvon martin101986 » Samstag 17. Januar 2009, 20:43

Hallo,

ab Zeile 79 hast stimmt die Einrückung deiner for-Schleifen und If-Abfragen nicht. Korrigier das mal.

Grüße

Martin
cz3kit
User
Beiträge: 74
Registriert: Freitag 9. Januar 2009, 16:24
Kontaktdaten:

Beitragvon cz3kit » Samstag 17. Januar 2009, 20:49

Okey also ich habs richtig eingerückt aber dennoch passiert da nix. Ich hab hier nochmal geguckt und ebenfalls eingerückt der will das aber nicht wirklich übernehmen Also in dem Zitat jetzt.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7471
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Beitragvon Hyperion » Samstag 17. Januar 2009, 21:08

Dann nutze doch http://paste.pocoo.org/ ;-)
cz3kit
User
Beiträge: 74
Registriert: Freitag 9. Januar 2009, 16:24
Kontaktdaten:

Beitragvon cz3kit » Samstag 17. Januar 2009, 21:19

so sieht der untere Teil jetzt aus aber denoch tut sich nix. Muss das den überhaupt ganz ans ende?

Hät ch die Seite gekannt hätte ich die genutzt, aber danke für den Link. War Hilfreich :D

http://paste.pocoo.org/show/100136/
Zuletzt geändert von cz3kit am Samstag 17. Januar 2009, 21:31, insgesamt 2-mal geändert.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Samstag 17. Januar 2009, 21:22

Jetzt ist der Code gar nicht eingerückt. Wenn du schon den Link zu der Seite siehst, dann nutze sie doch auch, statt hier den Code in der Form zu posten die per Definition nicht lauffähig ist. Und warum Setzt du den Code überhaupt in Zitate?
My god, it's full of CARs! | Leonidasvoice vs Modvoice
cz3kit
User
Beiträge: 74
Registriert: Freitag 9. Januar 2009, 16:24
Kontaktdaten:

Beitragvon cz3kit » Samstag 17. Januar 2009, 21:32

so hab es korrigiert, es hat sich irgendwie gegen mich gewendet aber nu is es gemacht so sieht das dan aus

http://paste.pocoo.org/show/100136/
Benutzeravatar
Hyperion
Moderator
Beiträge: 7471
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Beitragvon Hyperion » Samstag 17. Januar 2009, 21:40

Code: Alles auswählen

Traceback (most recent call last):
  File "fourinarow.py", line 96, in <module>
    if (board[x[y]] == Currentsign
TypeError: 'int' object is unsubscriptable

Ist das der Fehler wegen dem Du hier fragst?
cz3kit
User
Beiträge: 74
Registriert: Freitag 9. Januar 2009, 16:24
Kontaktdaten:

Beitragvon cz3kit » Samstag 17. Januar 2009, 21:48

ne das zeigt er mir nicht an er zeigt mir an
if (board[x[y]] == Currentsign
^
IndentaionError: expected an indented block

in Zeile 106
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

Beitragvon derdon » Samstag 17. Januar 2009, 22:09

Benutze Leerzeichen statt Tabs und achte auf die Einrückung. http://translate.google.com/translate_t?q=expected%20an%20indented%20block#
secretwz
User
Beiträge: 40
Registriert: Mittwoch 14. Januar 2009, 22:01

Beitragvon secretwz » Samstag 17. Januar 2009, 22:20

Code: Alles auswählen

Four_Winns

Player1, please put in your name: dfg
Player2, please put in your name: h
sh: cls: not found

Four_Winns

['_', '_', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '_', '_']
['0', '1', '2', '3', '4', '5', '6']
dfg
Please put in a column: 2
sh: cls: not found
Traceback (most recent call last):
  File "test.py", line 95, in <module>
    if (board[x][y] == Currentsign
IndexError: list index out of range


das zeigt der bei mir an...
cz3kit
User
Beiträge: 74
Registriert: Freitag 9. Januar 2009, 16:24
Kontaktdaten:

Beitragvon cz3kit » Samstag 17. Januar 2009, 22:42

Traceback (most recent call last):
File "test.py", line 95, in <module>
if (board[x][y] == Currentsign
IndexError: list index out of range


das zeigt er mir jetzt in Zeile 102

http://paste.pocoo.org/show/100158/
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Beitragvon numerix » Samstag 17. Januar 2009, 23:02

cz3kit hat geschrieben:
Traceback (most recent call last):
File "test.py", line 95, in <module>
if (board[x][y] == Currentsign
IndexError: list index out of range


das zeigt er mir jetzt in Zeile 102

http://paste.pocoo.org/show/100158/


:? :? :? :roll: :roll: :roll: :evil: :evil: :evil: Ist das grausam!

In Zeile 102 steht ein Kommentar.
Der Traceback sagt Zeile 95. Stimmt aber auch nicht.
Laut dem gepasteten Code ist es Zeile 106.

Ich krieg Augenschmerzen!

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder