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
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()
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()