我編輯了我以前的問題,因爲我想出了我認爲正確的代碼。 這個背後的邏輯應該是: ,而這個集合還沒有結束,這不是一個平局10:10:玩家A開始投球並且無論他是否贏得分數都執行兩次,然後玩家B獲得發球並且執行兩次。它會一直持續到設置結束,除非服務器更改每個點得分時有一條平局10:10。乒乓球模擬器
任何人都可以檢查代碼是否完美無缺?謝謝。
def simOneSet(probA, probB):
serving = "A"
scoreA = scoreB = 0
while not setOver(scoreA, scoreB):
if scoreA != 10 and scoreB != 10:
if serving == "A":
for i in range(2):
if random() < probA:
scoreA += 1
else:
scoreB += 1
serving = "B"
else:
for i in range(2):
if random() < probB:
scoreB +=1
else:
scoreA += 1
serving = "A"
# when there is a tie 10:10
else:
if serving == "A":
if random() < probA:
scoreA += 1
serving = "B"
else:
scoreB += 1
serving = "B"
else:
if random() < probB:
scoreB += 1
serving = "B"
else:
scoreA += 1
serving = "A"
return scoreA, scoreB
我剛纔編輯的代碼和要求,任何人都可以跟着它嗎? – nutship 2013-02-09 10:31:23