1

私はpythonを学ぼうとしていて、(非常に)単純な三目並べプログラムを書いています。ただし、ユーザーに数字を入力させる以外に実行されないように見えるため、行き詰まりました。その後、何も起こりません。どこで間違ったのかわかりません。確かにたくさんのエラーがありますが、助けていただければ幸いです。

ありがとう!

import random

board = range(0,9)

def print_board():
    print board[0], "|", board[1], "|", board[2]
    print board[3], "|", board[4], "|", board[5]
    print board[6], "|", board[7], "|", board[8]

def checkAll():
        if board[0] == board[1] == board[2]:
            True
        if board[3] == board[4] == board[5]:
            True
        if board[6] == board[7] == board[8]:
            True
        if board[0] == board[3] == board[6]:
            True
        if board[1] == board[4] == board[7]:
            True
        if board[2] == board[5] == board[8]:
            True
        if board[0] == board[4] == board[8]:
            True
        if board[6] == board[4] == board[2]:
            True

print_board()

while True:
    input = int(raw_input("Choose a number to place your X: "))

    if input <= 8:
        if board[input] != "x" or board[input] != "o": 
            board[input] = "x" # places x if board[input] is neither x or o

            # Check for winner

            if checkAll() == True:
                "The game is over!"
                break;

            finding = True
            while finding:

                random.seed() # gives a random generator
                opponent = random.randrange(0,8) # generates a random integer between 1 and 8

                if board[opponent] != "x" or board[opponent] != "o":
                    board[opponent] = "o"

                    # Check for winner

                    if checkAll() == True:
                        "The game is over!"
                        break;

        else:
            print "This spot is taken."
        print_board()

    else: "Please choose a number between O and 8."
4

1 に答える 1

0

コードには改善が必要なことがたくさんあります (少なくとも CheckAll 関数を書き直して、任意のサイズのボードをチェックできるようにする必要があります) が、2 つのことがデバッグに役立ちます。あなたの CheckAll 関数:

...
if board[0] == board[1] == board[2]:
    return True
if board[3] == board[4] == board[5]:
    return True
...

次に、実際に出力を印刷したい場合があります。

if checkAll() == True:
   print "The game is over!"
   break;
于 2013-09-01T06:50:34.100 に答える