for i in range(1, 50): # Do the banking first if stake < line_bet: # need more money stake += 100 atm += 100 if stake > 250: # deposit some of our winnings stake -= 100 atm -= 100 # play the line if stake > line_bet and g.is_button_off: if b.play_pass_line(line_bet): stake -= line_bet if debug: print "pass line bet %s" % line_bet if stake > line_odds and g.is_button_on() and b.pass_line_odds == 0: if b.play_pass_line_odds(line_odds): stake -= line_odds if debug: print "pass line odds %s" % line_odds have_place = b.have_place_bets() if stake > 27 and g.is_button_on() and not have_place: for i in [4, 5, 6, 8, 9, 10]: if i != 6 and i != 8 and i != g.current_point: b.place_the_number(i, 5) stake -= 5 if i != g.current_point and (i == 6 or i == 8): b.place_the_number(i, 6) stake -= 6 if debug: print "placing across, stake = %s" % stake
print "Across: pass line bet %s" % line_bet # play the line if stake2 > line_bet and game.is_button_off: if six_eight.play_pass_line(line_bet): stake2 -= line_bet if debug: print "6_8: pass line bet %s" % line_bet # play the line if stake3 > line_bet and game.is_button_off: if come.play_pass_line(line_bet): stake3 -= line_bet if debug: print "Come: pass line bet %s" % line_bet # play pass line odds if stake1 > line_odds and game.is_button_on() and across.pass_line_odds == 0: if across.play_pass_line_odds(line_odds): stake1 -= line_odds if debug: print "Across: pass line odds %s" % line_odds # play pass line odds if stake2 > line_odds and game.is_button_on() and six_eight.pass_line_odds == 0: if six_eight.play_pass_line_odds(line_odds): stake2 -= line_odds if debug: print "6_8: pass line odds %s" % line_odds # play pass line odds if stake3 > line_odds and game.is_button_on() and come.pass_line_odds == 0: if come.play_pass_line_odds(line_odds): stake3 -= line_odds if debug: print "Come: pass line odds %s" % line_odds
class TestBetting(unittest.TestCase): def setUp(self): self.betting = Betting(CrapsGame()) def testSimple(self): self.betting.play_pass_line(5) self.betting.game.roll_dice(d1_val=4, d2_val=3) self.assertTrue(self.betting.game.is_seven(), "msg") self.assertEqual(10, self.betting.check_winnings(), "msg") self.assertFalse(self.betting.play_come_bet(5), "msg") self.assertEqual(10, self.betting.check_winnings(), "msg") def testPassLine(self): self.betting.play_pass_line(5) self.betting.game.roll_dice(d1_val=4, d2_val=3) self.assertEqual(10, self.betting.check_winnings(), "got %s not 10" % self.betting.check_winnings()) self.betting.play_pass_line(5) self.betting.game.roll_dice(d1_val=4, d2_val=2) self.betting.play_pass_line_odds(10) self.betting.game.roll_dice(d1_val=4, d2_val=2) self.assertEqual(5 + 5 + 10 + 12, self.betting.check_winnings(), "32 != %s" % self.betting.check_winnings()) def testCraps(self): self.betting.play_pass_line(5) self.betting.game.roll_dice(d1_val=1, d2_val=2) self.assertTrue(self.betting.game.is_craps(), "msg") self.assertEqual(0, self.betting.check_winnings(), "msg") self.assertEqual(0, self.betting.pass_line_bet, "msg") def testPlaceBets(self): self.betting.play_pass_line(5) self.betting.game.roll_dice(d1_val=1, d2_val=5) self.betting.place_the_number(8, 6) self.betting.game.roll_dice(d1_val=5, d2_val=3) self.assertEqual(7, self.betting.check_winnings(), "msg") def testComeBets(self): self.betting.play_pass_line(5) self.betting.game.roll_dice(verbose=True, d1_val=1, d2_val=5) self.betting.play_pass_line_odds(10) self.betting.play_come_bet(5) self.betting.game.roll_dice(verbose=True, d1_val=2, d2_val=5) self.assertEqual(10, self.betting.check_winnings(), "msg") self.assertFalse(self.betting.play_come_bet(5), "msg") self.assertEqual(0, self.betting.num_come_bets(), "expecting 0 got %s" % self.betting.num_come_bets()) self.betting.game.roll_dice(verbose=True, d1_val=1, d2_val=5) self.assertEqual(0, self.betting.check_winnings(), "msg") self.assertTrue(self.betting.play_come_bet(5), "msg") self.betting.game.roll_dice(verbose=True, d1_val=1, d2_val=3) self.assertEqual(0, self.betting.check_winnings(), "msg") self.assertEqual(1, self.betting.num_come_bets(), "expected 1 got %s" % self.betting.num_come_bets()) self.assertTrue(self.betting.play_come_bet_odds(4, 10), "msg") self.betting.game.roll_dice(verbose=True, d1_val=2, d2_val=2) self.assertEqual(40, self.betting.check_winnings(verbose=True), "expected 40 got %s" % self.betting.check_winnings()) def testPlaceAndPass(self): self.betting.play_pass_line(5) self.betting.game.roll_dice(verbose=True, d1_val=1, d2_val=5) self.betting.check_winnings(verbose=True) self.betting.play_pass_line_odds(10) self.betting.place_the_number(4, 5) self.betting.place_the_number(5, 5) self.betting.place_the_number(8, 6) self.betting.place_the_number(9, 5) self.betting.place_the_number(10, 5) self.betting.game.roll_dice(verbose=True, d1_val=1, d2_val=4) self.betting.check_winnings(verbose=True) self.betting.game.roll_dice(verbose=True, d1_val=2, d2_val=4) self.assertEqual(32, self.betting.check_winnings(verbose=True), "got %s" % self.betting.check_winnings())