【发布时间】:2017-02-05 10:54:20
【问题描述】:
我不知道我在哪里做错了,但打印总是 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)
【问题讨论】:
标签: python