Tic Tac Toe Oyunu Nasıl Yapılır Python 'da Code Örnek E-posta

⚡ Akıllı Özet

Tic Tac Toe içeri Python Bu, klasik iki oyunculu ızgara oyununu yeniden yaratan, yeni başlayanlar için uygun bir projedir. Oyunu inşa etmek, kazananı belirlemek için satırları, sütunları ve köşegenleri kontrol ederken döngüler, koşullu ifadeler, listeler, fonksiyonlar ve özyineleme gibi temel becerileri güçlendirir.

  • 🎮 Oynanış: İki oyuncu, bir satır, sütun veya çapraz tamamlanana kadar kare bir ızgara üzerinde X ve O işaretlerini koyar.
  • 🧩 Temel mantık: İç içe listeler, oyun tahtasını saklarken, döngüler ve koşullu ifadeler hamleleri yönlendirir ve kazanma veya berabere kalmayı tespit eder.
  • 🏗️ Adımları oluşturun: Oyun tahtasını oluşturun, ilk oyuncuyu seçin, girdileri alın, hücreleri işaretleyin ve ardından her turda kazananı kontrol edin.
  • 🔁 Tekrar: Özyinelemeli play() çağrısı maçı yeniden başlatır ve giriş doğrulaması, meşgul veya menzil dışı hamleleri engeller.
  • 🤖 Yapay zekanın önemi: Aynı tahta, minimax algoritması ve pekiştirmeli öğrenme ajanları için ideal bir oyun alanıdır.
  • Araçlar: Bir tek Python ve onun gibi bir editör PyCharm Bunlara ihtiyaç duyulmaz; harici kütüphanelere gerek yoktur.

Tic Tac Toe Oyunu Python

Tic Tac Toe Oyunu Python Deneyebileceğiniz ilginç bir proje. Bir zorluğu çözmenin keyifli ve eğlenceli bir yolu olup, temel kavramlarda ustalaşmanıza yardımcı olabilir. PythonEğlenceli bir Tic Tac Toe oyunu oluşturmak, becerilerinizi geliştirmenize yardımcı olur.

İyi bir şey kullanabilirsin Python gibi editör PyCharm veya komut satırı arayüzü.

Tic Tac Toe Oyunu Nasıl Oynanır?

Tic Tac Toe, oyun tahtasına ihtiyaç duymadan herkesin oynayabileceği basit bir iki kişilik oyundur. Oyun, iki oyuncunun farklı hücreleri işaretlemesiyle başlar ve oyun bir galibiyet veya beraberlikle sona erer.

İşte Tic Tac Toe oyununun nasıl oynanacağı.

) 1 Adım Tic Tac Toe oyunu, kare bir ızgaradaki boş hücrelerle başlar. Bu, Tic Tac Toe tahtasıdır.

) 2 Adım Her iki oyuncu da genellikle X veya O olmak üzere iki sembol arasından seçim yapar. Oyunda başka herhangi bir benzersiz sembolü kullanabilirsiniz.

) 3 Adım Sıradaki oyuncu, bir oyuncu kazanma kombinasyonunu oluşturana kadar Tic Tac Toe tahtasının hücrelerini doldurarak sırayla işaret koyar. Kazanma kombinasyonu, aynı işaretle dolu bir satır, sütun veya çaprazdan oluşur.

) 4 Adım Tüm hücreler doluysa ve belirgin bir kazanan yoksa, oyun berabere de sonuçlanabilir.

Yer Alan Kurallar

Tic Tac Toe Oyunu Yapımı Python Bu proje başlangıç ​​seviyesinde bir anlayış gerektirir. Python Programlama dili. "For" döngülerini ve yinelemeleri anlamayı ve bir if ifadesinin ne için kullanıldığını içerir. Python.

Ayrıca sahip olmanız gerekir Python ve Python Tic Tac Toe oyununu tamamlamak için bilgisayarınıza yüklediğiniz metin düzenleyiciyi kullanın. Python Bu, başlangıç ​​seviyesinde bir Tic Tac Toe oyunu olduğu için proje. PythonHiçbir şeye ihtiyacınız olmayacak. Python kütüphane.

