【发布时间】:2021-07-29 10:08:12
【问题描述】:
我一直在做一个井字游戏项目,但是,有一个问题:
intro()
row_top = [' ','|',' ','|',' ']
line = ['-','-','-','-','-']
row_mid = [' ','|',' ','|',' ']
row_low = [' ','|',' ','|',' ']
default = (' ' in row_top or ' ' in row_mid or ' ' in row_low)
p1 = True
while default:
while p1 :
p1c = int(input('P1 turn! insert the position you want to place the marker:'))
if inserter_1(p1c) != 'Error':
display()
p1 = False
while not p1:
p2c = int(input('P2 turn! insert the position you want to place the marker:'))
if inserter_2(p2c) != 'Error':
display()
p1 = True
winner_check()
inserter() 函数将空格字符串的值更改为“X”或“O”,并且 display() 函数打印出棋盘。
即使display() 函数显示板已被填满(这意味着所有行中都没有' '),它仍然要求输入。
真正令人困惑的是 default 条件绝对是错误的,我什至尝试添加一个从 1 到 9 的数字列表,并在每次玩家输入时删除一个数字,但它仍然不工作。
任何帮助将不胜感激。非常感谢!
【问题讨论】:
-
您是否正在更新
default,看起来它被评估为True,然后在进行更新时不会再次调用以进行更改。这不会随着董事会的变化而改变。 -
你能分享一下
intro(),display() -
您想将
default转换为一个函数,并在每次要评估它时调用该函数。问题是,程序总是重新评估变量的值会非常昂贵,所以你不想这样做。变量用于评估事物一次并将该信息存储在某处,因此无需多次重新评估事物(并简化代码)。在这种情况下,您也可以将default替换为您作为变量值的表达式? -
感谢您的回复!我发布了错误版本的代码,实际上我将“while default”更改为 row_top 中的“while”或 row_mid 中的“”或 row_low 中的“”,但效果相同
标签: python loops while-loop