Cum să faci un joc Tic Tac Toe în Python implementate cu Code Exemplu

⚡ Rezumat inteligent

Tic Tac Toe in Python este un proiect ușor de utilizat pentru începători, care recreează jocul clasic de tip grilă pentru doi jucători. Construirea acestuia consolidează abilitățile de bază, cum ar fi buclele, condiționalitățile, listele, funcțiile și recursivitatea, verificând în același timp rândurile, coloanele și diagonalele pentru a găsi un câștigător.

  • 🎮 Gameplay-ul: Doi jucători marchează X și O pe o grilă pătrată până când unul completează un rând, o coloană sau o diagonală.
  • 🧩 Logica de bază: Listele imbricate stochează tabla, în timp ce buclele și condiționalele determină turele și detectează o victorie sau o egalitate.
  • 🏗️ Pași de construcție: Creați tabla, alegeți primul jucător, luați informații, marcați celulele, apoi verificați dacă există un câștigător în fiecare rundă.
  • 🔁 reluarea: Un apel recursiv play() repornește meciul, iar validarea intrării blochează mutările ocupate sau în afara intervalului.
  • 🤖 Relevanță pentru inteligența artificială: Aceeași placă este un loc de joacă ideal pentru algoritmul minimax și agenții de învățare prin consolidare.
  • 🛠️ Unelte: Numai Python și un editor precum PyCharm sunt necesare; nu sunt necesare biblioteci externe.

Jocul Tic Tac Toe în Python

Jocul Tic Tac Toe în Python este un proiect interesant pe care îl poți încerca. Este un proiect interesant și distractiv de rezolvare a unei provocări și te poate ajuta să stăpânești conceptele de bază în PythonCrearea unui joc distractiv de tip „Tic Tac Toe” te ajută să-ți dezvolți abilitățile.

Puteți folosi un bun Python editor precum PyCharm sau interfața liniei de comandă.

Cum se joacă jocul 0 și 0?

Tic Tac Toe este un joc simplu pentru doi jucători, pe care oricine îl poate juca fără a fi nevoie de o tablă de joc. Implică doi jucători care marchează câmpuri diferite până când jocul se termină cu o victorie sau o remiză.

Iată cum se joacă jocul Tic Tac Toe.

Pas 1) Jocul Tic Tac Toe începe cu celule goale într-o grilă pătrată. Aceasta este tabla Tic Tac Toe.

Pas 2) Ambii jucători aleg dintre două simboluri, de obicei X sau Os. Puteți folosi orice alt simbol unic în joc.

Pas 3) Jucătorul curent marchează pe rând completând celulele tablei de joc Tic Tac Toe până când un jucător completează o combinație câștigătoare. Adică un rând, o coloană sau o diagonală întreagă cu același semn.

Pas 4) O egalitate este posibilă și în cazul în care toate celulele sunt pline fără un câștigător aparent.

Cerinţe

Construirea degetului X și X Python proiectul necesită o înțelegere la nivel de începător a Python limbaj de programare. Include înțelegerea buclelor „for” și a iterațiilor și la ce se folosește o instrucțiune if în Python.

De asemenea, trebuie să aveți Python și Python editor de text instalat pe computer pentru a completa jocul Tic Tac Toe Python proiect. Întrucât acesta este un joc Tic Tac Toe pentru începători în Python, nu veți avea nevoie de niciun Python bibliotecă.

Este posibil să aveți nevoie de unele abilități de depanare pentru a găsi soluții la erorile din codul dvs. și ar trebui să aveți, de asemenea, o înțelegere adecvată a componentelor jocului.

Tic Tac Toe Python Algoritm

Urmați acești pași pentru a crea un joc Tic Tac Toe în Python limbaj de programare:

Pas 1) Creează tabla pentru a începe jocul Tic Tac Toe.

Pas 2) Solicitați utilizatorului să decidă cu privire la dimensiunile tablei de joc.

Pas 3) Alegeți la întâmplare primul jucător.

Pas 4) Începe jocul Tic Tac Toe.

Pas 5) Jucătorii joacă selectând un loc liber de pe tablă.

Pas 6) Umpleți locul gol selectat cu semnul jucătorului.

Pas 7) Determinați dacă un jucător câștigă sau obține o egalitate în joc folosind logica jocului.

Pas 8) Afișați tabla de joc după fiecare joc dacă niciun jucător nu câștigă sau obține o egalitate față de al doilea jucător.

Pas 9) Afișați un mesaj de egalitate sau, respectiv, de câștig.

Pas 10) Încheie jocul Tic Tac Toe cu opțiuni pentru a începe un joc nou.

Complet Python cod pentru 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 producție

După ce rulați codul sursă de mai sus, mai jos este rezultatul așteptat pentru o tablă Tic Tac Toe 3 X 3:

------------
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):

Complet Code Defalcarea

Crearea Tic Tac Toe in Python este simplu. Să analizăm diferitele funcții pe biți pentru a înțelege ce se întâmplă pentru fiecare linie:

Imprimarea plăcii

