Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- from random import randint
- # Globaalne muutujad
- drawn_cards = []
- deck = []
- hand = []
- pc_hand = []
- # Mängu ehitamine funktsioonidega
- def create_pack():
- all_cards = []
- picture_cards = ["J", "Q", "K", "A"]
- card_suits = ["♣", "♠", "♥", "♦"]
- for i in range(2, 11):
- all_cards.append(i)
- for i in picture_cards:
- all_cards.append(i)
- for card in all_cards:
- for suit in card_suits:
- correct_card = "%s%s" % (suit, card)
- deck.append(correct_card)
- def draw_card():
- while(1):
- draw = randint(0, len(deck) - 1)
- if(draw not in drawn_cards):
- break
- drawn_cards.append(draw)
- return draw
- def dealer_decides():
- value = hand_to_value(hand)
- print value
- while value < 22:
- if value == 21:
- print "Blackjack!"
- computer_plays(value)
- return
- elif value < 21:
- decide = raw_input("New card?")
- if decide.lower() == 'y' or decide.lower() == 'yes':
- new_nr = draw_card()
- new_card = deck[new_nr]
- hand.append(new_card)
- value = hand_to_value(hand)
- print hand
- print value
- elif decide.lower() == 'n' or decide.lower() == 'no':
- print "Passing turn - %d" % value
- print computer_plays(value)
- return
- else:
- print "Didn't understand anything"
- return
- return "Bust!"
- def computer_plays(my_score):
- value = hand_to_value(pc_hand)
- upper_limit = 17
- while value < upper_limit:
- new_card = deck[draw_card()]
- pc_hand.append(new_card)
- value = hand_to_value(pc_hand)
- print "Computer scored - %d" % value
- if value == 21 and not my_score == 21:
- return "PC wins! Blackjack"
- if value < 21 and my_score < value:
- return "PC wins! Higher score"
- if value < 21 and my_score > value:
- return "Player wins! Higher score"
- if value < 21 and my_score == value:
- return "It's a tie. Both are losers"
- if value > 21 and my_score > 21:
- return "Both lose. Bust!"
- if value > 21 and my_score < 21:
- return "Player wins! Computer bust!"
- def hand_to_value(card_hand):
- # Teeb kaartidest käe arvulise väärtuse
- value = []
- picture_cards = ["J", "Q", "K", "A"]
- for kaart in card_hand:
- #print "%s - %d" % (kaart, len(kaart))
- if len(kaart) == 5:
- value.append(10)
- elif kaart[-1] == "A":
- value.append(11)
- elif kaart[-1] in picture_cards:
- value.append(10)
- elif int(kaart[-1]) in range(2, 11):
- value.append(int(kaart[-1]))
- sum = change_aces(value)
- return sum
- def change_aces(value):
- aces = value.count(11)
- t = sum(value)
- if t > 21 and aces > 0:
- while aces > 0 and t > 21:
- t -= 10
- aces -= 1
- return t
- # Loome mänguks vajaliku
- create_pack()
- # Mängija kaardid
- card1 = deck[draw_card()]
- card2 = deck[draw_card()]
- hand.append(card1)
- hand.append(card2)
- # Arvuti kaardid
- pc_card1 = deck[draw_card()]
- pc_card2 = deck[draw_card()]
- pc_hand.append(pc_card1)
- pc_hand.append(pc_card2)
- print "My hand - %s | %s " % (card1, card2)
- print "PC hand - %s | %s " % (pc_card1, pc_card2)
- # Käivitame mängu
- print dealer_decides()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement