Мне было интересно, был ли кто-нибудь, кто хотел бы помочь мне, когда дело дошло до этой программы. Предыстория заключается в создании карточной игры, в которой, когда вы берете 6 случайных карт, если одна карта является тузом, игрок выигрывает доллар, если не теряет доллар. Это продолжается до тех пор, пока игрок не удвоит свои деньги или не потеряет их все. Игра запускается 1000 раз и начинается с начальных 10 долларов. Вот мой код:
import random
faceValues = ['ace', '2', '3', '4', '5', '6',
'7', '8', '9', '10', 'jack',
'queen', 'king']
suits = ['clubs', 'diamonds', 'hearts',
'spades']
def shuffledDeck():
deck = []
for faceValue in faceValues:
for suit in suits:
deck.append(faceValue + ' of ' + suit)
random.shuffle(deck)
return deck
def faceValueOf(card):
return card.split()[0]
def suitOf(card):
return card.split()[2]
d = shuffledDeck()
def game(initial):
counts = 0
bankroll = initial
while 0 < bankroll < 2*initial:
ace = 0
table = random.sample(shuffledDeck(),6)
counts += 1
for cards in table:
if faceValueOf (cards) == 'ace':
ace += 1
if ace >= 1:
bankroll += 1
else:
bankroll -= 1
return counts
initial = float(input('Enter initials: '))
totalcounts = 0
for x in range(1000):
totalcounts += game(initial)
print('Average number of rounds: ', totalcounts/1000)
Мне было интересно, как я смогу изменить эту программу, поэтому вместо использования random.sample я мог бы использовать random.shuffle. Я пытался изменить эту программу многими способами, но всякий раз, когда я это делаю, мои конечные результаты не совпадают. Я просто пытаюсь изменить раздел, где я должен брать карты. При запуске этой программы, начиная с начальных 10, ответом является округление от 45 до 50 с точки зрения сыгранных раундов. Изменить: Пытаясь сохранить программу относительно того же, только хочу изменить то, что мне действительно нужно.