Tabla Tic Tac Toe este principalul ecran al jocului. În Python, o fereastră de afișare este folosită pentru a afișa tabla de joc.

Iată pașii care te ajută să creezi o tablă pentru Tic Tac Toe în Python:

Python cod pentru 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 ieșire:

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

_ _ _

_ _ _

_ _ _

Jocul Tic Tac Toe – aranjament câștigător

Pentru a verifica dacă vreun jucător a câștigat, trebuie să verificăm combinațiile câștigătoare pe rânduri, coloane și diagonale. Dacă există un câștigător, trebuie să arătăm un mesaj câștigător.

Rânduri

  • Pentru rând, funcția ia fiecare pereche consecutivă de coloane și verifică o combinație câștigătoare.
  • Câștigă primul jucător care umple rândurile. Al doilea jucător pierde astfel.
  • Dacă o pereche de coloane consecutive sunt identice, atunci este evident că toate elementele din acel rând sunt identice.
  • Dacă două dintre ele sunt diferite sau rândul conține o celulă goală, tot nu există câștigător.
  • Apoi implementăm condiții de pierdere și adăugăm o pauză. Dacă oricare dintre aceste condiții de pierdere este adevărată, nu am avut un câștigător în rândul bifat.
  • Declarația else oferă o întoarcere adevărată pentru a arăta că există un câștigător.
  • Pauza iese din această buclă pentru a trece la rândul următor.

Coloane

Pentru coloane, repetam aceeasi functie ca in randuri. Verificăm dacă un jucător a câștigat după ce fiecare jucător își alege locul.

Rândul în diagonală câștigă

Pentru diagonala stângă, sarcina devine mai simplă. Vom compara întotdeauna celulele din diagonale. Totuși, în cazul în care nu există un câștigător, putem trece la următoarea instrucțiune.

Joacă logica jocului

Aceasta este funcția principală a jocului. Pentru aceasta putem folosi variabile care stochează informații.

  • Prima variabilă este dimensiunea plăcii stocată în „N”. Jocul va primi dimensiunea tablei după ce va cere utilizatorului să introducă un număr.
  • Deci, atunci când introduceți valoarea, aceasta este procesată.
  • De asemenea, creăm un mesaj de eroare pentru a arăta jucătorilor când este introdus un număr nevalid.
  • Apoi putem crea două variabile care completează un „X” sau un „O” atunci când o celulă este completată.
  • Apoi arată-le jucătorilor tabla de joc. După aceasta, obțineți intrarea jucătorului.
  • Logica va marca apoi celula selectată ca fiind completată și va verifica dacă există o victorie sau o remiză.
  • Dacă nu există niciun câștigător, jocul îi cere următorului jucător să joace. Dacă există o victorie sau un egal, jocul poate întreba utilizatorii dacă doresc un joc nou.

Întrebări frecvente

Da. Tic Tac Toe este un proiect clasic pentru începători care transformă buclele, condiționalitățile și funcțiile într-un joc funcțional. Crește încrederea, consolidează sintaxa de bază și te pregătește pentru proiecte mai mari fără a fi nevoie de biblioteci externe.

Consolidează listele imbricate pentru tablă, buclele for și while pentru ture, instrucțiunile if pentru verificări de victorie, funcțiile pentru structură și recursivitatea pentru repornire. Aceste elemente fundamentale se transferă direct la aplicații mai avansate. Python programe.

Da. Dincolo de versiunea pentru consolă, biblioteci precum Tkinter și Pygame adaugă butoane pe care se poate da clic, o grilă desenată și introducerea de date cu mouse-ul. Logica jocului rămâne aceeași; se schimbă doar straturile de afișare și de introducere a datelor.

Jocul 0, 1/2 este un joc rezolvat. Când ambii jucători joacă optim, fiecare amenințare poate fi blocată, astfel încât nimeni nu poate forța o victorie. De aceea, un meci impecabil, fie el uman sau de calculator, se termină întotdeauna la egalitate.

O versiune de bază a consolei durează între una și trei ore pentru un începător, odată ce buclele și condiționalitățile devin familiare. Adăugarea validării intrărilor, a unei plăci scalabile sau a unei interfețe grafice extinde proiectul pe parcursul unui weekend de practică.

Înlocuiește un jucător cu o funcție minimax. Aceasta explorează recursiv fiecare mișcare posibilă, punctând victorii, înfrângeri și egaluri, apoi alege mișcarea cu cel mai bun rezultat garantat. Pe o tablă mică, acest lucru face ca computerul să fie imposibil de învins.

Da. Agenții de învățare prin consolidare, cum ar fi Q-learning, se îmbunătățesc prin participarea a mii de jocuri și recompensarea mutărilor câștigătoare. Tablele sunt stocate ca matrice cu NumPy, permițând modelului să învețe o strategie aproape optimă fără reguli codificate fix.

Da. GitHub Copilot și asistenți AI similari pot structura tabla, pot transforma buclele și pot câștiga cecuri dintr-o scurtă solicitare. Tratați rezultatul ca pe o primă schiță, apoi testați singuri cazuri limită, cum ar fi egalități și mutări nevalide.

Rezumați această postare cu: