• API
• FAQ
• Tools
• Archive
SHARE
TWEET

# Untitled

a guest Jun 4th, 2018 82 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
1. import random
2.
3. def gen_strategies(): #format of strategy is a 12 digit string, interpreted as each 4 digit string is for card 1,2,3.
4.                       #First 2 digits are for first player, first and second decision, next 2 are for second player, decision in case of bet then in case of check by first player
5.                       #1 is bet/call, 0 is fold. total of 1728 options.
6.                       #remember that strings are 0-indexed
7.     cardstrats=['1000','1001','1010','1011','0000','0001','0010','0011','0100','0101','0110','0111']
8.     strategies=[]
9.     for first in cardstrats:
10.         for second in cardstrats:
11.             for third in cardstrats:
12.                 strategies.append(first+second+third)
13.     return strategies
14.
15. debug=True
16. debug=False
17. def run_game(i,j):
18.     a,b=0,0
19.     for game in range(0,50):
20.         acard=random.randint(1,3)
21.         bcard=random.randint(1,3)
22.         while (acard==bcard):
23.             bcard=random.randint(1,3)
24.         if debug:
25.             print 'strategies: first: ',i,' second: ',j
26.             print 'cards ',acard,bcard
27.         if i[acard*4-4]=='1': #first player bets
28.             if j[bcard*4-2]=='1': #second player calls bet
29.                 if acard>bcard: #a wins 2, b loses 2
30.                     if debug:
31.                         print "both bet, a wins 2, b loses 2"
32.                     a+=2
33.                     b-=2
34.                     continue
35.                 if bcard>acard: #b wins 2, a loses 2
36.                     if debug:
37.                         print "both bet, b wins 2, a loses 2"
38.                     b+=2
39.                     a-=2
40.                     continue
41.             else: #second player folds, a wins 1, b loses 1
42.                 if debug:
43.                     print "second player folds, a wins 1, b loses 1"
44.                 a+=1
45.                 b-=1
46.                 continue
47.         else: #first player checks
48.             if j[bcard*4-1]=='1': #second player bets
49.                 if i[acard*4-3]=='1': # first player calls
50.                     if acard>bcard: #a wins 2, b loses 2
51.                         if debug:
52.                             print "both bet after a checks, a wins 2, b loses 2"
53.                         a+=2
54.                         b-=2
55.                         continue
56.                     if bcard>acard: #b wins 2, a loses 2
57.                         if debug:
58.                             print "both bet after a checks, b wins 2, a loses 2"
59.                         b+=2
60.                         a-=2
61.                         continue
62.                 else: #first player folds, b wins 1, a loses 1
63.                     if debug:
64.                         print "first player folds, b wins 1, a loses 1"
65.                     b+=1
66.                     a-=1
67.             else: #second player checks
68.                 if acard>bcard: #a wins 1, b loses 1
69.                     if debug:
70.                         print "both check, a wins 1, b loses 1"
71.                     a+=1
72.                     b-=1
73.                     continue
74.                 if bcard>acard: #b wins 1, a loses 1
75.                     if debug:
76.                         print "both check, a loses 1, b wins 1"
77.                     b+=1
78.                     a-=1
79.                     continue
80.
81.     return (a,b)
82. strategies=gen_strategies()
83. results=[[s,0] for s in strategies]
84.
85. for (num,i) in enumerate(results):
86.     print num
87.     for j in results:
88.         (a,b)=run_game(i[0],j[0])
89.         i[1]+=a
90.         j[1]+=b
91.
92. for i in results:
93.     print i
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy.
Not a member of Pastebin yet?