【发布时间】:2021-12-10 04:14:38
【问题描述】:
我的任务是制作井字游戏。网格由 3 行组成。我开发了核心游戏玩法,这很有效,但由于某种原因,我无法检查是否获胜。我在回合结束时有if any(wins_x) 和if any(wins_o)。
row1 = ['-', '-', '-']
row2 = ['-', '-', '-']
row3 = ['-', '-', '-']
table = [row1, row2, row3]
wins_x = [(row1[0] == 'x' and row2[1] == 'x' and row3[2] == 'x'),
(row3[0] == 'x' and row2[1] == 'x' and row1[2] == 'x'),
(row1 == ['x', 'x', 'x']),
(row2 == ['x', 'x', 'x']),
(row3 == ['x', 'x', 'x']),
(row1[0] == 'x' and row2[0] == 'x' and row3[0] == 'x'),
(row1[1] == 'x' and row2[1] == 'x' and row3[1] == 'x'),
(row1[2] == 'x' and row2[2] == 'x' and row3[2] == 'x')]
wins_o = [(row1[0] == 'o' and row2[1] == 'o' and row3[2] == 'o'),
(row3[0] == 'o' and row2[1] == 'o' and row1[2] == 'o'),
(row1 == ['o', 'o', 'o']),
(row2 == ['o', 'o', 'o']),
(row3 == ['o', 'o', 'o']),
(row1[0] == 'o' and row2[0] == 'o' and row3[0] == 'o'),
(row1[1] == 'o' and row2[1] == 'o' and row3[1] == 'o'),
(row1[2] == 'o' and row2[2] == 'o' and row3[2] == 'o')]
【问题讨论】:
-
用调试器试过了吗?
-
wins_x和wins_o中的值决定了列表的创建时间,因此您需要将它们放入创建它们的函数中,并在每次创建时检查它们的值调用。