Guest User

Untitled

a guest
Nov 23rd, 2018
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.35 KB | None | 0 0
  1. import random, time
  2.  
  3. def main():
  4.    
  5.     card_to_value = {2:2, 3:3, 4:4, 5:5, 6:6, 7:7, 8:8, 9:9, 10:10, 'J':11, 'Q':12, 'K':13, 'A':14}
  6.     #Create a deck of cards
  7.     cards = [x for x in range(2,15)] * 4
  8.     cards = ['A' if x == 14 else 'K' if x == 13 else 'Q' if x == 12 else 'J' if x == 11 else x for x in cards]
  9.    
  10.     #Shuffle the cards and deal
  11.     random.shuffle(cards)
  12.     player_1_cards = cards[::2]
  13.     player_2_cards = cards[1::2]
  14.    
  15.     assert len(player_1_cards) == len(player_2_cards)
  16.    
  17.     rounds = 0
  18.     #Play War with a loop
  19.     while len(player_1_cards) > 0 and len(player_2_cards) > 0:
  20.        
  21.         rounds += 1
  22.         print("\nPlayer 1: "),
  23.         card1 = player_1_cards.pop(0)
  24.         print(card1)
  25.         print("Player 2: "),
  26.         card2 = player_2_cards.pop(0)
  27.         print(card2)
  28.        
  29.         if card_to_value[card1] > card_to_value[card2]:
  30.             print("Player 1 wins")
  31.             player_1_cards.extend([card1, card2])
  32.            
  33.         elif card_to_value[card2] > card_to_value[card1]:
  34.             print("Player 2 wins")
  35.             player_2_cards.extend([card2, card1])
  36.    
  37.         else:
  38.             print("Tie! We go to war!")
  39.             face_down_1 = [card1]
  40.             face_down_2 = [card2]
  41.            
  42.             while card_to_value[card1] == card_to_value[card2]:
  43.                 if len(player_1_cards) < 4:
  44.                     face_down_1.extend(player_1_cards)
  45.                     player_2_cards.extend(face_down_2 + face_down_1 + player_1_cards)
  46.                     player_1_cards.clear()
  47.                     break
  48.                 elif len(player_2_cards) < 4:
  49.                     player_1_cards.extend(face_down_1 + face_down_2 + player_2_cards)
  50.                     player_2_cards.clear()
  51.                     break
  52.                
  53.                 print("\nPlayer 1 3 cards face down")
  54.                 print("Player 2 3 cards face down")
  55.                 for i in range(3):
  56.                     face_down_1.append(player_1_cards.pop(0))
  57.                     face_down_2.append(player_2_cards.pop(0))
  58.            
  59.                 print("War Card Player 1: "),
  60.                 card1 = player_1_cards.pop(0)
  61.                 face_down_1.append(card1)
  62.                 print(card1)
  63.                 print("War Card Player 2: "),
  64.                 card2 = player_2_cards.pop(0)
  65.                 face_down_2.append(card2)
  66.                 print(card2)
  67.                
  68.                 if card_to_value[card1] > card_to_value[card2]:
  69.                     print("Player 1 wins")
  70.                     player_1_cards.extend(face_down_1 + face_down_2)
  71.                 elif card_to_value[card2] > card_to_value[card1]:
  72.                     print("Player 2 wins")
  73.                     player_2_cards.extend(face_down_2 + face_down_1)
  74.                
  75.                 time.sleep(5)
  76.        
  77.         print("\nPlayer 1 card count: " + str(len(player_1_cards)))
  78.         print("Player 2 card count: " + str(len(player_2_cards)))
  79.         assert len(player_1_cards) + len(player_2_cards) == 52
  80.         #input()
  81.         time.sleep(5)
  82.        
  83.     if len(player_2_cards) == 0:
  84.         print("\nPlayer 1 wins the game!")
  85.     elif len(player_1_cards) == 0:
  86.         print("Player 2 wins the game!")
  87.     print("\nLength of game: " + str(rounds) + " rounds")
  88.        
  89.  
  90. if __name__ == "__main__":
  91.     main()
Advertisement
Add Comment
Please, Sign In to add comment