If statement 在python上检查tic-tac-toe游戏

If statement 在python上检查tic-tac-toe游戏,if-statement,for-loop,python-3.x,If Statement,For Loop,Python 3.x,我正在做这个项目,我检查一个完成的井字游戏。用户在每行(共3行)中输入x和o的组合以及周期(最多3个)。我必须检查x或o是否转动过多。这就是我所拥有的: if ttt.count(x) > 5: print("x took too many turns") 这是给x的。当我运行程序并测试这个语句是否出现在x上时,什么也没有出现。我做错了什么 以下是一个运行示例: 0 - check a finished tic-tac-toe 1 - check

我正在做这个项目,我检查一个完成的井字游戏。用户在每行(共3行)中输入x和o的组合以及周期(最多3个)。我必须检查x或o是否转动过多。这就是我所拥有的:

if ttt.count(x) > 5:
                    print("x took too many turns")
这是给x的。当我运行程序并测试这个语句是否出现在x上时,什么也没有出现。我做错了什么

以下是一个运行示例:

0 - check a finished tic-tac-toe
1 - check a finished sudoku
2 - check a game of connect four
3 - quit
choose an option: 0
option 0
For each row, start with x. Enter a combination of x'sand o's up to three characters. For a blank space,enter a period '.'.
top row:xox
middle row:xox
bottom row:xox  
['xox', 'xox', 'xox']
0 - check a finished tic-tac-toe
1 - check a finished sudoku
2 - check a game of connect four
3 - quit
choose an option: 
这是代码的较大部分:

for x in i:
            if x not in valid_symbols:
                    print("invalid board - invalid symbol " + x )
                    done = True
                    break
            if ttt.count(x) > 5:
                print("x took too many turns")

如果我插入了一个无效的符号,那么它将打印该语句。

您似乎误解了
ttt
的内容。打开解释器并尝试以下操作:

Python 3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:03:43) [MSC v.1600 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> tic_tac_toe = []
>>> tic_tac_toe.append(input('Top row: '))
Top row: xxx
>>>
>>> tic_tac_toe
['xxx']
>>> tic_tac_toe.count('x')
0
>>> tic_tac_toe.count('xxx')
1

当您
.append('xox')
时会发生什么?列表是什么样子的?

它可能是一个更大的部分,但您缺少了最重要的部分-您实际上定义了
ttt
(顺便说一句,这恰好是一个糟糕的变量名)。另外,如果使用4个空格而不是制表符进行缩进,您会发现Python中的情况要好得多。谢谢您的建议。ttt是tic-tac-toe的变量名,定义为:ttt=list()
tic-tac-toe
game
board
可能是更好的名称。@Wanye Werner我编辑了我的答案,向您展示了我对附加行所做的操作,我必须附加行的是ttt。附加(行),然后我打印(ttt)。这是在col_大小3的范围内。我不明白的是,我的代码的计数部分没有出现任何问题。你在解释器中尝试过吗?