วิธีสร้างเกม Tic Tac Toe ใน Python พร้อมตัวอย่างโค้ด

เกม Tic Tac Toe ใน Python เป็นโครงการที่น่าสนใจที่คุณสามารถลองทำได้ เป็นโครงการที่สนุกและเจ๋งเกี่ยวกับการแก้ปัญหาและสามารถช่วยให้คุณเชี่ยวชาญแนวคิดพื้นฐานได้ Python- การสร้างเกมโอเอกซ์แสนสนุกจะช่วยให้คุณพัฒนาทักษะได้

คุณสามารถใช้สิ่งที่ดี Python โปรแกรมแก้ไขเช่น Pycharm หรืออินเทอร์เฟซบรรทัดคำสั่ง

วิธีเล่นเกม Tic Toc?

เกม Tic Tac Toe เป็นเกมเล่นสองคนง่ายๆ ที่ใครๆ ก็สามารถเล่นได้โดยไม่ต้องใช้กระดานเกม มันเกี่ยวข้องกับผู้เล่นสองคนทำเครื่องหมายเซลล์ที่แตกต่างกันจนกว่าเกมจะจบลงไม่ว่าจะชนะหรือเสมอกัน

ต่อไปนี้เป็นวิธีการเล่นเกม Tic Tac Toe

ขั้นตอน 1) เกมโอเอกซ์เริ่มต้นด้วยเซลล์ว่างในตารางสี่เหลี่ยม นี่คือกระดานทิกแทคโท

ขั้นตอน 2) ผู้เล่นทั้งสองเลือกจากสองสัญลักษณ์ โดยปกติคือ Xs หรือ Os คุณสามารถใช้สัญลักษณ์พิเศษอื่น ๆ ในเกมได้

ขั้นตอน 3) ผู้เล่นคนปัจจุบันจะสลับกันโดยการกรอกเซลล์ของกระดานโอเอกซ์จนกว่าผู้เล่นจะเติมชุดค่าผสมที่ชนะ นั่นคือทั้งแถว คอลัมน์ หรือแนวทแยงที่มีเครื่องหมายเดียวกัน

ขั้นตอน 4) เกมเสมอกันก็เป็นไปได้ในกรณีที่เซลล์ทั้งหมดเต็มโดยไม่มีผู้ชนะที่ชัดเจน

ข้อกำหนด

อาคาร นิ้วเท้า tic tac Python โครงการ ต้องมีความเข้าใจในระดับเริ่มต้นของ Python ภาษาโปรแกรม ซึ่งรวมถึงการทำความเข้าใจลูปและการวนซ้ำ “for” และคำสั่ง if ใดบ้างที่ถูกนำมาใช้ Python.

คุณยังต้องมี Python และ Python โปรแกรมแก้ไขข้อความที่ติดตั้งบนคอมพิวเตอร์ของคุณเพื่อทำให้โอเอกซ์สมบูรณ์ Python โครงการ. เนื่องจากนี่คือเกมโอเอกซ์ระดับเริ่มต้น Pythonคุณไม่จำเป็นต้องมีเลย Python ห้องสมุด.

คุณอาจต้องมีทักษะในการดีบักเพื่อค้นหาวิธีแก้ไขจุดบกพร่องในโค้ดของคุณและคุณควรมีความเข้าใจองค์ประกอบของเกมอย่างเพียงพอ

Tic Tac Toe Python ขั้นตอนวิธี

ทำตามขั้นตอนเหล่านี้เพื่อสร้างเกมโอเอกซ์ Python ภาษาการเขียนโปรแกรม:

ขั้นตอน 1) สร้างกระดานเพื่อเริ่มเกมโอเอกซ์

ขั้นตอน 2) ขอให้ผู้ใช้ตัดสินใจเกี่ยวกับขนาดกระดานเกม

ขั้นตอน 3) สุ่มเลือกผู้เล่นคนแรก

ขั้นตอน 4) เกมโอเอกซ์เริ่มต้นขึ้น

ขั้นตอน 5) ผู้เล่นเล่นโดยเลือกจุดว่างบนกระดาน

ขั้นตอน 6) เติมจุดว่างที่เลือกด้วยสัญลักษณ์ของผู้เล่น

ขั้นตอน 7) พิจารณาว่าผู้เล่นชนะหรือเสมอกันในเกมโดยใช้ตรรกะของเกม

ขั้นตอน 8) แสดงกระดานเกมหลังการเล่นทุกครั้ง หากไม่มีผู้เล่นคนใดชนะหรือเสมอกับผู้เล่นคนที่สอง

ขั้นตอน 9) แสดงข้อความเสมอหรือชนะตามลำดับ

ขั้นตอน 10) จบเกมโอเอกซ์ด้วยตัวเลือกในการเริ่มเกมใหม่

เต็ม 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:

------------
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 เป็นเรื่องง่าย เรามาวิเคราะห์ฟังก์ชันต่างๆ กันเป็นบิตเพื่อทำความเข้าใจว่าเกิดอะไรขึ้นในแต่ละบรรทัด:

การพิมพ์กระดาน

กระดานทิกแทคโทคือส่วนแสดงเกมหลัก ใน, 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)

รหัสเอาท์พุท:

------------
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" เกมจะได้ขนาดกระดานหลังจากขอให้ผู้ใช้กรอกตัวเลข
  • ดังนั้นเมื่อคุณป้อนค่า ระบบจะประมวลผลค่านั้น
  • นอกจากนี้เรายังสร้างข้อความแสดงข้อผิดพลาดเพื่อแสดงให้ผู้เล่นทราบเมื่อมีการพิมพ์หมายเลขที่ไม่ถูกต้อง
  • จากนั้นเราสามารถสร้างตัวแปรสองตัวที่เติม "X" หรือ "O" เมื่อเติมเซลล์
  • จากนั้นให้ผู้เล่นดูกระดานเกม หลังจากนี้ ให้รับข้อมูลจากผู้เล่น
  • ตรรกะจะทำเครื่องหมายเซลล์ที่เลือกว่าเต็มแล้ว และตรวจดูว่าชนะหรือเสมอกัน
  • หากไม่มีผู้ชนะ เกมจะขอให้ผู้เล่นคนถัดไปเล่น หากมีชนะหรือเสมอ เกมสามารถถามผู้ใช้ว่าต้องการเกมใหม่หรือไม่

สรุป

  • Tic Tac Toe เป็นเกมที่สนุกสำหรับผู้เล่นสองคนโดยการวางสัญลักษณ์เฉพาะลงในช่องกระดานว่าง
  • การสร้างเกมโอเอกซ์ Python ต้องมีความเข้าใจในระดับเริ่มต้นของ Python, โปรแกรมแก้ไขข้อความ และ Python การติดตั้ง
  • อัลกอริธึมช่วยให้คุณเขียนโค้ดเป็นภาษาใดก็ได้อย่างเป็นระบบ
  • ในการสร้างเกม ขั้นแรกให้วาดกระดานและเขียนโค้ดเพื่อกำหนดว่าจะแพ้หรือชนะ
  • คุณสามารถทดสอบรหัสโอเอกซ์ได้ Python โดยการเล่นมันก่อน