Advertisement
Guest User

Untitled

a guest
Nov 24th, 2014
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.53 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2. from random import randint
  3.  
  4. # Globaalne muutujad
  5. drawn_cards = []
  6. deck = []
  7. hand = []
  8. pc_hand = []
  9.  
  10. # Mängu ehitamine funktsioonidega
  11. def create_pack():
  12.     all_cards = []
  13.     picture_cards = ["J", "Q", "K", "A"]
  14.     card_suits = ["♣", "♠", "♥", "♦"]
  15.    
  16.     for i in range(2, 11):
  17.         all_cards.append(i)
  18.        
  19.     for i in picture_cards:
  20.         all_cards.append(i)
  21.        
  22.    
  23.     for card in all_cards:
  24.         for suit in card_suits:
  25.             correct_card = "%s%s" % (suit, card)
  26.             deck.append(correct_card)    
  27.    
  28. def draw_card():
  29.     while(1):
  30.         draw = randint(0, len(deck) - 1)
  31.         if(draw not in drawn_cards):
  32.             break
  33.     drawn_cards.append(draw)
  34.     return draw
  35.  
  36. def dealer_decides():
  37.     value = hand_to_value(hand)
  38.     print value
  39.     while value < 22:
  40.         if value == 21:
  41.             print "Blackjack!"
  42.             computer_plays(value)
  43.             return
  44.         elif value < 21:
  45.             decide = raw_input("New card?")
  46.             if decide.lower() == 'y' or decide.lower() == 'yes':
  47.                 new_nr = draw_card()
  48.                 new_card = deck[new_nr]
  49.                 hand.append(new_card)
  50.                 value = hand_to_value(hand)
  51.                 print hand
  52.                 print value
  53.             elif decide.lower() == 'n' or decide.lower() == 'no':
  54.                 print "Passing turn - %d" % value
  55.                 print computer_plays(value)
  56.                 return
  57.             else:
  58.                 print "Didn't understand anything"
  59.                 return
  60.     return "Bust!"
  61.  
  62. def computer_plays(my_score):
  63.     value = hand_to_value(pc_hand)
  64.     upper_limit = 17
  65.     while value < upper_limit:
  66.         new_card = deck[draw_card()]
  67.         pc_hand.append(new_card)
  68.         value = hand_to_value(pc_hand)
  69.     print "Computer scored - %d" % value
  70.     if value == 21 and not my_score == 21:
  71.         return "PC wins! Blackjack"
  72.     if value < 21 and my_score < value:
  73.         return "PC wins! Higher score"
  74.     if value < 21 and my_score > value:
  75.         return "Player wins! Higher score"
  76.     if value < 21 and my_score == value:
  77.         return "It's a tie. Both are losers"
  78.     if value > 21 and my_score > 21:
  79.         return "Both lose. Bust!"
  80.     if value > 21 and my_score < 21:
  81.         return "Player wins! Computer bust!"
  82.    
  83.  
  84. def hand_to_value(card_hand):
  85.     # Teeb kaartidest käe arvulise väärtuse
  86.     value = []
  87.     picture_cards = ["J", "Q", "K", "A"]
  88.     for kaart in card_hand:
  89.         #print "%s - %d" % (kaart, len(kaart))
  90.         if len(kaart) == 5:
  91.             value.append(10)
  92.         elif kaart[-1] == "A":
  93.             value.append(11)
  94.         elif kaart[-1] in picture_cards:    
  95.             value.append(10)
  96.         elif int(kaart[-1]) in range(2, 11):
  97.             value.append(int(kaart[-1]))  
  98.    
  99.     sum = change_aces(value)
  100.     return sum
  101.  
  102. def change_aces(value):
  103.     aces = value.count(11)
  104.     t = sum(value)
  105.     if t > 21 and aces > 0:
  106.         while aces > 0 and t > 21:
  107.             t -= 10
  108.             aces -= 1
  109.     return t
  110.  
  111. # Loome mänguks vajaliku
  112. create_pack()
  113. # Mängija kaardid
  114. card1 = deck[draw_card()]
  115. card2 = deck[draw_card()]
  116. hand.append(card1)
  117. hand.append(card2)
  118. # Arvuti kaardid
  119. pc_card1 = deck[draw_card()]
  120. pc_card2 = deck[draw_card()]
  121. pc_hand.append(pc_card1)
  122. pc_hand.append(pc_card2)
  123.  
  124. print "My hand - %s | %s " % (card1, card2)
  125. print "PC hand - %s | %s " % (pc_card1, pc_card2)
  126.  
  127. # Käivitame mängu
  128. print dealer_decides()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement