Hogyan készítsünk Tic Tac Toe játékot Python kódpéldával

Tic Tac Toe játék Python egy érdekes projekt, amit kipróbálhatsz. Ez egy klassz és szórakoztató projekt egy kihívás megoldására, és segíthet elsajátítani az alapvető fogalmakat Python. Egy szórakoztató tic tac toe játék létrehozása segít készségeid fejlesztésében.

Használhatsz jót Python szerkesztő, például a Pycharm vagy a parancssori felület.

Hogyan kell játszani a Tic Toc játékot?

A Tic tac toe játék egy egyszerű kétjátékos játék, amelyet bárki játszhat játéktábla nélkül. Ez azt jelenti, hogy két játékos különböző cellákat jelöl meg, amíg a játék véget nem ér, a győzelem vagy a döntetlen meg nem születik.

Így kell játszani a tic tac toe játékot.

Step 1) A tic tac toe játék üres cellákkal kezdődik egy négyzetrácsban. Ez a tic tac toe tábla.

Step 2) Mindkét játékos két szimbólum közül választhat, általában X vagy Os. A játékban bármilyen más egyedi szimbólumot használhatsz.

Step 3) Az aktuális játékos felváltva jegyzi ki a tic tac toe tábla celláit, amíg egy játékos ki nem tölt egy nyerő kombinációt. Ez egy teljes sor, oszlop vagy átló ugyanazzal a jellel.

Step 4) Döntetlen is lehetséges abban az esetben, ha az összes cella megtelik, és nincs látható győztes

követelmények

A Tic Tac Toe Python program kezdő szintű ismerete szükséges Python programozási nyelv. Tartalmazza a „for” ciklusok és iterációk megértését, valamint azt, hogy milyen if utasítást használunk Python.

Neked is kell Python és egy Python szövegszerkesztőt telepítve a számítógépére a tic-tac-toe befejezéséhez Python projekt. Mivel ez egy kezdő szintű tic tac-toe játék Python, nem lesz szüksége semmire Python könyvtár.

Szükséged lehet néhány hibakereső készségre, hogy megoldást találj a kódban lévő hibákra, és megfelelő ismeretekkel kell rendelkezned a játék összetevőiről is.

Tic Tac Toe Python Algoritmus

Kövesse ezeket a lépéseket egy tic tac toe játék létrehozásához Python programozási nyelv:

Step 1) Hozd létre a táblát a tic tac toe játék megkezdéséhez.

Step 2) Kérje meg a felhasználót, hogy döntse el a játéktábla méreteit.

Step 3) Véletlenszerűen válassza ki az első játékost.

Step 4) Tic tac toe játék kezdődik.

Step 5) A játékosok úgy játszanak, hogy kiválasztanak egy üres helyet a táblán.

Step 6) Töltse ki a kiválasztott üres helyet a játékos jelével.

Step 7) Határozza meg, hogy egy játékos nyer-e vagy döntetlent ér-e el a játékban a játék logikájával.

Step 8) Minden játék után jelenítse meg a játéktáblát, ha egyik játékos sem nyer, vagy döntetlent ér el a második játékossal.

Step 9) Döntetlen vagy nyerő üzenet megjelenítése.

Step 10) Fejezd be a tic tac toe játékot új játék indításának lehetőségeivel.

Tele Python kód a tic tac toe-hoz

# 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 Kód kimenet

A fenti forráskód futtatása után lent látható a 3 x 3-as tic tac toe tábla várható kimenete:

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

Teljes kód lebontás

létrehozása tic tac toe be Python egyszerű. Boncoljuk fel a különböző függvényeket bitenként, hogy megértsük, mi történik az egyes soroknál:

A tábla nyomtatása

A Tic tac toe tábla a játék fő kijelzője. In, Python kijelzőablak a játéktábla megjelenítésére szolgál.

Az alábbiakban bemutatjuk azokat a lépéseket, amelyek segítenek létrehozni egy táblát a tic tac toe-hoz Python:

Python kód a Tic Tac Toe számára

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)

Kód kimenet:

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

_ _ _

_ _ _

_ _ _

Tic Tac Toe Game – nyerő elrendezés

Annak ellenőrzéséhez, hogy valamelyik játékos nyert-e, ellenőriznünk kell a nyerő kombinációkat a sorok, oszlopok és átlók között. Ha van nyertes, meg kell mutatnunk a nyertes üzenetet.

Sorok

  • A sor esetében a függvény minden egymást követő oszloppárt vesz, és ellenőrzi a nyerő kombinációt.
  • Az a játékos nyer, aki először tölti ki a sorokat. Így a második játékos veszít.
  • Ha egy pár egymást követő oszlop azonos, akkor nyilvánvaló, hogy a sorban lévő összes elem azonos.
  • Ha ezek közül kettő különbözik, vagy a sor üres cellát tartalmaz, még mindig nincs győztes.
  • Ezután végrehajtjuk a vesztes feltételeket, és szünetet adunk hozzá. Ha bármelyik vesztes feltétel igaz, akkor nem volt nyertesünk a bejelölt sorban.
  • Az else állítás valódi hozamot ad, amely megmutatja, hogy van győztes.
  • A törés kitör ebből a hurokból, és továbblép a következő sorba.

Oszlopok

Az oszlopoknál ugyanazt a funkciót ismételjük meg, mint a soroknál. Ellenőrizzük, hogy egy játékos nyert-e, miután minden játékos kiválasztotta a helyét.

Az átlós sor nyer

A bal átlónál a feladat egyszerűbbé válik. Mindig az átlók celláit fogjuk összehasonlítani. Ha azonban nincs nyertes, folytathatjuk a következő utasítást.

Játék logika

Ez a játék fő funkciója. Ehhez használhatunk információkat tároló változókat.

  • Az első változó az „N”-ben tárolt táblaméret. A játék megkapja a tábla méretét, miután megkéri a felhasználót, hogy írjon be egy számot.
  • Tehát, amikor megadja az értéket, az feldolgozásra kerül.
  • Egy hibaüzenetet is készítünk, amely megmutatja a játékosoknak, ha érvénytelen számot írnak be.
  • Ezután létrehozhatunk két változót, amelyek kitöltik az „X”-et vagy az „O”-t, amikor egy cellát kitöltenek.
  • Ezután mutasd meg a játékosoknak a játéktáblát. Ezt követően kérje le a lejátszó bemeneti adatait.
  • A logika ezután kitöltöttnek jelöli a kiválasztott cellát, és ellenőrzi, hogy nyer-e vagy döntetlen van-e.
  • Ha nincs győztes, a játék felkéri a következő játékost, hogy játsszon. Ha győzelem vagy döntetlen van, a játék megkérdezheti a felhasználókat, hogy szeretnének-e új játékot.

Következtetés

  • A Tic tac toe egy szórakoztató kétjátékos játék, amelyet egyedi szimbólum elhelyezésével lehet játszani egy üres tábla cellában.
  • Tic tac toe játék létrehozása Python kezdő szintű ismerete szükséges Python, szövegszerkesztő és Python telepítve.
  • Az algoritmus segít szisztematikusan megírni a kódot bármilyen nyelven.
  • A játék létrehozásához először rajzolja meg a táblát, és írjon kódot a nyerési és vesztes megállapodások meghatározásához
  • Kipróbálhatja a tic-tac-toe kódot Python úgy, hogy először játssza le.