Пример #1
0
def experi(d1,p1,p2,pm,number_of_deck):
    deck_on_table = deck.Deck(number_of_deck)
    deck_on_table.set_deck()
    dealer = deck.Player("Dealer",0)
    player = deck.Player("Player 1",100)

    # previous setting
    dealer.take(d1)
    player.take(p1)
    player.take(p2)
    deck_on_table.remove_from_deck(d1)
    deck_on_table.remove_from_deck(p1)
    deck_on_table.remove_from_deck(p2)

    # deal new card to dealer
    dealer.take(deck_on_table.deal())
    dealer.set_value_by_computing()
    player.set_value_by_computing()
    dealer_next_move = ds.dealer_soft_strategy(dealer)

    # run
    if pm=='H':
        # player has soft 17 strategy
        kk = 'H'
        while(kk=='H'):
            player.take(deck_on_table.deal())
            player.set_value_by_computing()
            kk = ds.dealer_soft_strategy(player)
    # double
    if pm=='D':
        player.take(deck_on_table.deal())
        player.set_value_by_computing()
        
    while(dealer_next_move=='H'):
        temp2 = deck_on_table.deal()
        dealer.take(temp2)
        dealer.set_value_by_computing()
        dealer_next_move = ds.dealer_soft_strategy(dealer)

    # determine winner
    if player.get_value()>21:
        #print "Dealer win!"
        return 2
    elif dealer.get_value()>21:
        #print "You win!"
        return 0
    else:
        if dealer.get_value()>player.get_value():
            #print "Dealer win!"
            return 2
        elif dealer.get_value()==player.get_value():
            #print "Draw!"
            return 1
        else:
            #print "You win!"
            return 0
Пример #2
0
def run(deck_in_table, dealer, player, b):
    ter = 0
    # first two rounds
    r = 1
    dealer.set_value_by_computing()
    for i in range(len(player)):
        player[i].set_value_by_computing()
    while (True):
        if r > 2:
            break
        if r == 2:
            temp = dealer.get_value()
            dealer.take(deck_in_table.deal())
            # dealer's next move
            #dealer_next_move = dealer(temp,d.getlastcard())
            dealer.set_value_by_computing()
            dealer_next_move = ds.dealer_soft_strategy(dealer)
        else:
            dealer.take(deck_in_table.deal())
            #d.take(['Club','A'])
        for i in range(len(player)):
            player[i].take(deck_in_table.deal())
            player[i].set_value_by_computing()
        #next_move = dealer2(p[0])
        r = r + 1

    # black jack!
    if dealer.get_value() == 21 or player[0].get_value() == 21:
        ter = 1

    # adeck_in_tableitional rounds
    # double checker
    is_double = 0
    while (ter == 0):
        #show both cards
        dealer.show_cards(1)
        for i in range(len(player)):
            print("")
            player[i].show_cards(0)

        # determine next moves
        next_move = input("Your moves?")
        if next_move == 'H':
            player[0].next_move(deck_in_table.deal())
            player[0].set_value_by_computing()
            #next_move = dealer2(p[0])
            '''if dealer_next_move=='H':
                temp2 = deck_in_table.deal()
                #dealer_next_move = dealer(d.value(),temp2[1])
                d.take(temp2)
                d.set_value_by_computing()
                dealer_next_move = dealer2(d)'''
            if player[0].get_value() > 21 or dealer.get_value() > 21:
                break
        # when player stay
        elif next_move == 'S':
            while (dealer_next_move == 'H'):
                temp2 = deck_in_table.deal()
                #dealer_next_move = dealer(d.value(),temp2[1])
                dealer.take(temp2)
                dealer.set_value_by_computing()
                dealer_next_move = ds.dealer_soft_strategy(dealer)
            break
        # when player double
        else:
            is_double = 1
            player[0].next_move(deck_in_table.deal())
            player[0].set_value_by_computing()
            if player[0].get_value() > 21:
                break
            while (dealer_next_move == 'H'):
                temp2 = deck_in_table.deal()
                dealer.take(temp2)
                dealer.set_value_by_computing()
                dealer_next_move = ds.dealer_soft_strategy(dealer)
            break

    dealer.show_cards(0)
    for i in range(len(player)):
        print("")
        player[i].show_cards(0)
    print("Dealer got " + str(dealer.get_value()) + ", and you got " +
          str(player[0].get_value()) + ".")
    if player[0].get_value() > 21:
        print("Dealer win!")
        player[0].add_money(-b)
        if is_double == 1:
            player[0].add_money(-b)
    elif dealer.get_value() > 21:
        print("You win!")
        player[0].add_money(b)
        if is_double == 1:
            player[0].add_money(b)
    else:
        if dealer.get_value() > player[0].get_value():
            print("Dealer win!")
            player[0].add_money(-b)
            if is_double == 1:
                player[0].add_money(-b)
        elif dealer.get_value() == player[0].get_value():
            print("Draw!")
        else:
            print("You win!")
            player[0].add_money(b)
            if is_double == 1:
                player[0].add_money(b)
    for i in range(len(player)):
        player[i].clear_cards()
    dealer.clear_cards()
