Advertisement
_s8

WIP

_s8
Nov 23rd, 2017
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.19 KB | None | 0 0
  1. import random
  2. import time
  3. # WIP, as there are still some bugs
  4.  
  5. master_deck = []
  6. types_of_colours = ['Blue', 'Red', 'Yellow', 'Green']
  7. types_of_cards = ['1', '2', '3', '4', '5', '6', '7', '8', '9', 'skip', 'reverse','+2', '+4']
  8. for x in range(0, 2):
  9.     for colour in types_of_colours:
  10.         for card in types_of_cards:
  11.             master_deck.append("{} {}".format(colour, card))
  12.     master_deck.append("Wildcard")
  13.     master_deck.append("Wildcard")
  14.     master_deck.append("Wildcard +4")
  15.     master_deck.append("Wildcard +4")
  16. def shuffle():
  17.     for x in range(0, len(master_deck)):
  18.         new_index = random.randint(0, len(master_deck)-1)
  19.         new = master_deck[x]
  20.         master_deck[x] = master_deck[new_index]
  21.         master_deck[new_index] = new
  22. shuffle()
  23. com_deck = []
  24. self_deck = []
  25. stack_of_cards = [master_deck[0]]
  26. master_deck.pop(master_deck[0])
  27. def deal_cards():
  28.     for n in range(1, 15):
  29.         card = master_deck[0]
  30.         master_deck.pop(0)
  31.         if n % 2 == 0:
  32.             self_deck.append(card)
  33.         else:
  34.             com_deck.append(card)
  35. deal_cards()
  36. print("Here's your deck: ")
  37. print(self_deck)
  38. turn = random.randint(0, 1)
  39. while len(self_deck) != 0 and len(com_deck) != 0:
  40.     print(stack_of_cards)
  41.     print("Top card:")
  42.     print("\n",stack_of_cards[len(stack_of_cards)-1])
  43.     if turn == 1:
  44.         print("My turn:")
  45.         components = stack_of_cards[len(stack_of_cards)-1].split()
  46.         for x in range(0, len(com_deck)):
  47.             card = com_deck[x]
  48.             c_components = card.split()
  49.             if c_components[0] == components[0] or c_components[1] == components[1] or "Wildcard" in card:
  50.                 stack_of_cards.append(card)
  51.                 print("I placed {}!".format(card))
  52.                 com_deck.pop(com_deck.index(card))
  53.                 if 'Wildcard' in card:
  54.                     survey = {'Blue', 'Red', 'Yellow', 'Green'}
  55.                     backwards = {}
  56.                     for cards in com_deck:
  57.                         split_ = cards.split()
  58.                         survey[split_[0]] += 1
  59.                     for color in survey:
  60.                         backwards[survey[color]] = survey[color]
  61.                     print("I'm changing the color to {}!".format(backwards[max(backwards)]))
  62.                     stack_of_cards.append(backwards[max(backwards)])
  63.                 if '+4' in card:
  64.                     print("You drew 4 cards!")
  65.                     for z in range(0, 4):
  66.                         self_deck.append(stack_of_cards[0])
  67.                         stack_of_cards.pop(0)
  68.                 if '+2' in card:
  69.                     print("You drew 2 cards!")
  70.                     for a in range(0, 2):
  71.                         self_deck.append(stack_of_cards[0])
  72.                         stack_of_cards.pop(0)
  73.                 break
  74.             if x == len(com_deck)-1:
  75.                 print("I drew a card!")
  76.                 com_deck.append(master_deck[0])
  77.                 master_deck.pop(0)
  78.         turn -= 1
  79.     else:
  80.         print("It's your turn! \n Your deck:")
  81.         print(self_deck)
  82.         card = input("Pick a card: ")
  83.         while card not in self_deck:
  84.             card = input("Sorry, that's not a card in your deck! Pick another: ")
  85.         print("You placed {}.".format(card))
  86.         if "Wildcard" in card:
  87.             picked = input("What color do you want to change it to? ")
  88.             while picked not in types_of_colours:
  89.                 print(picked,"is not a valid color!")
  90.             stack_of_cards.append(picked[0].upper()+picked[1:])
  91.         if '+2' in card:
  92.             print("I drew 2 cards!")
  93.             for b in range(0, 2):
  94.                 com_deck.append(master_deck[0])
  95.                 master_deck.pop(0)
  96.         if '+4' in card:
  97.             print("I drew 4 cards!")
  98.             for c in range(0, 4):
  99.                 com_deck.append(master_deck[0])
  100.                 master_deck.pop(0)
  101. if len(self_deck) == 0:
  102.     print("You win!")
  103. else:
  104.     print("I win!")
  105. game_over = input("Want to play again? (Y/N) ")
  106. if game_over == 'Y':
  107.     new = open("uno.py", 'r')
  108.     script = new.read()
  109.     new.close()
  110.     print("Restarting..")
  111.     exec(script)
  112. else:
  113.     print("Good game!")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement