import random import time players = int(input("Amount of players: ")) cards = [] place = random.randrange(players) allcards = [] def generate(): for i in [u"\u2660", u"\u2665", u"\u2663", u"\u2666"]: for j in range(1, 14): allcards.append([i, j]) def getinput(question, start, stop): try: i = int(input(question)) while start > i or stop <= i: print("Invalid Input") i = int(input(question)) except TypeError: print("Invalid Input") def newcard(): output = random.choice(allcards) allcards.pop(allcards.index(output)) return output def action(player): time.sleep(0.5) playercontrol = player == place if player == players - 1: nxtplayer = 0 else: nxtplayer = player + 1 if player == 0: if cards[0][1] == 13: if playercontrol: print("★ ★ ★ ★ ★ ★ ★ ★ ★ ★\nYour turn, but you can't give up your King ~\n★ ★ ★ ★ ★ ★ ★ ★ ★ ★") else: print(f"Player {player+1} can't give up their King ~") elif playercontrol: print("You have a chance to choose another card! ") choice = bool(int(input("Do you want to continue? (0 - No, 1 - Yes): "))) if choice: cards[0] = newcard() print(f" ↓ ↓ ↓ ↓\nCurrent card: {cards[0][0]} {cards[0][1]}\n ↑ ↑ ↑ ↑") else: print("Card saved! ") else: level = random.randrange(3, 9) if cards[0][1] >= level: print("Player 1 decides not to change their card ...") else: cards[0] = newcard() print("Player 1 decides to change their card ...") elif cards[player][1] == 13: if playercontrol: print("★ ★ ★ ★ ★ ★ ★ ★ ★ ★\nYour turn, but you can't give up your King ~\n★ ★ ★ ★ ★ ★ ★ ★ ★ ★") else: print(f"Player {player+1} can't give up their King ~") elif cards[nxtplayer][1] == 13: if playercontrol: print("★ ★ ★ ★ ★ ★ ★ ★ ★ ★\nYour turn, but you can't swap ~\n★ ★ ★ ★ ★ ★ ★ ★ ★ ★") else: print(f"Player {player+1} can't swap ~") elif playercontrol: print("★ ★ ★ ★ ★ ★ ★ ★ ★ ★\nYour turn!") choice = bool(int(input("Do you want to swap with the player after you (0 - No, 1 - Yes): "))) if choice: (cards[player], cards[nxtplayer]) = (cards[nxtplayer], cards[player]) print(f"Card swapped! \n ↓ ↓ ↓ ↓\nCurrent card: {cards[player][0]} {cards[player][1]}\n ↑ ↑ ↑ ↑\n★ ★ ★ ★ ★ ★ ★ ★ ★ ★") else: print("Card saved! \n★ ★ ★ ★ ★ ★ ★ ★ ★ ★") else: level = random.randrange(3, 9) if cards[i][1] >= level: print(f"Player {player+1} decides not to swap their card ...") else: (cards[player], cards[nxtplayer]) = (cards[nxtplayer], cards[player]) if nxtplayer == place: print(f"Player {player+1} swaps with you! \n ↓ ↓ ↓ ↓\nCurrent card: {cards[nxtplayer][0]} {cards[nxtplayer][1]}\n ↑ ↑ ↑ ↑") else: print(f"Player {player+1} decides to swap with Player {nxtplayer+1} ...") generate() print(f"You are in place: {place+1}") for i in range(players): cards.append(newcard()) if cards[i][1] == 13: print(f"Player in place {i+1} gets the King of {cards[i][0]}! ") print(f" ↓ ↓ ↓ ↓\nYour card is: {cards[place][0]} {cards[place][1]}\n ↑ ↑ ↑ ↑") if cards[place][1] == 13: print("You get a King! ") print("- - - - - - - - - -") for i in range(1, players): action(i) action(0) time.sleep(0.5) print("- - - - - - - - - -") lowest = 13 losers = [] multiple = False for i in range(players): if cards[i][1] < lowest: losers = [i] lowest = cards[i][1] multiple = False elif cards[i][1] == lowest: losers.append(i) multiple = True if multiple: print("The losers are:", end=" ") for i in losers: print(f"Player {i+1}", end=" ") print() else: print(f"The loser is: Player {losers[0]+1}") if place in losers: print("You lose! \n- - - - - - - - - -") else: print("You win! \n- - - - - - - - - -") for i in range(players): print(f"Player {i+1}'s card: {cards[i][0]} {cards[i][1]}")