Πώς να φτιάξετε ένα παιχνίδι Tic Tac Toe στο Python μαζί σου, Code Παράδειγμα

⚡ Έξυπνη Σύνοψη

Τρίλιζα Python είναι ένα φιλικό προς αρχάριους έργο που αναδημιουργεί το κλασικό παιχνίδι πλέγματος δύο παικτών. Η κατασκευή του ενισχύει βασικές δεξιότητες όπως βρόχους, υποθετικές εκφράσεις, λίστες, συναρτήσεις και αναδρομή, ενώ ελέγχει γραμμές, στήλες και διαγώνιους για έναν νικητή.

  • 🎮 Gameplay: Δύο παίκτες σημειώνουν X και O σε ένα τετράγωνο πλέγμα μέχρι ο ένας να ολοκληρώσει μια σειρά, στήλη ή διαγώνιο.
  • 🧩 Βασική λογική: Οι ένθετες λίστες αποθηκεύουν τον πίνακα, ενώ οι βρόχοι και οι υποθετικοί όροι οδηγούν σε γύρους και ανιχνεύουν μια νίκη ή ισοπαλία.
  • Βήματα κατασκευής: Δημιουργήστε το ταμπλό, επιλέξτε τον πρώτο παίκτη, λάβετε πληροφορίες, σημειώστε τα κελιά και, στη συνέχεια, ελέγξτε για έναν νικητή σε κάθε γύρο.
  • 🔁 Επανάληψη: Μια αναδρομική κλήση play() επανεκκινεί τον αγώνα και η επικύρωση εισόδου μπλοκάρει κινήσεις κατειλημμένες ή εκτός εμβέλειας.
  • 🤖 Συνάφεια με την Τεχνητή Νοημοσύνη: Η ίδια πλακέτα είναι μια ιδανική παιδική χαρά για τον αλγόριθμο minimax και τους πράκτορες ενισχυτικής μάθησης.
  • Εργαλεία: Μόνο Python και ένας συντάκτης όπως ο PyCharm απαιτούνται· δεν απαιτούνται εξωτερικές βιβλιοθήκες.

Tic Tac Toe Game in Python

Tic Tac Toe Game in Python είναι ένα ενδιαφέρον έργο που μπορείτε να δοκιμάσετε. Είναι ένα ωραίο και διασκεδαστικό έργο επίλυσης μιας πρόκλησης και μπορεί να σας βοηθήσει να κατακτήσετε βασικές έννοιες στο PythonΗ δημιουργία ενός διασκεδαστικού παιχνιδιού Tic Tac Toe σας βοηθά να αναπτύξετε τις δεξιότητές σας.

Μπορείτε να χρησιμοποιήσετε ένα καλό Python συντάκτης όπως PyCharm ή τη διεπαφή γραμμής εντολών.

Πώς να παίξετε το παιχνίδι Tic Tac Toe;

Το Tic Tac Toe είναι ένα απλό παιχνίδι για δύο παίκτες που μπορεί να παίξει ο καθένας χωρίς να χρειάζεται ταμπλό. Περιλαμβάνει δύο παίκτες που σημειώνουν διαφορετικά κελιά μέχρι το παιχνίδι να τελειώσει με νίκη ή ισοπαλία.

Δείτε πώς μπορείτε να παίξετε το παιχνίδι Tic Tac Toe.

Βήμα 1) Το παιχνίδι Tic Tac Toe ξεκινά με άδεια κελιά σε ένα τετράγωνο πλέγμα. Αυτό είναι το ταμπλό Tic Tac Toe.

Βήμα 2) Και οι δύο παίκτες επιλέγουν από δύο σύμβολα, συνήθως Xs ή Os. Μπορείτε να χρησιμοποιήσετε οποιοδήποτε άλλο μοναδικό σύμβολο στο παιχνίδι.

Βήμα 3) Ο τρέχων παίκτης βαθμολογεί με τη σειρά του συμπληρώνοντας τα κελιά του ταμπλό Tic Tac Toe μέχρι να συμπληρώσει ένας παίκτης έναν νικηφόρο συνδυασμό. Δηλαδή μια ολόκληρη σειρά, στήλη ή διαγώνιο με το ίδιο πρόσημο.

Βήμα 4) Μια ισοπαλία είναι επίσης πιθανή σε περίπτωση που όλα τα κελιά είναι γεμάτα χωρίς εμφανή νικητή.

απαιτήσεις

Κατασκευή του Tic Tac Toe Python το έργο απαιτεί κατανόηση σε επίπεδο αρχαρίου Python γλώσσα προγραμματισμού. Περιλαμβάνει την κατανόηση των βρόχων "for" και των επαναλήψεων και για ποιο σκοπό χρησιμοποιείται μια εντολή if σε Python.

Πρέπει επίσης να έχετε Python και σε έναν Python πρόγραμμα επεξεργασίας κειμένου που είναι εγκατεστημένο στον υπολογιστή σας για να ολοκληρώσετε το Tic Tac Toe Python έργο. Καθώς αυτό είναι ένα παιχνίδι Tic Tac Toe για αρχάριους στο Python, δεν θα χρειαστείτε καμία Python βιβλιοθήκη.

Μπορεί να χρειαστείτε κάποιες δεξιότητες εντοπισμού σφαλμάτων (debugging) για να βρείτε λύσεις σε σφάλματα στον κώδικά σας και θα πρέπει επίσης να έχετε επαρκή κατανόηση των στοιχείων του παιχνιδιού.

Tic Tac Toe Python Αλγόριθμος

Ακολουθήστε αυτά τα βήματα για να δημιουργήσετε ένα παιχνίδι Tic Tac Toe στο Python γλώσσα προγραμματισμού:

Βήμα 1) Δημιουργήστε το ταμπλό για να ξεκινήσετε το παιχνίδι Tic Tac Toe.

Βήμα 2) Ζητήστε από τον χρήστη να αποφασίσει για τις διαστάσεις του πίνακα παιχνιδιού.

Βήμα 3) Επιλέξτε τυχαία τον πρώτο παίκτη.

Βήμα 4) Το παιχνίδι Tic Tac Toe ξεκινά.

Βήμα 5) Οι παίκτες παίζουν επιλέγοντας ένα κενό σημείο στο ταμπλό.

Βήμα 6) Συμπληρώστε το κενό επιλεγμένο σημείο με το σύμβολο του παίκτη.

Βήμα 7) Προσδιορίστε εάν ένας παίκτης κερδίζει ή παίρνει ισοπαλία στο παιχνίδι χρησιμοποιώντας τη λογική του παιχνιδιού.

Βήμα 8) Εμφανίστε τον πίνακα παιχνιδιού μετά από κάθε παιχνίδι, εάν κανένας παίκτης δεν κερδίσει ή δεν πάρει ισοπαλία με τον δεύτερο παίκτη.

Βήμα 9) Εμφανίστε ένα μήνυμα ισοπαλίας ή νίκης, αντίστοιχα.

Βήμα 10) Τερματίστε το παιχνίδι Tic Tac Toe με επιλογές για να ξεκινήσετε ένα νέο παιχνίδι.

Πλήρης Python κωδικός για το τικ τακ

# 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 παραγωγή

Μόλις εκτελέσετε τον παραπάνω πηγαίο κώδικα, παρακάτω είναι η αναμενόμενη έξοδος για μια πλακέτα 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):

Πλήρης Code Ανάλυση

δημιουργία Τρίλιζα Python είναι απλό. Ας αναλύσουμε τις διαφορετικές συναρτήσεις σε bits για να καταλάβουμε τι συμβαίνει για κάθε γραμμή:

Εκτύπωση του πίνακα

Το ταμπλό Tic Tac Toe είναι η κύρια οθόνη παιχνιδιού. Python, χρησιμοποιείται ένα παράθυρο εμφάνισης για την εμφάνιση του ταμπλό του παιχνιδιού.

Ακολουθούν τα βήματα που θα σας βοηθήσουν να δημιουργήσετε έναν πίνακα για το Tic Tac Toe στο Python:

Python κωδικός για 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 παραγωγή:

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

_ _ _

_ _ _

_ _ _

Παιχνίδι Tic Tac Toe – νικηφόρα διάταξη

Για να ελέγξουμε αν κάποιος παίκτης κέρδισε, πρέπει να ελέγξουμε τους νικηφόρους συνδυασμούς στις γραμμές, τις στήλες και τις διαγώνιες. Εάν υπάρχει νικητής, πρέπει να δείξουμε ένα νικητήριο μήνυμα.

Γραμμές

  • Για τη γραμμή, η συνάρτηση παίρνει κάθε διαδοχικό ζεύγος στηλών και ελέγχει για έναν νικητήριο συνδυασμό.
  • Ο πρώτος παίκτης που γεμίζει τις σειρές κερδίζει. Ο δεύτερος παίκτης χάνει έτσι.
  • Αν ένα ζεύγος διαδοχικών στηλών είναι το ίδιο, τότε είναι προφανές ότι όλα τα στοιχεία μέσα σε αυτήν τη γραμμή είναι τα ίδια.
  • Εάν δύο από αυτά είναι διαφορετικά ή η σειρά περιέχει ένα κενό κελί, εξακολουθεί να μην υπάρχει νικητής.
  • Στη συνέχεια εφαρμόζουμε συνθήκες απώλειας και προσθέτουμε ένα διάλειμμα. Εάν ισχύει κάποια από αυτές τις συνθήκες ήττας, δεν είχαμε νικητή στην επιλεγμένη σειρά.
  • Η δήλωση else δίνει μια αληθινή επιστροφή για να δείξει ότι υπάρχει νικητής.
  • Το διάλειμμα ξεφεύγει από αυτόν τον βρόχο για να προχωρήσετε στην επόμενη σειρά.

Στήλες

Για τις στήλες, επαναλαμβάνουμε την ίδια λειτουργία όπως στις σειρές. Ελέγχουμε αν κάποιος παίκτης κέρδισε αφού ο κάθε παίκτης επιλέξει τη θέση του.

Η διαγώνια σειρά κερδίζει

Για την αριστερή διαγώνιο, η εργασία γίνεται απλούστερη. Θα συγκρίνουμε πάντα τα κελιά στις διαγώνιες. Ωστόσο, σε περίπτωση που δεν υπάρχει νικητής, μπορούμε να προχωρήσουμε στην επόμενη εντολή.

Παίξτε τη λογική του παιχνιδιού

Αυτή είναι η κύρια λειτουργία του παιχνιδιού. Για αυτό μπορούμε να χρησιμοποιήσουμε μεταβλητές που αποθηκεύουν πληροφορίες.

  • Η πρώτη μεταβλητή είναι το μέγεθος του πίνακα που είναι αποθηκευμένο στο "N". Το παιχνίδι θα πάρει το μέγεθος του πίνακα αφού ζητήσει από τον χρήστη να εισαγάγει έναν αριθμό.
  • Έτσι, όταν εισάγετε την τιμή, υποβάλλεται σε επεξεργασία.
  • Δημιουργούμε επίσης ένα μήνυμα σφάλματος για να δείξουμε στους παίκτες όταν πληκτρολογείται κάποιος μη έγκυρος αριθμός.
  • Μπορούμε στη συνέχεια να δημιουργήσουμε δύο μεταβλητές που συμπληρώνουν ένα «Χ» ή ένα «Ο» όταν γεμίζει ένα κελί.
  • Στη συνέχεια δείξτε στους παίκτες τον πίνακα παιχνιδιού. Μετά από αυτό, λάβετε τη συμβολή του παίκτη.
  • Στη συνέχεια, η λογική θα επισημάνει το επιλεγμένο κελί ως γεμάτο και θα ελέγξει για νίκη ή ισοπαλία.
  • Εάν δεν υπάρχει νικητής, το παιχνίδι ζητά από τον επόμενο παίκτη να παίξει. Εάν υπάρξει νίκη ή ισοπαλία, το παιχνίδι μπορεί να ρωτήσει τους χρήστες εάν θέλουν ένα νέο παιχνίδι.

Συχνές Ερωτήσεις

Ναι. Το Tic Tac Toe είναι ένα κλασικό έργο για αρχάριους που μετατρέπει βρόχους, υποθετικές εκφράσεις και συναρτήσεις σε ένα λειτουργικό παιχνίδι. Ενισχύει την αυτοπεποίθηση, ενισχύει τη βασική σύνταξη και σας προετοιμάζει για μεγαλύτερα έργα χωρίς να χρειάζεστε εξωτερικές βιβλιοθήκες.

Ενισχύει τις ένθετες λίστες για τον πίνακα, τους βρόχους for και τους βρόχους while για τους γύρους, τις εντολές if για τους ελέγχους win, τις συναρτήσεις για τη δομή και την αναδρομή για την επανεκκίνηση. Αυτές οι βασικές αρχές μεταφέρονται απευθείας σε πιο προηγμένες. Python προγράμματα.

Ναι. Πέρα από την έκδοση για κονσόλα, βιβλιοθήκες όπως οι Tkinter και Pygame προσθέτουν κουμπιά με δυνατότητα κλικ, ένα σχεδιασμένο πλέγμα και στοιχεία εισόδου με το ποντίκι. Η λογική του παιχνιδιού παραμένει η ίδια. Μόνο τα επίπεδα εμφάνισης και εισόδου αλλάζουν.

Το Tic Tac Toe είναι ένα λυμένο παιχνίδι. Όταν και οι δύο παίκτες παίζουν άριστα, κάθε απειλή μπορεί να μπλοκαριστεί, επομένως κανείς δεν μπορεί να επιβάλει τη νίκη. Γι' αυτό ένας άψογος αγώνας, άνθρωπος ή υπολογιστής, τελειώνει πάντα ισόπαλος.

Μια βασική έκδοση κονσόλας χρειάζεται έναν αρχάριο μία έως τρεις ώρες μέχρι να εξοικειωθεί με τους βρόχους και τις υποθετικές εντολές. Η προσθήκη επικύρωσης εισόδου, ενός κλιμακωτού πίνακα ή μιας γραφικής διεπαφής επεκτείνει το έργο σε ένα Σαββατοκύριακο εξάσκησης.

Αντικαταστήστε έναν παίκτη με μια συνάρτηση minimax. Εξερευνά αναδρομικά κάθε πιθανή κίνηση, σημειώνοντας νίκες, ήττες και ισοπαλίες και στη συνέχεια επιλέγει την κίνηση με το καλύτερο εγγυημένο αποτέλεσμα. Σε ένα μικρό ταμπλό, αυτό καθιστά αδύνατο να νικήσεις τον υπολογιστή.

Ναι. Οι πράκτορες ενισχυτικής μάθησης, όπως το Q-learning, βελτιώνονται παίζοντας χιλιάδες παιχνίδια και ανταμείβοντας νικηφόρες κινήσεις. Οι πίνακες αποθηκεύονται ως πίνακες με μουδιασμένος, επιτρέποντας στο μοντέλο να μάθει μια σχεδόν βέλτιστη στρατηγική χωρίς αυστηρά κωδικοποιημένους κανόνες.

Ναι. Το GitHub Copilot και παρόμοιοι βοηθοί τεχνητής νοημοσύνης μπορούν να δημιουργήσουν ένα πλαίσιο, να κάνουν επανάληψη και να κερδίσουν ελέγχους από μια σύντομη προτροπή. Αντιμετωπίστε την έξοδο ως πρώτο προσχέδιο και, στη συνέχεια, δοκιμάστε μόνοι σας περιπτώσεις ακμής, όπως ισοπαλίες και άκυρες κινήσεις.

Συνοψίστε αυτήν την ανάρτηση με: