Wie man ein Tic Tac Toe Spiel macht in Python und Code Beispiel

⚡ Intelligente Zusammenfassung

Tic Tac Toe in Python ist ein anfängerfreundliches Projekt, das das klassische Zwei-Spieler-Gitterspiel nachbildet. Beim Bauen werden grundlegende Fähigkeiten wie Schleifen, Bedingungen, Listen, Funktionen und Rekursion gefestigt, während Zeilen, Spalten und Diagonalen auf einen Gewinner überprüft werden.

  • 🎮 Gameplay: Zwei Spieler markieren ein quadratisches Gitter mit X und O, bis einer von ihnen eine Reihe, Spalte oder Diagonale vervollständigt hat.
  • 🧩 Kernlogik: Verschachtelte Listen speichern das Spielbrett, während Schleifen und Bedingungen die Spielzüge steuern und einen Sieg oder ein Unentschieden erkennen.
  • ???? ️ Bauschritte: Erstelle das Spielbrett, wähle den ersten Spieler, nimm die Eingaben entgegen, markiere die Felder und überprüfe dann in jeder Runde, ob es einen Gewinner gibt.
  • 🔁 Wiederholung: Ein rekursiver Aufruf von play() startet das Spiel neu, und die Eingabevalidierung verhindert belegte oder außerhalb der Reichweite liegende Züge.
  • 🤖 KI-Relevanz: Das gleiche Board ist ein idealer Spielplatz für den Minimax-Algorithmus und Reinforcement-Learning-Agenten.
  • Tools: Nur Python und ein Redakteur wie PyCharm werden benötigt; es werden keine externen Bibliotheken benötigt.

Tic Tac Toe Spiel in Python

Tic Tac Toe Spiel in Python ist ein interessantes Projekt, das du ausprobieren kannst. Es ist ein cooles und unterhaltsames Projekt, bei dem es darum geht, eine Herausforderung zu lösen, und es kann dir helfen, grundlegende Konzepte zu beherrschen. Python. Ein unterhaltsames Tic-Tac-Toe-Spiel zu entwickeln, hilft dir, deine Fähigkeiten zu verbessern.

Sie können eine gute Python Herausgeber wie PyCharm oder die Kommandozeilenschnittstelle.

Wie spielt man das Tic-Tac-Toe-Spiel?

Tic Tac Toe ist ein einfaches Zweispielerspiel, das jeder ohne Spielbrett spielen kann. Dabei markieren zwei Spieler unterschiedliche Felder, bis das Spiel mit einem Sieg oder einem Unentschieden endet.

So spielt man das Tic-Tac-Toe-Spiel.

Schritt 1) Das Tic-Tac-Toe-Spiel beginnt mit leeren Feldern in einem quadratischen Gitter. Dies ist das Tic-Tac-Toe-Spielfeld.

Schritt 2) Beide Spieler wählen aus zwei Symbolen, normalerweise X oder Os. Sie können jedes andere einzigartige Symbol im Spiel verwenden.

Schritt 3) Der aktuelle Spieler markiert abwechselnd die Felder des Tic-Tac-Toe-Spielfelds, bis ein Spieler eine Gewinnkombination erzielt. Das bedeutet, dass eine ganze Zeile, Spalte oder Diagonale mit demselben Symbol gefüllt ist.

Schritt 4) Ein Unentschieden ist auch dann möglich, wenn alle Zellen belegt sind und es keinen erkennbaren Gewinner gibt.

Voraussetzungen:

Bau des Tic-Tac-Toe Python Für dieses Projekt sind Grundkenntnisse erforderlich. Python Programmiersprache. Dazu gehört das Verständnis von „for“-Schleifen und Iterationen sowie die Verwendung von if-Anweisungen. Python.

Sie müssen auch haben Python und einem Python Um das Tic-Tac-Toe-Spiel zu vervollständigen, muss ein Texteditor auf Ihrem Computer installiert sein. Python Projekt. Da es sich um ein Tic-Tac-Toe-Spiel für Anfänger handelt. PythonSie werden keine benötigen Python Bibliothek.

Um Fehler in Ihrem Code zu finden, benötigen Sie möglicherweise Kenntnisse im Debugging und sollten außerdem ein ausreichendes Verständnis der Spielkomponenten haben.

Tic Tac Toe Python Algorithmus

Folgen Sie diesen Schritten, um ein Tic-Tac-Toe-Spiel zu erstellen in Python Programmiersprache:

Schritt 1) Erstelle das Spielfeld, um das Tic-Tac-Toe-Spiel zu beginnen.

Schritt 2) Bitten Sie den Benutzer, über die Abmessungen des Spielbretts zu entscheiden.

Schritt 3) Wähle zufällig den Startspieler.

Schritt 4) Das Tic-Tac-Toe-Spiel beginnt.

Schritt 5) Die Spieler spielen, indem sie eine leere Stelle auf dem Spielbrett auswählen.

Schritt 6) Füllen Sie die leere ausgewählte Stelle mit dem Zeichen des Spielers.

Schritt 7) Bestimmen Sie mithilfe der Spiellogik, ob ein Spieler das Spiel gewinnt oder ein Unentschieden erzielt.

Schritt 8) Zeigen Sie das Spielbrett nach jedem Spielzug an, wenn kein Spieler gewinnt oder ein Gleichstand mit dem zweiten Spieler besteht.

Schritt 9) Zeigen Sie eine Unentschieden- bzw. Siegernachricht an.

Schritt 10) Beende das Tic-Tac-Toe-Spiel mit der Option, ein neues Spiel zu starten.

Vollständiger Python Code für Tic Tac Toe

# Guru99
# Code developed by Guru99.com
# Guru99 tic-tac-toe game
#Get input
def getInput(prompt, cast=None, condition=None, errorMessage=None):
  while True:
      try:
          val = cast(input(prompt))
          assert condition is None or condition(val)
          return val
      except:
          print(errorMessage or "Invalid input.")
# Print the game board
def printBoard(board):
  print()
  for row in board:
      print(*row)
  print()
# Check if player won using the winning combinations
def checkWin(board):
  # Check rows
  for row in range(len(board)):
      for col in range(len(board)-1):
          if board[row][col] == "_" or board[row][col+1] == "_" or board[row][col] != board[row][col+1]:
              break
      else:
          return True
  # Check column numbers
  for col in range(len(board)):
      for row in range(len(board)-1):
          if board[row][col] == "_" or board[row+1][col] == "_" or board[row][col] != board[row+1][col]:
              break
      else:
          return True
  # Check left diagonal
  for cell in range(len(board)-1):
      if board[cell][cell] == "_" or board[cell+1][cell+1] == "_" or board[cell][cell] != board[cell+1][cell+1]:
          break
  else:
      return True
  # Check right diagonal
  for cell in range(len(board)-1):
      emptyCell = board[cell][len(board)-cell-1] == "_" or board[cell+1][len(board)-cell-2] == "_"
      different = board[cell][len(board)-cell-1] != board[cell+1][len(board)-cell-2]
      if emptyCell or different:
          break
  else:
      return True
  # No win
  return False
# Play tic tac toe game
def play():
  # Introduction
  print("------------\nN-DIMENSIONAL TIC TAC TOE game by guru 99.com \n------------")
  # Set up variables
  N = getInput(prompt="Guru99 says>>> Enter N, the dimensions of the board: ",
               cast=int,
               condition=lambda x: x >= 3,
               errorMessage="Invalid input. Please enter an integer greater than or equal to 3 as explained on guru99.com")
  board = [['_'] * N for _ in range(N)]
  used = 0
  turn = 0
  # Play guru99 tic tac toe game in Python using while infinite loop
  while True:
      # Print guru99 tic tac toe game board
      printBoard(board)
      # Get user pick
      pick = getInput(prompt=f"Player {turn+1} - Pick location (row, col): ",
                      cast=lambda line: tuple(map(int, line.split(" "))),
                      condition=lambda pair: min(pair) >= 0 and max(pair) < N and board[pair[0]][pair[1]] == "_",
                      errorMessage="Invalid input. Please enter a valid, unoccupied location as an integer pair.")
      # Populate location
      board[pick[0]][pick[1]] = "X" if turn == 0 else "O"
      used += 1
      # Check for win
      #Guru99 tutorial
      if checkWin(board):
          printBoard(board)
          print(f"Game over, Player {turn+1} wins.")
          break
      # Check for tie
      elif used == N*N:
          printBoard(board)
          print("Game over. Players have tied the match.")
          print("Guru99.com tic tac toe game ")
          break
      # If no win yet, update next user
      turn = (turn+1)%2
  # Check for rematch
  playAgain = getInput(prompt="Play Guru99 tic tac toe_Game again? (y/n): ",
                       cast=str,
                       condition=lambda ans: ans.strip("\n").lower() in {"y", "n"},
                       errorMessage="Invalid input. Please enter 'y' or 'n'.")
  if playAgain == 'n':
      # End the game
      print("\nGuru99 TicTacToe game ended.")
      return
  else:
      # Rematch
      play()
# Main
if __name__ == '__main__':
  play()

Tic Tac Toe Python Code Möglichkeiten für das Ausgangssignal:

Nach Ausführung des obigen Quellcodes wird für ein 3x3-Tic-Tac-Toe-Spielfeld folgende Ausgabe erwartet:

------------
N-DIMENSIONAL TIC TAC TOE game by guru 99.com
------------
Guru99 says>>> Enter N, the dimensions of the board: 3

_ _ _

_ _ _

_ _ _

Player 1 - Pick location (row, col): 1 1

_ _ _

_ X _

_ _ _

Player 2 - Pick location (row, col): 0 1

_ O _

_ X _

_ _ _

Player 1 - Pick location (row, col): 1 2

_ O _

_ X X

_ _ _

Player 2 - Pick location (row, col): 0 2

_ O O

_ X X

_ _ _

Player 1 - Pick location (row, col): 1 0

_ O O

X X X

_ _ _

Game over, Player 1 wins.
Play Guru99 tic tac toe_Game again? (y/n):

Vollständiger Code Breakdown

Bessere Tic Tac Toe in Python Es ist ganz einfach. Lassen Sie uns die verschiedenen Funktionen Stück für Stück analysieren, um zu verstehen, was in jeder Zeile vor sich geht:

Bedrucken der Platine

Das Tic-Tac-Toe-Spielbrett ist die Hauptspielanzeige. PythonEin Anzeigefenster dient zur Darstellung des Spielbretts.

Hier sind die Schritte, die Ihnen helfen, ein Spielbrett für Tic Tac Toe zu erstellen. Python:

Python Code für Tic Tac Toe

def getInput(prompt, cast=None, condition=None, errorMessage=None):
   while True:
       try:
           val = cast(input(prompt))
           assert condition is None or condition(val)
           return val
       except:
           print(errorMessage or "Invalid input.")
# Print the board
def printBoard(board):
   print()
   for row in board:
       print(*row)
   print()
N = getInput(prompt="Guru99 says>>> Enter N, the dimensions of the board: ",
            cast=int,
            condition=lambda x: x >= 3,
            errorMessage="Invalid input. Please enter an integer greater than or equal to 3 as explained on guru99.com")
board = [['_'] * N for _ in range(N)]
used = 0
turn = 0
printBoard(board)

Code Ausgabe:

------------
N-DIMENSIONAL TIC TAC TOE game by guru 99.com
------------
Guru99 says>>> Enter N, the dimensions of the board: 3

_ _ _

_ _ _

_ _ _

Tic Tac Toe-Spiel – Gewinnkombination

Um zu überprüfen, ob ein Spieler gewonnen hat, müssen wir die Gewinnkombinationen in den Zeilen, Spalten und Diagonalen überprüfen. Wenn es einen Gewinner gibt, müssen wir eine Gewinnerbotschaft zeigen.

Reihen

  • Für die Zeile nimmt die Funktion jedes aufeinanderfolgende Spaltenpaar und prüft, ob eine Gewinnkombination vorliegt.
  • Der erste Spieler, der die Reihen füllt, gewinnt. Der zweite Spieler verliert also.
  • Wenn zwei aufeinanderfolgende Spalten gleich sind, dann ist es offensichtlich, dass alle Elemente innerhalb dieser Zeile gleich sind.
  • Wenn zwei davon unterschiedlich sind oder die Zeile eine leere Zelle enthält, gibt es immer noch keinen Gewinner.
  • Anschließend implementieren wir Verlustbedingungen und fügen eine Pause hinzu. Wenn eine dieser Verlustbedingungen zutrifft, hatten wir in der überprüften Reihe keinen Gewinner.
  • Die else-Anweisung gibt eine echte Rückgabe zurück, um zu zeigen, dass es einen Gewinner gibt.
  • Der Break bricht aus dieser Schleife aus, um mit der nächsten Zeile fortzufahren.

Spalten

Für die Spalten wiederholen wir die gleiche Funktion wie in den Zeilen. Wir überprüfen, ob ein Spieler gewonnen hat, nachdem jeder Spieler seinen Platz ausgewählt hat.

Die diagonale Reihe gewinnt

Bei der linken Diagonalen wird die Aufgabe einfacher. Wir vergleichen stets die Zellen in den Diagonalen. Falls es keinen Gewinner gibt, fahren wir mit dem nächsten Schritt fort.

Spiellogik spielen

Dies ist die Hauptspielfunktion. Hierzu können wir Variablen verwenden, die Informationen speichern.

  • Die erste Variable ist die in „N“ gespeicherte Platinengröße. Das Spiel erhält die Spielbrettgröße, nachdem der Benutzer aufgefordert wurde, eine Zahl einzugeben.
  • Wenn Sie also den Wert eingeben, wird er verarbeitet.
  • Wir erstellen außerdem eine Fehlermeldung, um den Spielern anzuzeigen, wenn eine ungültige Nummer eingegeben wird.
  • Wir können dann zwei Variablen erstellen, die ein „X“ oder ein „O“ ausfüllen, wenn eine Zelle gefüllt ist.
  • Zeigen Sie den Spielern dann den Spielplan. Holen Sie sich danach die Eingaben des Spielers ein.
  • Die Logik markiert dann die ausgewählte Zelle als gefüllt und prüft, ob ein Sieg oder ein Unentschieden vorliegt.
  • Wenn es keinen Gewinner gibt, fordert das Spiel den nächsten Spieler zum Spielen auf. Bei einem Sieg oder Unentschieden kann das Spiel die Nutzer fragen, ob sie ein neues Spiel wollen.

Häufig gestellte Fragen

Ja. Tic Tac Toe ist ein klassisches Anfängerprojekt, das Schleifen, Bedingungen und Funktionen in ein funktionierendes Spiel umsetzt. Es stärkt das Selbstvertrauen, festigt die grundlegende Syntax und bereitet auf größere Projekte vor, ohne dass externe Bibliotheken benötigt werden.

Es festigt das Verständnis von verschachtelten Listen für das Spielbrett, von for- und while-Schleifen für Spielzüge, von if-Anweisungen für Gewinnprüfungen, von Funktionen für die Spielstruktur und von Rekursion für Neustarts. Diese Grundlagen lassen sich direkt auf fortgeschrittenere Konzepte übertragen. Python Programme.

Ja. Über die Konsolenversion hinaus bieten Bibliotheken wie Tkinter und Pygame klickbare Schaltflächen, ein gezeichnetes Raster und Maussteuerung. Die Spiellogik bleibt dabei unverändert; lediglich die Darstellungs- und Eingabeebenen ändern sich.

Tic Tac Toe ist ein gelöstes Spiel. Wenn beide Spieler optimal spielen, kann jede Bedrohung abgewehrt werden, sodass niemand einen Sieg erzwingen kann. Deshalb endet ein fehlerfreies Spiel, egal ob von Mensch oder Computer, immer unentschieden.

Eine einfache Konsolenversion lässt sich von Anfängern in ein bis drei Stunden umsetzen, sobald Schleifen und Bedingungen vertraut sind. Das Hinzufügen von Eingabevalidierung, einer skalierbaren Tastatur oder einer grafischen Benutzeroberfläche verlängert das Projekt und erfordert ein ganzes Übungswochenende.

Ersetzen Sie einen Spieler durch eine Minimax-Funktion. Diese durchläuft rekursiv alle möglichen Züge, bewertet Siege, Niederlagen und Unentschieden und wählt dann den Zug mit dem besten garantierten Ergebnis. Auf einem kleinen Spielbrett ist der Computer dadurch unbesiegbar.

Ja. Reinforcement-Learning-Agenten wie Q-Learning verbessern sich, indem sie Tausende von Spielen spielen und erfolgreiche Züge belohnen. Die Spielbretter werden als Arrays gespeichert. NumPyDadurch kann das Modell eine nahezu optimale Strategie ohne fest codierte Regeln erlernen.

Ja. GitHub Copilot und ähnliche KI-Assistenten können anhand einer kurzen Eingabe das Spielbrett, die Zugreihenfolge und die Gewinnzüge generieren. Betrachten Sie die Ausgabe als ersten Entwurf und testen Sie anschließend selbst Grenzfälle wie Unentschieden und ungültige Züge.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: