Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from random import shuffle
- from statistics import median
- a=[[1] * 5] + [[x]*4 for x in [2,3,-4,5,7,8,10,11,12,0]]
- b = [x for i in a for x in i]
- def get_card_or_shuffle(deck):
- if deck == []:
- deck = b[:]
- shuffle(deck)
- return deck.pop()
- def do_move(pos, card, deck):
- if card == 2:
- if pos == 2: return 0
- if pos > 2: return do_move(pos-2, get_card_or_shuffle(deck), deck)
- else: return do_move(pos, get_card_or_shuffle(deck), deck)
- if card == -4:
- return pos + 4
- if card == 10:
- if pos >= 10: return pos - 10
- else: return pos + 1
- else:
- if pos >= card: return pos - card
- else: return pos
- results = []
- didnt_finish = 0
- for i in range(100000):
- deck = []
- pos = 1
- turn = 0
- while pos > 0 and turn < 35:
- turn += 1
- card = get_card_or_shuffle(deck)
- pos = do_move(pos, card, deck)
- card = get_card_or_shuffle(deck) # Ryab
- discard = do_move(99, card, deck)
- card = get_card_or_shuffle(deck) # Malf
- discard = do_move(99, card, deck)
- card = get_card_or_shuffle(deck) # Dan
- discard = do_move(99, card, deck)
- if turn >= 35:
- didnt_finish += 1
- else:
- results.append(turn)
- print(sum(results)/len(results))
- print(median(results))
- print (len(results))
- print(didnt_finish)
- for i in range(10):
- print (i, len([x for x in results if x == i]))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement