colorama.Fore.BLACK) #Background white, textcolor black clear_screen() #To make background white printCopyright() discardPile = Discardpile() #Build the initial (empty) discard pile deck = Deck(discardPile) #Build a deck with 108 cards players = makePlayers(deck) #Initialize players with deck noOfPlayers = len(players) idCurrentPlayer = randint(0, noOfPlayers - 1) #ID of first player in first round discardPile.putCard( deck.drawCard()[0], players[idCurrentPlayer]) #Put first card at discard pile isClockwise = True #Direction of play. Can be changed by reverse card while True: #Game loop clear_screen() topCard = discardPile.getCardOnTop() currentPlayer = players[idCurrentPlayer] showNoOfCardsInHand( players, idCurrentPlayer) #Print how many cards the other players have print('Pile: %s\n' % topCard) #Show top card on discard pile cardToPlay = currentPlayer.takeTurn(deck, topCard, noOfPlayers) if cardToPlay == None: #It's None if a card was drawn print('%s draws a card.' % currentPlayer.getName()) elif cardToPlay == 'skip': #It's 'skip' if player's turn is skipped print("%s's turn is skipped." % currentPlayer.getName()) else: #A card was chosen to play discardPile.putCard(cardToPlay, currentPlayer) #Put played card on pile if cardToPlay.isReverse(): #Did player play a reverse card? isClockwise = not isClockwise #Order of play reversed
if __name__ == '__main__': colorama.init() #Initialize color output print(colorama.Back.WHITE + colorama.Fore.BLACK) #Background white, textcolor black clear_screen() #To make background white printCopyright() discardPile = Discardpile() #Build the initial (empty) discard pile deck = Deck(discardPile) #Build a deck with 108 cards players = makePlayers(deck) #Initialize players with deck noOfPlayers = len(players) idCurrentPlayer = randint(0, noOfPlayers-1) #ID of first player in first round discardPile.putCard(deck.drawCard()[0], players[idCurrentPlayer]) #Put first card at discard pile isClockwise = True #Direction of play. Can be changed by reverse card while True: #Game loop clear_screen() topCard = discardPile.getCardOnTop() currentPlayer = players[idCurrentPlayer] showNoOfCardsInHand(players, idCurrentPlayer) #Print how many cards the other players have print('Pile: %s\n' % topCard) #Show top card on discard pile cardToPlay = currentPlayer.takeTurn(deck, topCard, noOfPlayers) if cardToPlay == None: #It's None if a card was drawn print('%s draws a card.' % currentPlayer.getName()) elif cardToPlay == 'skip': #It's 'skip' if player's turn is skipped print("%s's turn is skipped." % currentPlayer.getName()) else: #A card was chosen to play discardPile.putCard(cardToPlay, currentPlayer) #Put played card on pile if cardToPlay.isReverse(): #Did player play a reverse card? isClockwise = not isClockwise #Order of play reversed if currentPlayer.isWinner(): print('%s wins the game!' % currentPlayer.getName()) break