gpt4 book ai didi

python - 我模拟 Squash 比赛的代码有什么问题?

转载 作者:太空宇宙 更新时间:2023-11-04 09:11:55 26 4
gpt4 key购买 nike

我正在尝试使用英语规则模拟 Squash 比赛的计分。它们是:

  • 只有发球者赢得比赛才能获得积分。
  • 如果发球者赢得一场比赛,他们将获得一分并继续担任发球者。
  • 如果接力赛获胜,他们将成为发球者,但不会获得积分。
  • 除非比分达到 8-8,否则第一个达到 9 分的玩家将赢得比赛。
  • 如果比分达到 8-8,首先达到 8 的玩家决定是打到 9 还是打到 10。

我的代码是这样的:

import random

def eng_game(a,b):
A = 'bob'
B = 'susie'
players = [A, B]

server = random.choice(players)
print server

points_bob = 0
points_susie= 0

prob_A_wins = 0.4
prob_B_wins = 0.6

while points_bob or points_susie < 9:
probability = random.random()
print probability
if probability < prob_A_wins and server == A:
points_bob += 1
elif probability < prob_A_wins and server == B:
server == A
print server

if probability > prob_A_wins and server == B:
points_susie += 1
elif probability > prob_A_wins and server == A:
server == B
print server

print points_bob
print points_susie

此代码返回 Susie 以 9-0 获胜,而在某些情况下应该将服务器交换给 Bob 以赢得分数,但这并没有发生。发球由 Susie 负责,她赢得了这一分。

最佳答案

我认为问题在于语句 server == Aserver == B 应该是 server = Aserver = B 以便进行赋值而不是比较。

我看到的另一个极端情况错误是,如果概率最终正好是 0.4,您的程序将表现得好像虚拟服务从未发生过一样。

我会将您的循环更改为:

while points_bob < 9 and points_susie < 9:
probability = random.random()
print probability
if probability <= prob_A_wins and server == A:
points_bob += 1
elif probability <= prob_A_wins and server == B:
server = A
print server

if probability > prob_A_wins and server == B:
points_susie += 1
elif probability > prob_A_wins and server == A:
server = B
print server

print points_bob
print points_susie

关于python - 我模拟 Squash 比赛的代码有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13867578/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com