gpt4 book ai didi

Python 逻辑 Black Jack sim

转载 作者:行者123 更新时间:2023-12-01 03:19:29 25 4
gpt4 key购买 nike

我不知道我哪里做错了,但打印总是可能胜利 100%

import random

设置牌组并查看单场比赛的分数

def singleGame():
cardsVal = [11, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10] # deck of cards
onhandScore = 17 # score on hand
cardNumber = pickOneCard()
newCardValue = cardsVal[cardNumber - 1]
onhandScore = onhandScore + newCardValue

检查是否获胜、失败或平局

if onhandScore > 21:
result = 1
elif onhandScore == 21:
result = 0
else:
result = -1

return result

从 13 张牌中选择一张并返回其牌号

def pickOneCard():
return random.randint(1, 13)

检查 n 次模拟并打印结果

def multipleGames(n):

记录分数

defeat = 0;
certainVictory = 0;
likelyVictory = 0;

一一模拟n场比赛

for i in range(n):
result = singleGame()

检查分数并存储值

if result == 1:
defeat += 1
elif result == 0:
certainVictory += 1
else:
likelyVictory += 1

计算总百分比

totalPer = (defeat + certainVictory + likelyVictory)
defeatPer = float("{0:.2f}".format(defeat * 100/ totalPer))
certainVictoryPer = float("{0:.2f}".format(certainVictory * 100/ totalPer))
likelyVictoryPer = 100 - defeatPer - certainVictoryPer

打印结果

print 'Defeats: ',defeatPer,'%'
print 'Certain victories: ',certainVictoryPer,'%'
print 'Likely victories: ',likelyVictoryPer,'%'

100,000 个游戏的模拟代码

multipleGames(100000)

最佳答案

检查您的缩进以检查胜利、失败或平局。您的 return 语句应该位于 if 语句之外,如下所示。

if onhandScore > 21:
result = 1
elif onhandScore == 21:
result = 0
else:
result = -1

return result

因此,只有在到达 else 情况时才会返回整数值。否则,该函数默认返回 None。现在,当我们到达这里时。

if result == 1:
defeat += 1
elif result == 0:
certainVictory += 1
else:
likelyVictory += 1

None 不等于 10,因此它到达 else,并且当它到达 >return -1 这也为 likelyVictory 添加了 1。

关于Python 逻辑 Black Jack sim,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42047868/

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