Kako napraviti igru ​​Tic Tac Toe u Python s primjerom koda

Tic Tac Toe Igra in Python je zanimljiv projekt koji možete isprobati. To je cool i zabavan projekt rješavanja izazova i može vam pomoći da svladate osnovne koncepte Python. Stvaranje zabavne igre tic tac toe pomaže vam da razvijete svoje vještine.

Možete koristiti dobar Python uređivač kao što je Pycharm ili sučelje naredbenog retka.

Kako igrati igru ​​Tic Toc?

Tic tac toe igra je jednostavna igra za dva igrača koju svatko može igrati bez potrebe za pločom. Uključuje dva igrača koji označavaju različite ćelije dok igra ne završi, u pobjedi ili neriješenom rezultatu.

Evo kako igrati igru ​​tic tac toe.

Korak 1) Igra tic tac toe počinje praznim ćelijama u kvadratnoj mreži. Ovo je tic tac tabla.

Korak 2) Oba igrača biraju između dva simbola, obično Xs ili Os. Možete koristiti bilo koji drugi jedinstveni simbol u igri.

Korak 3) Trenutačni igrač označava redom popunjavanjem ćelija na ploči s tic tac toe sve dok igrač ne ispuni dobitnu kombinaciju. To je cijeli red, stupac ili dijagonala s istim predznakom.

Korak 4) Neodlučeno je također moguće u slučaju da su sve ćelije pune i nema vidljivog pobjednika

Zahtjevi

Izgradnja Križić kružić Python projekt zahtijeva razumijevanje na početničkoj razini Python programski jezik. Uključuje razumijevanje "for" petlji i iteracija te u čemu se koristi izjava if Python.

Također morate imati Python a Python uređivač teksta instaliran na vašem računalu da dovršite tic-tac-toe Python projekt. Budući da je ovo igra tic-tac-toe na početničkoj razini Python, neće ti trebati Python knjižnica.

Možda će vam trebati neke vještine otklanjanja pogrešaka kako biste pronašli rješenja za pogreške u svom kodu, a također biste trebali imati odgovarajuće razumijevanje komponenti igre.

Tic Tac Toe Python Algoritam

Slijedite ove korake za kreiranje igre tic tac toe Python programski jezik:

Korak 1) Napravite ploču za početak igre tic tac toe.

Korak 2) Zatražite od korisnika da odluči o dimenzijama igraće ploče.

Korak 3) Nasumično odaberite prvog igrača.

Korak 4) Počinje igra Tic Tac Toe.

Korak 5) Igrači igraju odabirom praznog mjesta na ploči.

Korak 6) Ispunite prazno odabrano mjesto znakom igrača.

Korak 7) Pomoću logike igre odredite pobjeđuje li igrač ili je neriješeno u igri.

Korak 8) Prikažite ploču za igru ​​nakon svake igre ako nijedan igrač ne pobijedi ili dobije neriješeno s drugim igračem.

Korak 9) Prikažite poruku o izjednačenom rezultatu ili pobjedi.

Korak 10) Završite igru ​​tic tac toe s opcijama za početak nove igre.

Full Python kod za 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 Izlaz koda

Nakon što pokrenete gornji izvorni kod, dolje je očekivani izlaz za ploču 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):

Raščlamba potpunog koda

Stvaranje tic tac toe in Python je jednostavan. Raščlanimo različite funkcije u bitove kako bismo razumjeli što se događa za svaku liniju:

Tiskanje ploče

Tic tac toe ploča je glavni zaslon igre. U, Python prozor za prikaz koristi se za prikaz ploče za igru.

Evo koraka koji će vam pomoći da napravite ploču za tic tac toe Python:

Python kod za 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)

Izlaz koda:

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

_ _ _

_ _ _

_ _ _

Igra Tic Tac Toe – dobitni raspored

Da bismo provjerili je li neki igrač pobijedio, moramo provjeriti dobitne kombinacije u recima, stupcima i dijagonalama. Ako postoji pobjednik, moramo pokazati pobjedničku poruku.

Redovi

  • Za redak funkcija uzima svaki uzastopni par stupaca i provjerava dobitnu kombinaciju.
  • Pobjeđuje onaj igrač koji prvi popuni redove. Drugi igrač tako gubi.
  • Ako je par uzastopnih stupaca isti, onda je očito da su svi elementi unutar tog retka isti.
  • Ako su dva različita ili red sadrži praznu ćeliju, još uvijek nema pobjednika.
  • Zatim implementiramo uvjete gubitka i dodajemo stanku. Ako je bilo koji od ovih uvjeta za gubitak točan, nismo imali pobjednika u označenom retku.
  • Izjava else daje istinit povrat koji pokazuje da postoji pobjednik.
  • Prekid izlazi iz ove petlje kako bi prešao na sljedeći red.

Kolumne

Za stupce ponavljamo istu funkciju kao i za retke. Provjeravamo je li igrač pobijedio nakon što svaki igrač odabere svoje mjesto.

Dijagonalni red pobjeđuje

Za lijevu dijagonalu zadatak postaje jednostavniji. Uvijek ćemo uspoređivati ​​ćelije u dijagonalama. Međutim, u slučaju da nema pobjednika, možemo prijeći na sljedeću uputu.

Igraj logičku igru

Ovo je glavna funkcija igre. Za to možemo koristiti varijable koje pohranjuju informacije.

  • Prva varijabla je veličina ploče pohranjena u "N". Igra će dobiti veličinu ploče nakon što od korisnika zatraži da unese broj.
  • Dakle, kada unesete vrijednost, ona se obrađuje.
  • Također stvaramo poruku o pogrešci koja prikazuje igračima kada se upiše bilo koji nevažeći broj.
  • Zatim možemo stvoriti dvije varijable koje popunjavaju "X" ili "O" kada je ćelija ispunjena.
  • Zatim pokažite igračima ploču za igru. Nakon ovoga, saznajte unos igrača.
  • Logika će zatim označenu ćeliju označiti kao ispunjenu i provjeriti pobjedu ili remi.
  • Ako nema pobjednika, igra traži da igra sljedeći igrač. Ako dođe do pobjede ili remija, igra može pitati korisnike žele li novu igru.

Zaključak

  • Tic tac toe je zabavna igra za dva igrača koju možete igrati postavljanjem jedinstvenog simbola u praznu ćeliju ploče.
  • Izrada igre tic tac toe u Python zahtijeva razumijevanje na početničkoj razini Python, uređivač teksta i Python instaliran.
  • Algoritam vam pomaže da sustavno napišete kod na bilo kojem jeziku.
  • Da biste kreirali igru, prvo nacrtajte ploču i napišite kod za određivanje rasporeda dobitaka i poraza
  • Možete testirati tic-tac-toe kod u Python igrajući ga prvi.