Exemple #1
0
def test_mapping():
    outcome1 = Outcome("red", 1)
    outcome2 = Outcome("black", 2)
    rng = NonRandom()
    wheel = Wheel(rng)

    wheel.addOutcome(1, outcome1)
    wheel.addOutcome(2, outcome2)
    wheel.addOutcome(4, outcome2)
    out = wheel.getOutcome("red")
    assert out == outcome1

    out = wheel.getOutcome("black")
    assert out == outcome2
Exemple #2
0
    def getOutcome(self, outcome_name):
        """Query a constructed wheel for getting outcome."""

        # create Whell
        wheel = Wheel()

        return wheel.getOutcome(outcome_name)
Exemple #3
0
def test_placeBets():
    table_limit = 1000
    table = Table(table_limit)
    rng = NonRandom()
    wheel = Wheel(rng)
    binbuilder = BinBuilder(wheel)
    binbuilder.straightBets()
    outcome = wheel.getOutcome("1")
    amount = 500
    bet = Bet(amount, outcome)
    invalid = True
    try:
        table.placeBet(bet)
        invalid = False
    except InvalidBet:
        print "bet not valid"
        invalid = True

    assert table.bets[0] == bet
    assert len(table.bets) == 1
    assert invalid is False

    amount = 300
    bet = Bet(amount, outcome)
    invalid = True
    try:
        table.placeBet(bet)
        invalid = False
    except InvalidBet:
        print "bet not valid"
        invalid = True

    assert table.bets[1] == bet
    assert len(table.bets) == 2
    assert invalid is False

    amount = 900
    bet = Bet(amount, outcome)
    invalid = True
    try:
        table.placeBet(bet)
        invalid = False
    except InvalidBet:
        print "bet not valid"
        invalid = True

    assert len(table.bets) == 2
    assert invalid is True
Exemple #4
0
def test_win_loseAmount():

    rng = NonRandom()
    wheel = Wheel(rng)
    binbuilder = BinBuilder(wheel)
    binbuilder.straightBets()
    outcome = wheel.getOutcome("1")
    amount = 500
    bet = Bet(amount, outcome)

    for i in range(0, 38):
        wheel.rng.setSeed(i)
        returned_bin = wheel.next()
        returned_outcomes = returned_bin.outcomes
        if outcome in returned_outcomes:
            assert bet.winAmount() == 500 + 500 * outcome.odds
        else:
            assert bet.loseAmount() == 500
Exemple #5
0
    players = []
    player_stakes = 1000
    for i in xrange(int(num_of_players)):
        player_name = raw_input("> Name for player%d: " % (i+1))
        player = Player(table, player_name, player_stakes)
        players.append(player)

    bets = []
    while num_of_players > 0:
        for p in num_of_players:
            outcome_name  = raw_input("> bet for %s: " % (players[i].name))
            amount = int(raw_input("> amount: "))
            while amount > players[i].stakes:
                print "not enough money left. Remaining stakes: %d" % players[i].stakes
                amount = raw_input("> amount: ")
            outcome = wheel.getOutcome(outcome_name)
            try:
                players[i].placeBets(amount, outcome)
            except InvalidBet:
                print "invalid bet"

        game.cycle(players[0])
        print "Remaining stakes: %d" % players[i].stakes
        more = raw_input("> want to play more(y/n)?:")
        if "y" in more:
            pass
        else:
            num_of_players = 0
    print "Thank you! have a good day!"

Exemple #6
0
class WheelConstructionTestCase(unittest.TestCase):
    def setUp(self):

        # create outcomes
        self.outcome_5 = Outcome("00-0-1-2-3", 6)
        self.outcome_0 = Outcome("0", 35)
        self.outcome_00 = Outcome("00", 35)

        # create wheel and bin builder
        self.wheel = Wheel()
        self.bin_builder = BinBuilder()

    def test_add_outcome(self):

        # Bin 0 outcomes
        self.wheel.add_outcome(0, self.outcome_0)
        self.wheel.add_outcome(0, self.outcome_5)

        # Bin 00 outcomes
        self.wheel.add_outcome(37, self.outcome_00)
        self.wheel.add_outcome(37, self.outcome_5)

        # assert Bin 0 outcomes
        self.assertIn(self.outcome_0, self.wheel.get(0))
        self.assertIn(self.outcome_5, self.wheel.get(0))

        # assert Bin 00 outcomes
        self.assertIn(self.outcome_00, self.wheel.get(37))
        self.assertIn(self.outcome_5, self.wheel.get(37))

    def test_bin_building(self):

        # build bins for the wheel
        self.bin_builder.buildBins(self.wheel)

        sample_bin1 = [
            Outcome("Street 1-2-3", RoulettePayout.StreetBet),
            Outcome("Number 1", RoulettePayout.StraightBet),
            Outcome("Line 1-2-3-4-5-6", RoulettePayout.LineBet),
            Outcome("Low", RoulettePayout.EvenBet),
            Outcome("Odd", RoulettePayout.EvenBet),
            Outcome("Red", RoulettePayout.EvenBet),
            Outcome("Corner 1-2-4-5", RoulettePayout.CornerBet),
            Outcome("Dozen 1", RoulettePayout.DozenBet),
            Outcome("Column 1", RoulettePayout.ColumnBet),
            Outcome("Split 1-2", RoulettePayout.SplitBet),
            Outcome("Split 1-4", RoulettePayout.SplitBet),
            Outcome("00-0-1-2-3", RoulettePayout.FiveBet)
        ]

        sample_bin2 = [
            Outcome("Number 00", RoulettePayout.StraightBet),
            Outcome("00-0-1-2-3", RoulettePayout.FiveBet)
        ]

        # check number of outcomes to be equal
        self.assertEqual(len(sample_bin1), len(self.wheel.get(1)))
        self.assertEqual(len(sample_bin2), len(self.wheel.get(37)))

        # check outcomes to be in the bin 1
        for outcome in sample_bin1:
            self.assertIn(outcome, self.wheel.get(1))

        # check outcomes to be in the bin 00
        for outcome in sample_bin2:
            self.assertIn(outcome, self.wheel.get(37))

    def test_outcome_mapping(self):

        # add outcomes to wheel
        self.wheel.add_outcome(0, self.outcome_0)
        self.wheel.add_outcome(37, self.outcome_00)
        self.wheel.add_outcome(3, self.outcome_5)

        # check that they are mapped
        self.assertEqual(self.wheel.getOutcome(self.outcome_0.getName()),
                         self.outcome_0)
        self.assertEqual(self.wheel.getOutcome(self.outcome_00.getName()),
                         self.outcome_00)
        self.assertEqual(self.wheel.getOutcome(self.outcome_5.getName()),
                         self.outcome_5)
    def _getOutcome(self, outcome_name):

        # create Whell
        wheel = Wheel()

        return wheel.getOutcome(outcome_name)