Пример #3
0
def run(deck_in_table,dealer,player,b):
    ter = 0
    # first two rounds
    r = 1
    dealer.set_value_by_computing()
    for i in range(len(player)):
        player[i].set_value_by_computing()
    while(True):
        if r>2:
            break
        if r==2:
            temp = dealer.get_value()
            dealer.take(deck_in_table.deal())
            # dealer's next move
            #dealer_next_move = dealer(temp,d.getlastcard())
            dealer.set_value_by_computing()
            dealer_next_move = ds.dealer_soft_strategy(dealer)
        else:
            dealer.take(deck_in_table.deal())
            #d.take(['Club','A'])
        for i in range(len(player)):
            player[i].take(deck_in_table.deal())
            player[i].set_value_by_computing()
        #next_move = dealer2(p[0])
        r=r+1

    # black jack!
    if dealer.get_value()==21 or player[0].get_value()==21:
        ter = 1

    # adeck_in_tableitional rounds
    # double checker
    is_double = 0
    while(ter==0):
        #show both cards
        dealer.show_cards(1)
        for i in range(len(player)):
            print("")
            player[i].show_cards(0)

        # determine next moves
        next_move = input("Your moves?")
        if next_move=='H':
            player[0].next_move(deck_in_table.deal())
            player[0].set_value_by_computing()
            #next_move = dealer2(p[0])
            '''if dealer_next_move=='H':
                temp2 = deck_in_table.deal()
                #dealer_next_move = dealer(d.value(),temp2[1])
                d.take(temp2)
                d.set_value_by_computing()
                dealer_next_move = dealer2(d)'''
            if player[0].get_value()>21 or dealer.get_value()>21:
                break
        # when player stay
        elif next_move=='S':
            while(dealer_next_move=='H'):
                temp2 = deck_in_table.deal()
                #dealer_next_move = dealer(d.value(),temp2[1])
                dealer.take(temp2)
                dealer.set_value_by_computing()
                dealer_next_move = ds.dealer_soft_strategy(dealer)
            break
        # when player double
        else:
            is_double = 1
            player[0].next_move(deck_in_table.deal())
            player[0].set_value_by_computing()
            if player[0].get_value()>21:
                break
            while(dealer_next_move=='H'):
                temp2 = deck_in_table.deal()
                dealer.take(temp2)
                dealer.set_value_by_computing()
                dealer_next_move = ds.dealer_soft_strategy(dealer)
            break

    dealer.show_cards(0)
    for i in range(len(player)):
        print("")
        player[i].show_cards(0)
    print("Dealer got " + str(dealer.get_value()) + ", and you got " + str(player[0].get_value()) + ".")
    if player[0].get_value()>21:
        print("Dealer win!")
        player[0].add_money(-b)
        if is_double==1:
            player[0].add_money(-b)
    elif dealer.get_value()>21:
        print("You win!")
        player[0].add_money(b)
        if is_double==1:
            player[0].add_money(b)
    else:
        if dealer.get_value()>player[0].get_value():
            print("Dealer win!")
            player[0].add_money(-b)
            if is_double==1:
                player[0].add_money(-b)
        elif dealer.get_value()==player[0].get_value():
            print("Draw!")
        else:
            print("You win!")
            player[0].add_money(b)
            if is_double==1:
                player[0].add_money(b)
    for i in range(len(player)):
        player[i].clear_cards()
    dealer.clear_cards()