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

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

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

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

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

Δείτε πώς να παίξετε το παιχνίδι τικ τακ.

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

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

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

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

απαιτήσεις

Κτίριο του tic tac toe Python σχέδιο απαιτεί κατανόηση σε επίπεδο αρχαρίου Python γλώσσα προγραμματισμού. Περιλαμβάνει την κατανόηση των βρόχων και των επαναλήψεων «για» και τη χρήση της εντολής if Python.

Πρέπει επίσης να έχετε Python και σε έναν Python πρόγραμμα επεξεργασίας κειμένου εγκατεστημένο στον υπολογιστή σας για να ολοκληρώσετε το tic-tac-toe Python σχέδιο. Καθώς πρόκειται για ένα παιχνίδι tic tac-toe σε επίπεδο αρχαρίου Python, δεν θα χρειαστείτε κανένα Python βιβλιοθήκη.

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

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

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

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

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

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

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

Βήμα 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 Έξοδος κώδικα

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

Πλήρης ανάλυση κώδικα

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

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

Ο πίνακας Tic tac toe είναι η κύρια οθόνη του παιχνιδιού. Σε, Python Το παράθυρο προβολής χρησιμοποιείται για την εμφάνιση του πίνακα παιχνιδιού.

Ακολουθούν τα βήματα που σας βοηθούν να δημιουργήσετε έναν πίνακα για το τικ 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)

Έξοδος κώδικα:

------------
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 είναι ένα διασκεδαστικό παιχνίδι για δύο παίκτες, τοποθετώντας ένα μοναδικό σύμβολο σε ένα άδειο κελί του πίνακα.
  • Δημιουργία παιχνιδιού τικ τακ μέσα Python απαιτεί κατανόηση σε επίπεδο αρχαρίου Python, ένα πρόγραμμα επεξεργασίας κειμένου και Python εγκατασταθεί.
  • Ο αλγόριθμος σας βοηθά να γράφετε συστηματικά τον κώδικα σε οποιαδήποτε γλώσσα.
  • Για να δημιουργήσετε το παιχνίδι, πρώτα, σχεδιάστε τον πίνακα και γράψτε τον κώδικα για να καθορίσετε τις ρυθμίσεις για νίκη και ήττα
  • Μπορείτε να δοκιμάσετε τον κωδικό tic-tac-toe στο Python παίζοντας πρώτα.