我是一名新编码员,对不起,如果我的问题不好或我没有遵循正确的礼节!
我正在设计一个掷骰子的基本程序。它应该滚动骰子,直到计算机或用户的总点数等于100.但是,即使我的点总计正在工作,循环也不会结束。有谁知道这是为什么?谢谢!
def main():
GAME_END_POINTS = 100
COMPUTER_HOLD = 10
is_user_turn = True
user_pt = 0
computer_pt = 0
welcome()
while computer_pt < GAME_END_POINTS or user_pt < GAME_END_POINTS:
print_current_player(is_user_turn)
if is_user_turn is True:
user_pt = user_pt + take_turn(is_user_turn, COMPUTER_HOLD)
elif is_user_turn is False:
computer_pt = computer_pt + take_turn(is_user_turn, COMPUTER_HOLD)
report_points(user_pt, computer_pt)
is_user_turn = get_next_player(is_user_turn)
答案 0 :(得分:2)
条件始终为True
,因为用户计算机或的总分数小于100。
而不是or
使用and
:
while computer_pt < GAME_END_POINTS and user_pt < GAME_END_POINTS:
现在,只有当两者用户和计算机的点总数小于100时,循环才会继续。只要其中一个点数超过100,条件将为{{1}并且循环将终止。
答案 1 :(得分:0)
你的while循环只会在computer_pt >= GAME_END_POINTS and user_pt >= GAME_END_POINTS
的情况下结束。你确定这两个变量满足这两个条件吗?
答案 2 :(得分:0)
你可以在循环中打印computer_pt和user_pt来查看这两个变量中发生了什么,然后你会找到自己的答案。 循环打印变量是调试代码的常用方法。