Cum să faci un joc Tic Tac Toe în Python cu Exemplu de cod

Jocul Tic Tac Toe în Python este un proiect interesant pe care îl poți încerca. Este un proiect cool și distractiv de rezolvare a unei provocări și te poate ajuta să stăpânești concepte de bază Python. Crearea unui joc distractiv tic tac toe vă ajută să vă dezvoltați abilitățile.

Puteți folosi un bun Python editor cum ar fi Pycharm sau interfața de linie de comandă.

Cum să joci Tic Toc Game?

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

Iată cum să joci jocul tic tac toe.

Pas 1) Jocul tic tac toe începe cu celule goale într-o grilă pătrată. Aceasta este placa 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 actual marchează pe rând completând celulele de pe panoul tic tac toe până când un jucător completează o combinație câștigătoare. Adică un întreg rând, coloană sau diagonală cu același semn.

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

Cerinţe

Construirea căpuşă Python proiect necesită o înțelegere la nivel de începător Python limbaj de programare. Include înțelegerea buclelor și iterațiilor „for” și în ce se utilizează declarația if Python.

De asemenea, trebuie să aveți Python și Python editor de text instalat pe computer pentru a finaliza tic-tac-toe Python proiect. Deoarece acesta este un joc tic tac-toe la nivel de începător Python, nu vei avea nevoie de niciunul Python bibliotecă.

Este posibil să aveți nevoie de anumite abilități de depanare pentru a găsi soluții la erorile din codul dvs. și ar trebui, de asemenea, să aveți 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 Python limbaj de programare:

Pas 1) Creați 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) Încheiați jocul tic tac toe cu opțiuni pentru a începe un nou joc.

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 Ieșire cod

Odată ce rulați codul sursă de mai sus, mai jos este rezultatul așteptat pentru o placă 3 X 3 tic tac toe:

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

Defalcare completă a codului

Crearea tic tac toe in Python este simplu. Să disecăm diferitele funcții în biți pentru a înțelege ce se întâmplă pentru fiecare linie:

Imprimarea plăcii

Tabla Tic Tac Toe este afișajul principal al jocului. În, Python fereastra de afișare este folosită pentru a afișa tabla de joc.

Iată pașii care vă ajută să creați o placă pentru tic tac toe 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)

Ieșire cod:

------------
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 aceleași, atunci este evident că toate elementele din acel rând sunt aceleași.
  • 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ă. Întotdeauna vom compara celulele din diagonale. Cu toate acestea, în cazul în care nu există niciun 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.

Concluzie

  • Tic tac toe este un joc distractiv pentru doi jucători, prin plasarea unui simbol unic într-o celulă goală de bord.
  • Crearea unui joc tic tac toe în Python necesită o înțelegere la nivel de începător Python, un editor de text și Python instalat.
  • Algoritmul vă ajută să scrieți codul în mod sistematic în orice limbă.
  • Pentru a crea jocul, mai întâi, desenați tabla și scrieți codul pentru a determina aranjamentele de câștig și de pierdere
  • Puteți testa codul tic-tac-toe în Python jucând-o mai întâi.