Kodunuzdaki hatalara çözüm bulmak için bazı hata ayıklama becerilerine ihtiyacınız olabilir ve ayrıca oyun bileşenleri hakkında yeterli bilgiye sahip olmalısınız.

Tic Tac Toe Python Algoritma

Tic Tac Toe oyunu oluşturmak için şu adımları izleyin. Python programlama dili:

) 1 Adım Tic Tac Toe oyununa başlamak için oyun tahtasını hazırlayın.

) 2 Adım Kullanıcıdan oyun tahtası boyutlarına karar vermesini isteyin.

) 3 Adım İlk oyuncuyu rastgele seçin.

) 4 Adım Tic Tac Toe oyunu başlıyor.

) 5 Adım Oyuncular tahtada boş bir nokta seçerek oynarlar.

) 6 Adım Seçilen boş alanı oyuncunun işaretiyle doldurun.

) 7 Adım Oyun mantığını kullanarak bir oyuncunun oyunda kazanıp kazanmayacağını veya berabere kalacağını belirleyin.

) 8 Adım Hiçbir oyuncu kazanmazsa veya ikinci oyuncuyla beraberlik kazanamazsa, her oyundan sonra oyun tahtasını görüntüleyin.

) 9 Adım Sırasıyla bir beraberlik veya galibiyet mesajı görüntüleyin.

) 10 Adım Tic Tac Toe oyununu, yeni bir oyuna başlama seçenekleriyle sonlandırın.

Her Şey Dahil Python tic tac toe kodu

# 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 çıktı

Yukarıdaki kaynak kodunu çalıştırdığınızda, 3 x 3'lük bir Tic Tac Toe tahtası için beklenen çıktı aşağıdadır:

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

Her Şey Dahil Code Arıza

Oluşturma Tic Tac Toe içeri Python Basit. Her satırda neler olup bittiğini anlamak için farklı işlevleri parça parça inceleyelim:

Tahtayı yazdırma

Tic Tac Toe tahtası, oyunun ana ekranıdır. PythonOyun tahtasını göstermek için bir ekran penceresi kullanılır.

İşte Tic Tac Toe oyunu için bir tahta oluşturmanıza yardımcı olacak adımlar. Python:

Python Tic Tac Toe'nun kodu

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 çıktı:

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

_ _ _

_ _ _

_ _ _

Tic Tac Toe Oyunu – kazanan düzenleme

Herhangi bir oyuncunun kazanıp kazanmadığını kontrol etmek için satırlar, sütunlar ve köşegenlerdeki kazanan kombinasyonları kontrol etmemiz gerekir. Eğer bir kazanan varsa, kazanan bir mesaj göstermemiz gerekiyor.

satırlar

  • Satır için, işlev her ardışık sütun çiftini alır ve kazanan bir kombinasyon olup olmadığını kontrol eder.
  • Sıraları dolduran ilk oyuncu kazanır. Böylece ikinci oyuncu kaybeder.
  • Ardışık iki sütun aynıysa, o satırdaki tüm elemanların da aynı olduğu açıktır.
  • Bunlardan ikisi farklıysa veya satırda boş bir hücre varsa yine de kazanan yoktur.
  • Daha sonra kaybetme koşullarını uyguluyoruz ve bir mola ekliyoruz. Bu kaybetme koşullarından herhangi biri doğruysa, işaretli satırda kazananımız yok demektir.
  • else ifadesi bir kazananın olduğunu gösteren gerçek bir geri dönüş sağlar.
  • Bir sonraki satıra geçmek için mola bu döngüden çıkar.

Sütunlar

Sütunlar için satırlardakiyle aynı işlevi tekrarlıyoruz. Her oyuncu yerini seçtikten sonra bir oyuncunun kazanıp kazanmadığını kontrol ederiz.

Çapraz sıra kazanır

Sol çapraz için işlem daha basit hale geliyor. Her zaman çaprazlardaki hücreleri karşılaştıracağız. Ancak, kazanan yoksa, bir sonraki talimata geçebiliriz.

Oyun mantığını oyna

Bu oyunun ana işlevidir. Bunun için bilgi depolayan değişkenleri kullanabiliriz.

  • İlk değişken “N”de saklanan kart boyutudur. Oyun, kullanıcıdan bir sayı girmesini istedikten sonra tahta boyutunu alacaktır.
  • Yani değeri girdiğinizde işlenir.
  • Ayrıca geçersiz bir sayı yazıldığında oyunculara göstermek için bir hata mesajı oluşturuyoruz.
  • Daha sonra hücre dolduğunda "X" veya "O" harfini dolduran iki değişken oluşturabiliriz.
  • Daha sonra oyunculara oyun tahtasını gösterin. Bundan sonra oyuncunun girdisini alın.
  • Mantık daha sonra seçilen hücreyi dolu olarak işaretleyecek ve galibiyet veya beraberlik olup olmadığını kontrol edecektir.
  • Kazanan yoksa oyun bir sonraki oyuncunun oynamasını ister. Galibiyet ya da beraberlik olması durumunda oyun, kullanıcılara yeni bir oyun isteyip istemediklerini sorabiliyor.

SSS

Evet. Tic Tac Toe, döngüleri, koşullu ifadeleri ve fonksiyonları çalışan bir oyuna dönüştüren klasik bir başlangıç ​​projesidir. Özgüveninizi artırır, temel sözdizimini pekiştirir ve herhangi bir harici kütüphaneye ihtiyaç duymadan daha büyük projeler için sizi hazırlar.

Bu, oyun tahtası için iç içe listeleri, sıra için for ve while döngülerini, kazanma kontrolleri için if ifadelerini, yapı için fonksiyonları ve yeniden başlatma için özyinelemeyi pekiştirir. Bu temeller, daha gelişmiş konulara doğrudan aktarılabilir. Python programları.

Evet. Konsol sürümünün ötesinde, Tkinter ve Pygame gibi kütüphaneler tıklanabilir düğmeler, çizilmiş bir ızgara ve fare girişi ekler. Oyun mantığı aynı kalır; sadece görüntü ve giriş katmanları değişir.

Tic Tac Toe çözülmüş bir oyundur. Her iki oyuncu da en iyi şekilde oynadığında, her tehdit engellenebilir, bu nedenle kimse zorla kazanamaz. Bu yüzden kusursuz bir maç, ister insan ister bilgisayar olsun, her zaman berabere biter.

Temel bir konsol sürümü, döngüler ve koşullu ifadeler tanıdık hale geldikten sonra yeni başlayanlar için bir ila üç saat sürer. Giriş doğrulama, ölçeklenebilir bir tahta veya grafik arayüz eklemek, projeyi bir hafta sonu sürecek bir pratik çalışmasına yayar.

Bir oyuncuyu minimax fonksiyonuyla değiştirin. Bu fonksiyon, her olası hamleyi özyinelemeli olarak inceler, kazanma, kaybetme ve berabere kalma durumlarını puanlar ve ardından en iyi garantili sonucu veren hamleyi seçer. Küçük bir tahtada bu, bilgisayarı yenmeyi imkansız hale getirir.

Evet. Q-öğrenme gibi pekiştirmeli öğrenme ajanları, binlerce oyun oynayarak ve kazanan hamleleri ödüllendirerek kendilerini geliştirirler. Oyun tahtaları diziler halinde saklanır. DiziBu sayede model, önceden belirlenmiş kurallar olmadan, en uygun stratejiye yakın bir strateji öğrenir.

Evet. GitHub Copilot ve benzeri yapay zeka asistanları, kısa bir komutla tahtayı, hamle döngüsünü ve kazanma hamlelerini oluşturabilir. Çıktıyı ilk taslak olarak değerlendirin, ardından beraberlik ve geçersiz hamleler gibi uç durumları kendiniz test edin.

Bu yazıyı şu şekilde özetleyin: