fork download
  1. from pprint import pprint
  2. from typing import NamedTuple
  3. import itertools
  4.  
  5. class Category(NamedTuple):
  6. symbols: list
  7. ratio: int
  8. payout: int
  9.  
  10. categories = [
  11. Category("♦️ ♠️ ♥️ ♣️".split(), 4, 2),
  12. Category("⚧ 🔞 ⚛️ ☢️".split(), 3, 3),
  13. Category("✡️ ⚔️".split(), 2, 5),
  14. Category("🐱".split(), 1, 100),
  15. ]
  16.  
  17. symbols = [s for c in categories for s in c.symbols for _ in range(c.ratio)]
  18. payouts = {s: c.payout for c in categories for s in c.symbols}
  19.  
  20. def payout(s1, s2, s3):
  21. if s1 == s2 == s3:
  22. return payouts[s1] - 1 # the code doesn't explicitly refund the bet
  23. if s1 == s2 or s1 == s3 or s2 == s3 or "🐱" in (s1, s2, s3):
  24. return 1
  25. return 0
  26.  
  27. print(sum(payout(*sss) for sss in itertools.product(symbols,symbols,symbols)) / len(symbols)**3)
  28.  
Success #stdin #stdout 0.04s 9772KB
stdin
Standard input is empty
stdout
0.3626067840943874