MCPcopy Index your code
hub / github.com/geekcomputers/Python / main

Function main

BoardGame-CLI/uno.py:126–225  ·  view source on GitHub ↗

Run interactive UNO game (keeps original behavior). Note: main() is interactive and not exercised by doctest.

()

Source from the content-addressed store, hash-verified

124
125
126def main() -> None:
127 """Run interactive UNO game (keeps original behavior).
128
129 Note: main() is interactive and not exercised by doctest.
130 """
131 global players_name, players, discards
132
133 numPlayers = int(input("How many players?"))
134 while numPlayers < 2 or numPlayers > 4:
135 numPlayers = int(
136 input("Invalid. Please enter a number between 2-4.\nHow many players?")
137 )
138 for player in range(numPlayers):
139 players_name.append(input("Enter player {} name: ".format(player + 1)))
140 players.append(drawCards(5))
141
142 playerTurn = 0
143 playDirection = 1
144 playing = True
145 discards.append(unoDeck.pop(0))
146 splitCard = discards[0].split(" ", 1)
147 currentColour = splitCard[0]
148 if currentColour != "Wild":
149 cardVal = splitCard[1]
150 else:
151 cardVal = "Any"
152
153 while playing:
154 showHand(playerTurn, players[playerTurn])
155 print("Card on top of discard pile: {}".format(discards[-1]))
156 if canPlay(currentColour, cardVal, players[playerTurn]):
157 cardChosen = int(input("Which card do you want to play?"))
158 while not canPlay(
159 currentColour, cardVal, [players[playerTurn][cardChosen - 1]]
160 ):
161 cardChosen = int(
162 input("Not a valid card. Which card do you want to play?")
163 )
164 print("You played {}".format(players[playerTurn][cardChosen - 1]))
165 discards.append(players[playerTurn].pop(cardChosen - 1))
166
167 # cheak if player won
168 if len(players[playerTurn]) == 0:
169 playing = False
170 # winner = "Player {}".format(playerTurn+1)
171 winner = players_name[playerTurn]
172 else:
173 # cheak for special cards
174 splitCard = discards[-1].split(" ", 1)
175 currentColour = splitCard[0]
176 if len(splitCard) == 1:
177 cardVal = "Any"
178 else:
179 cardVal = splitCard[1]
180 if currentColour == "Wild":
181 for x in range(len(colours)):
182 print("{}) {}".format(x + 1, colours[x]))
183 newColour = int(input("What colour would you like to choose? "))

Callers 1

uno.pyFile · 0.70

Calls 6

drawCardsFunction · 0.85
showHandFunction · 0.85
canPlayFunction · 0.85
extendMethod · 0.80
appendMethod · 0.45
popMethod · 0.45

Tested by

no test coverage detected