在将一个字符串放入我的列表后,while循环立即结束 (井字棋)。

2024-10-01 04:48:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用Python为大学做一个tic-tac-toe项目,但是如果我在列表中放一个字符串,while循环会立即中断,尽管我在if语句中插入了“and”。这里有什么问题

我的想法是,如果有人在一个获胜的位置,如在井字游戏的字符串,我的while循环将停止,因为我把“斯皮尔”为假。但是如果我已经在里面放了一个字符串,我的if语句就会被触发,游戏就结束了

while spiel == True:
    print(player1 + " fängt an! ")
    eingabe = input("Auf welchem Feld möchtest du dein " + zeichen1 + " setzen?: ")
    eingabe = eingabe.upper()
    if eingabe == "A1":
        field[1][1] = zeichen1
        i = 0
        while i < len(field):
            print(field[i])
            i += 1
    elif eingabe == "A2":
        field[2][1] = zeichen1
        i = 0
        while i < len(field):
            print(field[i])
            i += 1
    elif eingabe == "A3":
        field[3][1] = zeichen1
        i = 0
        while i < len(field):
            print(field[i])
            i += 1
    elif eingabe == "B1":
        field[1][3] = zeichen1
        i = 0
        while i < len(field):
            print(field[i])
            i += 1
    elif eingabe == "B2":
        field[2][3] = zeichen1
        i = 0
        while i < len(field):
            print(field[i])
            i += 1
    elif eingabe == "B3":
        field[3][3] = zeichen1
        i = 0
        while i < len(field):
            print(field[i])
            i += 1
    elif eingabe == "C1":
        field[1][5] = zeichen1
        i = 0
        while i < len(field):
            print(field[i])
            i += 1
    elif eingabe == "C2":
        field[2][5] = zeichen1
        i = 0
        while i < len(field):
            print(field[i])
            i += 1
    elif eingabe == "C3":
        field[3][5] = zeichen1
        i = 0
        while i < len(field):
            print(field[i])
            i += 1
    print(player2 + " du bist dran!")
    eingabe = input("Auf welchem Feld möchtest du dein " + zeichen2 + " setzen?: ")
    eingabe = eingabe.upper()
    if eingabe == "A1":
        field[1][1] = zeichen2
        i = 0
        while i < len(field):
            print(field[i])
            i += 1
    elif eingabe == "A2":
        field[2][1] = zeichen2
        i = 0
        while i < len(field):
            print(field[i])
            i += 1
    elif eingabe == "A3":
        field[3][1] = zeichen2
        i = 0
        while i < len(field):
            print(field[i])
            i += 1
    elif eingabe == "B1":
        field[1][3] = zeichen2
        i = 0
        while i < len(field):
            print(field[i])
            i += 1
    elif eingabe == "B2":
        field[2][3] = zeichen2
        i = 0
        while i < len(field):
            print(field[i])
            i += 1
    elif eingabe == "B3":
        field[3][3] = zeichen2
        i = 0
        while i < len(field):
            print(field[i])
            i += 1
    elif eingabe == "C1":
        field[1][5] = zeichen2
        i = 0
        while i < len(field):
            print(field[i])
            i += 1
    elif eingabe == "C2":
        field[2][5] = zeichen2
        i = 0
        while i < len(field):
            print(field[i])
            i += 1
    elif eingabe == "C3":
        field[3][5] = zeichen2
        i = 0
        while i < len(field):
            print(field[i])
            i += 1
if zeichen1 in (field[1][1] and field[1][3] and field[1][5]) or (field[2][1] and field[2][3] and field[2][5]) or (field[3][1] and field[3][3] and field[3][5]) or (field[1][1] and field[2][3] and field[3][5]) or (field[3][1] and field[2][3] and field[1][5]):
    print(player1 + " hat gewonnen!")
    spiel = False

我希望我的代码结束,在有人赢了一轮井字游戏之后,如果我加上一个字符串就不会结束了


Tags: orand字符串游戏fieldlenif语句