Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- import sys, random
- # finds the highest occuring roll (should almost always be 7)
- def common_roll(history):
- highest = (0,0)
- for k in history:
- if history[k] > highest[1]:
- highest = (k, history[k])
- return highest
- def roll(history):
- r = random.randint(1, 6) + random.randint(1, 6)
- if r not in history:
- history[r] = 0
- history[r] += 1
- return r
- def craps(history, num):
- wins = 0
- losses = 0
- rolls = []
- for x in xrange(num):
- point = 0
- r = roll(history)
- n_rolls = 1
- if r in (2, 3, 12):
- losses += 1
- elif r in (7, 11):
- wins += 1
- else:
- point = r
- r = roll(history)
- n_rolls += 1
- while r not in (point, 7):
- r = roll(history)
- n_rolls += 1
- if r == point:
- wins += 1
- elif r == 7:
- losses += 1
- rolls.append(n_rolls)
- return (wins, losses), rolls
- if __name__ == '__main__':
- n = int(sys.argv[1])
- history = {}
- wl, rolls = craps(history,n)
- print 'Most common roll (roll, occurances): %d: %d' % common_roll(history)
- print 'Average winning percentage: {}%'.format(float(wl[0]) / n * 100)
- print 'Average number of rolls in a game: {}'.format(
- sum(rolls) / float(len(rolls)))
- print 'Maximum rolls: {}'.format(max(rolls))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement