Hoe je een Tic Tac Toe-spel maakt Python with Code Voorbeeld

Tic Tac Toe-spel binnen Python is een interessant project dat je kunt proberen. Het is een cool en leuk project om een โ€‹โ€‹uitdaging op te lossen en kan je helpen om basisconcepten onder de knie te krijgen in Python. Door een leuk boter-kaas-en-eieren-spel te maken, kun je je vaardigheden vergroten.

Je kunt een goed gebruiken Python redacteur zoals Pycharm of de opdrachtregelinterface.

Hoe speel je Tic Toc-spel?

Het boter-kaas-en-eieren-spel is een eenvoudig spel voor twee spelers dat iedereen kan spelen zonder dat er een spelbord nodig is. Hierbij markeren twee spelers verschillende cellen totdat het spel eindigt, waarbij een overwinning of een gelijkspel wordt behaald.

Hier leest u hoe u het boter-kaas-en-eieren-spel speelt.

Stap 1) Het boter-kaas-en-eieren-spel begint met lege cellen in een vierkant raster. Dit is het boter-kaas-en-eierenbord.

Stap 2) Beide spelers kiezen uit twee symbolen, meestal Xs of Os. Je kunt elk ander uniek symbool in het spel gebruiken.

Stap 3) De huidige speler markeert om de beurt door de cellen van het boter-kaas-en-eierenbord in te vullen totdat een speler een winnende combinatie heeft ingevuld. Dat is een hele rij, kolom of diagonaal met hetzelfde teken.

Stap 4) Een gelijkspel is ook mogelijk als alle cellen vol zijn en er geen duidelijke winnaar is

Voorwaarden

Bouwen aan de tic tac toe Python project vereist een begrip op beginnersniveau Python programmeertaal. Het omvat het begrijpen van "for" -lussen en iteraties en waarin een if-instructie wordt gebruikt Python.

Je moet ook hebben Python en Python teksteditor op uw computer geรฏnstalleerd om de boter-kaas-en-eieren te voltooien Python project. Omdat dit een boter-kaas-en-eieren-spel op beginnersniveau is Python, je hebt er geen nodig Python bibliotheek.

Mogelijk heb je wat debugging-vaardigheden nodig om oplossingen voor bugs in je code te vinden en moet je ook een goed begrip hebben van de spelcomponenten.

Tic Tac Toe Python Algoritme

Volg deze stappen om een โ€‹โ€‹boter-kaas-en-eierenspel te maken Python programmeertaal:

Stap 1) Maak het bord om het boter-kaas-en-eieren-spel te beginnen.

Stap 2) Vraag de gebruiker om de afmetingen van het speelbord te bepalen.

Stap 3) Kies willekeurig de eerste speler.

Stap 4) Het boter-kaas-en-eieren-spel begint.

Stap 5) Spelers spelen door een lege plek op het bord te selecteren.

Stap 6) Vul de lege geselecteerde plek met het spelersteken.

Stap 7) Bepaal of een speler wint of een gelijkspel krijgt in het spel met behulp van de spellogica.

Stap 8) Laat het speelbord na elk spel zien als geen enkele speler wint of een gelijkspel krijgt met de tweede speler.

Stap 9) Geef respectievelijk een gelijkspel- of winstbericht weer.

Stap 10) Beรซindig het boter-kaas-en-eieren-spel met opties om een โ€‹โ€‹nieuw spel te starten.

Vol Python code voor boter-kaas-en-eieren

# 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 uitvoer

Zodra u de bovenstaande broncode hebt uitgevoerd, vindt u hieronder de verwachte uitvoer voor een 3 x 3 boter-kaas-en-eierenbord:

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

Vol Code Storing

Wij creรซren boter-kaas-en-eieren naar binnen Python is eenvoudig. Laten we de verschillende functies in bits ontleden om te begrijpen wat er op elke regel gebeurt:

Het bord afdrukken

Het Tic Tac Toe-bord is het belangrijkste speldisplay. In, Python weergavevenster wordt gebruikt om het speelbord te tonen.

Hier zijn de stappen die u helpen bij het maken van een bord voor boter, kaas en eieren Python:

Python code voor 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 output:

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

_ _ _

_ _ _

_ _ _

Tic Tac Toe-spel โ€“ winnend arrangement

Om te controleren of een speler heeft gewonnen, moeten we de winnende combinaties over de rijen, kolommen en diagonalen controleren. Als er een winnaar is, moeten we een winnende boodschap tonen.

Rijen

  • Voor de rij neemt de functie elk opeenvolgend paar kolommen en controleert op een winnende combinatie.
  • De eerste speler die de rijen vult, wint. De tweede speler verliest dus.
  • Als een paar opeenvolgende kolommen hetzelfde zijn, is het duidelijk dat alle elementen binnen die rij hetzelfde zijn.
  • Als er twee verschillend zijn of als de rij een lege cel bevat, is er nog steeds geen winnaar.
  • Vervolgens implementeren we verliezende voorwaarden en voegen we een pauze toe. Als een van deze verliezende omstandigheden waar is, hadden we geen winnaar in de aangevinkte rij.
  • De else-verklaring geeft een echt rendement om aan te tonen dat er een winnaar is.
  • De pauze breekt uit deze lus om door te gaan naar de volgende rij.

columns

Voor de kolommen herhalen we dezelfde functie als voor rijen. We controleren of een speler heeft gewonnen nadat elke speler zijn plaats heeft gekozen.

Diagonale rij wint

Voor de linkerdiagonaal wordt de taak eenvoudiger. We gaan altijd de cellen in de diagonalen vergelijken. Als er echter geen winnaar is, kunnen we doorgaan naar de volgende instructie.

Speel spellogica

Dit is de hoofdfunctie van het spel. Hiervoor kunnen we variabelen gebruiken die informatie opslaan.

  • De eerste variabele is de bordgrootte opgeslagen in โ€œNโ€. Het spel krijgt de bordgrootte nadat de gebruiker is gevraagd een getal in te voeren.
  • Wanneer u de waarde invoert, wordt deze dus verwerkt.
  • We creรซren ook een foutmelding om de spelers te laten zien wanneer een ongeldig nummer wordt getypt.
  • We kunnen dan twee variabelen maken die een โ€œXโ€ of een โ€œOโ€ invullen wanneer een cel gevuld is.
  • Laat de spelers vervolgens het speelbord zien. Hierna krijgt u de input van de speler.
  • De logica markeert vervolgens de geselecteerde cel als gevuld en controleert op winst of gelijkspel.
  • Als er geen winnaar is, vraagt โ€‹โ€‹het spel de volgende speler om te spelen. Als er sprake is van een overwinning of een gelijkspel, kan het spel de gebruikers vragen of ze een nieuw spel willen.

Conclusie

  • Tic Tac Toe is een leuk spel voor twee spelers door een uniek symbool in een lege bordcel te plaatsen.
  • Een boter-kaas-en-eieren-spel maken Python vereist een begrip op beginnersniveau Python, een teksteditor, en Python geรฏnstalleerd.
  • Het algoritme helpt u de code systematisch in elke taal te schrijven.
  • Om het spel te maken, tekent u eerst het bord en schrijft u code om de win- en verliesregelingen te bepalen
  • Je kunt de boter-kaas-en-eieren-code testen in Python door het eerst af te spelen.

Vat dit bericht samen met: