Hello guys ı am trying to play uno in python3 but my codes are not working. And also ı didin't see any errors(error messages) when ı run it. Can you help me? where did i make a mistake? ı do not understand.. There is my codes;
import random
class UnoCard:
def __init__(self, c,n):
self.color = c
self.num = n
def __str__(self):
if self.c == 0:
return "green" + str(self.n)
if self.c == 1:
return "yellow" + str(self.n)
if self.c == 2:
return "blue" + str(self.n)
if self.c == 3:
return "red" + str(self.n)
def canPlay(self,other):
if (self.num == other.num) or (self.color == other.color):
return True
return False
class CollectionOfUnoCards:
def __init__(self):
self.l = []
def addCard (self,c):
self.l.append(c)
def __str__(self):
if(self.l):
col_str = ""
for i in range (0, len(self.l)):
col_str = col_str + ' ' + str(self.l[i])
return col_str
def makeDeck(self):
for num in range (1,10):
for color in ["Yellow", "Red", "Blue", "Green"]:
newcard = UnoCard(color,num)
Deck.addCard(newcard)
Deck.addCard(newcard)
def shuffle(self):
shuffle = random.randint(0,73)
def getNumCards(self):
return len(CollectionOfUnoCards)
def getTopCard(self):
return CollectionOfUnoCards[0]
def canPlay(self, other):
for card in self.l:
if(card.canPlay(other)):
return True
return False
def getCard(self,index):
return makeDeck(CollectionOfUnoCards)
class Uno:
def __init__(self):
self.Deck = CollectionOfUnoCards()
self.Deck.makeDeck()
self.Deck.shuffle()
self.hand1 = CollectionOfUnoCards()
self.hand2 = CollectionOfUnoCards()
for i in range(7):
self.hand1.Collection.append(deck.Collection.pop( ))
self.hand1.Collection.append(deck.Collection.pop( ))
def playGame(self):
self.hand1.l.pop()
self.lastPlayedCard = hand1.l.pop()
while(True):
self.playTurn(1)
self.playTurn(2)
if len(self.hand1.l) == 0 or len(self.hand2.l) == 0 :
if len(self.hand1.l) == 0:
print("Player1 is winner")
elif len(self.hand2.l) == 0:
print("player2 is winner")
else:
print("The game ends in a draw")
return False
def playTurn(self, Player):
if Player == 1:
if canPlay(lastPlayedCard):
hand1.pop()
lastPlayedCard = hand1.pop()
else:
hand1.Collection.append(deck.Collection.pop())
else:
if canPlay(lastPlayedCard):
hand2.pop()
lastPlayedCard = hand2.pop()
else:
hand2.Collection.append(deck.Collection.pop())
def printResult(self):
print (hand1)
print (hand2)
def main():
my_game = Uno()
my_game.playGame()
ı writed in Anaconda on windows10. The program closes automatically when I run it. I'm not getting any output..
Aucun commentaire:
Enregistrer un commentaire