Mein Python Code funktioniert nicht?
Guten Abend erst einmal,
ich habe versucht mittels Python ein Mau Mau spiel zu erstellen, aber wenn ich es ausprobieren will, zeigt mir das Programm mitten im code " invalid Syntax " an.
Kann einer von euch mal bitte drüber schauen und mir sagen, was fehlt?
Hier ist der Code (,was mir als Fehler angezeigt wurde habe ich markiert( es ist das deck.shuffel ())).
import random
class Card:
def __init__(self, value, suit):
self.value = value
self.suit = suit
def __repr__(self):
return f"{self.value} of {self.suit}"
class Deck:
suits = ["Hearts", "Diamonds", "Spades", "Clubs"]
values = ["Ace", "2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen", "King"]
def __init__(self):
self.cards = [Card(value, suit) for suit in self.suits for value in self.values]
def shuffle(self):
random.shuffle(self.cards)
def deal(self):
return self.cards.pop()
class Player:
def __init__(self, name):
self.name = name
self.hand = []
def draw(self, deck):
self.hand.append(deck.deal())
def play_card(self, card):
self.hand.remove(card)
class AIPlayer(Player):
def choose_card(self, top_card):
for card in self.hand:
if card.value == top_card.value or card.suit == top_card.suit:
return card
return self.hand[0]
def play_game():
deck = Deck()
... deck.shuffle()
...
... player = Player("Player")
... ai = AIPlayer("AI")
...
... for i in range(7):
... player.draw(deck)
... ai.draw(deck)
...
... top_card = deck.deal()
...
... while len(player.hand) > 0 and len(ai.hand) > 0:
... print(f"Top card: {top_card}")
... print(f"{player.name}'s hand: {player.hand}")
...
... chosen_card = player.play_card(player.hand[int(input("Choose a card to play (index): "))])
... if chosen_card.value == top_card.value or chosen_card.suit == top_card.suit:
... top_card = chosen_card
... else:
... player.draw(deck)
... print(f"{player.name} drew a card.")
...
... if len(ai.hand) > 0:
... chosen_card = ai.choose_card(top_card)
... print(f"{ai.name} played {chosen_card}.")
... if chosen_card.value == top_card.value or chosen_card.suit == top_card.suit:
... top_card = chosen_card
... else:
... ai.draw(deck)
... print(f"{ai.name} drew a card.")
...
... if len(player.hand) == 0:
... print(f"{player.name} wins!")
... else:
... print(f"{ai.name} wins!"
>>> [DEBUG ON]
>>> [DEBUG OFF]