summaryrefslogtreecommitdiff
path: root/Varty's Cardy v3.py
blob: b94752d0c860def08441509cc43fabd4aec7ba7d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
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]}")