Kuidas teha Tic Tac Toe mängu Python koos Code Näide

⚡ Nutikas kokkuvõte

Trips-traps-trull sisse Python on algajatele sobiv projekt, mis taasloob klassikalise kahe mängijaga ruudustikumängu. Selle loomine tugevdab põhioskusi, nagu tsüklid, tingimuslaused, loendid, funktsioonid ja rekursioon, kontrollides samal ajal ridu, veerge ja diagonaale võitja leidmiseks.

  • 🎮 Mäng: Kaks mängijat märgivad ruudukujulisel ruudustikus X ja O, kuni üks mängija täidab rea, veeru või diagonaali.
  • 🧩 Põhiloogika: Pesastatud loendid salvestavad mängulauda, ​​samas kui tsüklid ja tingimuslaused juhivad käike ning tuvastavad võidu või viigi.
  • 🏗️ Ehitamise sammud: Loo mängulaud, vali esimene mängija, võta sisend, märgi lahtrid ja seejärel kontrolli iga vooru võitjat.
  • 🔁 Kordus: Rekursiivne play() kutse taaskäivitab matši ja sisendi valideerimine blokeerib hõivatud või vahemikust väljas olevad käigud.
  • 🤖 Tehisintellekti olulisus: Sama tahvel on ideaalne mänguväljak minimax-algoritmile ja tugevdusõppe agentidele.
  • 🛠️ Vahendid: Ainult Python ja toimetaja, näiteks PyCharm on vajalikud; väliseid teeke pole vaja.

Tic Tac Toe mäng sisse Python

Tic Tac Toe mäng sisse Python on huvitav projekt, mida võid proovida. See on lahe ja lõbus väljakutse lahendamise projekt, mis aitab sul omandada põhimõisteid. PythonLõbusa trips-traps-trulli mängu loomine aitab sul oma oskusi arendada.

Võite kasutada head Python toimetaja, näiteks PyCharm või käsurealiidese kaudu.

Kuidas mängida trips-traps-traps-traps-traps-trulli mängu?

Trips-traps-trull on lihtne kahe mängijaga mäng, mida igaüks saab mängida ilma mängulauata. See hõlmab kahe mängijaga erinevate lahtrite märgistamist, kuni mäng lõpeb võidu või viigiga.

Siin on, kuidas mängida trips-traps-traps-traps-traps-traps-trull mängu.

Step 1) Trips-traps-trulli mäng algab ruudukujulises võrgus tühjade lahtritega. See on trips-traps-trulli mängulaud.

Step 2) Mõlemad mängijad valivad kahe sümboli vahel, tavaliselt X või Os. Mängus saab kasutada mis tahes muud ainulaadset sümbolit.

Step 3) Praegune mängija märgib kordamööda trips-traps-trulli laua lahtreid täites, kuni mängija saab võidukombinatsiooni. See on terve rida, veerg või diagonaal sama märgiga.

Step 4) Viik on võimalik ka juhul, kui kõik lahtrid on täis ja võitjat pole selget.

Nõuded

Trips-traps-trulli ehitamine Python projekt nõuab algaja tasemel arusaamist Python programmeerimiskeeles. See hõlmab „for”-tsüklite ja iteratsioonide mõistmist ning seda, milleks if-lauset kasutatakse programmeerimiskeeles. Python.

Teil peab ka olema Python ja Python arvutisse installitud tekstiredaktor, et täita trips-traps-trulli ülesanne Python projekt. Kuna see on algajate tasemel trips-traps-traps-trulli mäng Python, siis ei ole vaja ühtegi Python raamatukogu.

Koodi vigadele lahenduste leidmiseks võib vaja minna mõningaid silumisoskusi ja teil peaks olema ka piisav arusaam mängu komponentidest.

Tic Tac Toe Python Algoritm

Trips-traps-trulli mängu loomiseks järgi neid samme. Python programmeerimiskeel:

Step 1) Loo laud, et alustada trips-traps-trulli mängu.

Step 2) Paluge kasutajal otsustada mängulaua mõõtmete üle.

Step 3) Valige juhuslikult esimene mängija.

Step 4) Tic Tac Toe mäng algab.

Step 5) Mängijad valivad mängulaual tühja koha.

Step 6) Täitke tühi valitud koht mängija märgiga.

Step 7) Tehke mänguloogika abil kindlaks, kas mängija võidab või saavutab viigi.

Step 8) Kuvage mängulaud pärast iga mängu, kui ükski mängija ei võida või ei viigi teise mängijaga.

Step 9) Kuvage vastavalt viigi- või võidusõnum.

Step 10) Lõpeta trips-traps-trulli mäng uue mängu alustamise võimalustega.

Täis Python kood tic tac toe jaoks

# 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 väljund

Kui olete ülaltoodud lähtekoodi käivitanud, on allpool oodatav väljund 3 x 3 trips-traps-traps-traps-tahvli jaoks:

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

Täis Code Lagunema

loomine Trips-traps-trull sisse Python on lihtne. Vaatleme erinevaid funktsioone bittide kaupa, et mõista, mis iga rea ​​puhul toimub:

Tahvli trükkimine

Trips-tra ... Python, kasutatakse mängulaua kuvamiseks vitriinakent.

Siin on sammud, mis aitavad teil luua trips-traps-trulli mängulaua. Python:

Python kood Tic Tac Toe jaoks

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 väljund:

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

_ _ _

_ _ _

_ _ _

Tic Tac Toe Game – võidukorraldus

Et kontrollida, kas mõni mängija võitis, peame kontrollima võidukombinatsioone ridade, veergude ja diagonaalide lõikes. Kui on võitja, peame näitama võidusõnumit.

Read

  • Rea puhul võtab funktsioon iga järjestikuse veergude paari ja kontrollib võidukombinatsiooni.
  • Esimene mängija, kes read täidab, võidab. Seega kaotab teine ​​mängija.
  • Kui kaks järjestikust veergu on samad, siis on ilmne, et kõik selle rea elemendid on samad.
  • Kui kaks neist on erinevad või rida sisaldab tühja lahtrit, pole võitjat ikka veel.
  • Seejärel rakendame kaotamistingimused ja lisame pausi. Kui mõni neist kaotustingimustest vastab tõele, ei olnud meil märgitud real võitjat.
  • Muu väide annab tõelise tulu, mis näitab, et võitja on olemas.
  • Järgmisele reale liikumiseks katkeb paus sellest ahelast välja.

Veerud

Veergude puhul kordame sama funktsiooni nagu ridade puhul. Kontrollime, kas mängija võitis pärast seda, kui iga mängija on oma koha valinud.

Diagonaalrida võidab

Vasaku diagonaali puhul muutub ülesanne lihtsamaks. Me võrdleme alati diagonaalides olevaid lahtreid. Kui võitjat aga ei leita, võime liikuda järgmise juhise juurde.

Mängi mänguloogikat

See on mängu peamine funktsioon. Selleks saame kasutada muutujaid, mis salvestavad teavet.

  • Esimene muutuja on N-ga salvestatud tahvli suurus. Mäng saab laua suuruse pärast seda, kui kasutaja palub numbri sisestada.
  • Seega, kui sisestate väärtuse, töödeldakse seda.
  • Samuti loome veateate, et näidata mängijatele, kui sisestatakse vigane number.
  • Seejärel saame luua kaks muutujat, mis täidavad lahtri täitmisel tähe "X" või "O".
  • Seejärel näidake mängijatele mängulauda. Pärast seda hankige mängija sisend.
  • Seejärel märgib loogika valitud lahtri täidetuks ja kontrollib võitu või viiki.
  • Kui võitjat pole, palub mäng mängida järgmisel mängijal. Võidu või viigi korral saab mäng kasutajatelt küsida, kas nad soovivad uut mängu.

KKK

Jah. Trips-trull on klassikaline algajate projekt, mis muudab tsüklid, tingimuslaused ja funktsioonid toimivaks mänguks. See annab enesekindlust, kinnistab põhisüntaksit ja valmistab sind ette suuremateks projektideks ilma väliste teekideta.

See tugevdab pesastatud loendeid mängulaual, for- ja while-tsükleid käikude jaoks, if-lauseid võidukontrollide jaoks, funktsioone struktuuri jaoks ja rekursiooni taaskäivitamiseks. Need põhitõed on otse ülekantavad ka keerukamatele mängudele. Python programme.

Jah. Lisaks konsooliversioonile lisavad sellised teegid nagu Tkinter ja Pygame klõpsatavaid nuppe, joonistatud ruudustiku ja hiire sisendi. Mänguloogika jääb samaks; muutuvad ainult kuvamis- ja sisendkihid.

Trips-traps-traps-trull on lahendatud mäng. Kui mõlemad mängijad mängivad optimaalselt, saab iga ohu blokeerida, seega ei saa keegi võitu sundida. Seetõttu lõpeb veatu matš, olgu see siis inimene või arvuti, alati viigiga.

Algajal kulub konsooli põhiversiooniga harjutamiseks üks kuni kolm tundi, kui tsüklid ja tingimuslaused on tuttavad. Sisendi valideerimise, skaleeritava tahvli või graafilise liidese lisamine pikendab projekti nädalavahetuse pikkuse harjutamise peale.

Asendage üks mängija minimax-funktsiooniga. See uurib rekursiivselt kõiki võimalikke käike, lugedes võite, kaotusi ja viike, ning valib seejärel käigu, millel on parim garanteeritud tulemus. Väikesel laual muudab see arvuti võitmise võimatuks.

Jah. Tugevdusõppe agendid, näiteks Q-õpe, täiustuvad tuhandete mängude mängimise ja võidukäikude premeerimise teel. Lauad salvestatakse massiividena koos tuim, lastes mudelil õppida peaaegu optimaalset strateegiat ilma kõvakodeeritud reegliteta.

Jah. GitHub Copilot ja sarnased tehisintellekti assistendid saavad lühikese käsurea abil laua struktureerida, pöördeid teha ja kontrolle võita. Käsitle väljundit esimese mustandina ja testi seejärel ise ääremärke, nagu viigid ja sobimatud käigud.

Võta see postitus kokku järgmiselt: