Untitled
unknown
plain_text
2 years ago
2.7 kB
9
Indexable
import pygame
# Schritt 1: Vorbereitung
import pygame
# Schritt 2: Initialisierung
pygame.init()
# Schritt 3: Spielfeld erstellen
spielfeld = [
["", "", ""],
["", "", ""],
["", "", ""]
]
# Schritt 4: Grundeinstellungen
fenster_breite, fenster_hoehe = 600, 600
fenster = pygame.display.set_mode((fenster_breite, fenster_hoehe))
pygame.display.set_caption("Tic-Tac-Toe")
# Schritt 5: Spielerwechsel
aktueller_spieler = "X"
# Schritt 6: Spielfeld zeichnen
def zeichne_spielfeld():
fenster.fill((255, 255, 255)) # Setze den Hintergrund auf Weiß
# Zeichne horizontale Linien
for zeile in range(1, 3):
pygame.draw.line(fenster, (0, 0, 0), (0, zeile * 200), (fenster_breite, zeile * 200), 10)
# Zeichne vertikale Linien
for spalte in range(1, 3):
pygame.draw.line(fenster, (0, 0, 0), (spalte * 200, 0), (spalte * 200, fenster_hoehe), 10)
# Schritt 7: Spiellogik - Hier prüfen, ob jemand gewonnen hat oder ob es unentschieden steht
def pruefe_gewinner():
for spieler in ["X", "O"]:
# Prüfe horizontale und vertikale Linien
for i in range(3):
if spielfeld[i][0] == spielfeld[i][1] == spielfeld[i][2] == spieler or \
spielfeld[0][i] == spielfeld[1][i] == spielfeld[2][i] == spieler:
return spieler
# Prüfe diagonale Linien
if spielfeld[0][0] == spielfeld[1][1] == spielfeld[2][2] == spieler or \
spielfeld[0][2] == spielfeld[1][1] == spielfeld[2][0] == spieler:
return spieler
# Prüfe auf Unentschieden
for zeile in spielfeld:
if "" in zeile:
return None
return "Unentschieden"
# Schritt 8: Spielsteuerung - Hier wird der Mausklick verarbeitet
spiel_aktiv = True # Dies dient dazu, das Spiel zu pausieren, wenn ein Gewinner gefunden wurde
while spiel_aktiv:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
exit()
if event.type == pygame.MOUSEBUTTONDOWN:
x, y = event.pos
spalte = x // 200
zeile = y // 200
if spielfeld[zeile][spalte] == "":
spielfeld[zeile][spalte] = aktueller_spieler
# Wechsle den Spieler
aktueller_spieler = "O" if aktueller_spieler == "X" else "X"
zeichne_spielfeld() # Aktualisiere das Spielfeld
pygame.display.update() # Aktualisiere das Fenster
gewinner = pruefe_gewinner()
if gewinner:
if gewinner == "Unentschieden":
print("Unentschieden!")
else:
print(f"Spieler {gewinner} hat gewonnen!")
spiel_aktiv = False # Das Spiel ist beendetEditor is loading...