Advertisement
Guest User

Sorry Apollo

a guest
Feb 3rd, 2020
591
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.45 KB | None | 0 0
  1. from random import shuffle
  2. from statistics import median
  3.  
  4. a=[[1] * 5] + [[x]*4 for x in [2,3,-4,5,7,8,10,11,12,0]]
  5. b = [x for i in a for x in i]
  6.  
  7. def get_card_or_shuffle(deck):
  8.     if deck == []:
  9.         deck = b[:]
  10.         shuffle(deck)
  11.     return deck.pop()
  12.  
  13. def do_move(pos, card, deck):
  14.     if card == 2:
  15.         if pos == 2: return 0
  16.         if pos >  2: return do_move(pos-2, get_card_or_shuffle(deck), deck)
  17.         else: return do_move(pos, get_card_or_shuffle(deck), deck)
  18.     if card == -4:
  19.         return pos + 4
  20.     if card == 10:
  21.         if pos >= 10: return pos - 10
  22.         else: return pos + 1
  23.     else:
  24.         if pos >= card: return pos - card
  25.         else: return pos
  26.  
  27. results = []
  28. didnt_finish = 0
  29. for i in range(100000):
  30.     deck = []
  31.     pos = 1
  32.     turn = 0
  33.     while pos > 0 and turn < 35:
  34.         turn += 1
  35.         card = get_card_or_shuffle(deck)
  36.         pos = do_move(pos, card, deck)
  37.         card = get_card_or_shuffle(deck) # Ryab
  38.         discard = do_move(99, card, deck)
  39.         card = get_card_or_shuffle(deck) # Malf
  40.         discard = do_move(99, card, deck)
  41.         card = get_card_or_shuffle(deck) # Dan
  42.         discard = do_move(99, card, deck)
  43.     if turn >= 35:
  44.         didnt_finish += 1
  45.     else:
  46.         results.append(turn)
  47. print(sum(results)/len(results))
  48. print(median(results))
  49. print (len(results))
  50. print(didnt_finish)
  51. for i in range(10):
  52.     print (i, len([x for x in results if x == i]))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement