Jak zrobić grę w kółko i krzyżyk Python w Code Przykład

⚡ Inteligentne podsumowanie

Kółko i krzyżyk w Python To przyjazny dla początkujących projekt, który odtwarza klasyczną grę planszową dla dwóch graczy. Jego tworzenie wzmacnia podstawowe umiejętności, takie jak pętle, instrukcje warunkowe, listy, funkcje i rekursja, a jednocześnie sprawdza wiersze, kolumny i przekątne, aby wyłonić zwycięzcę.

  • 🎮 Gameplay: Dwóch graczy zaznacza X i O na siatce kwadratów, dopóki nie zapełni całego rzędu, kolumny lub przekątnej.
  • 🧩 Podstawowa logika: Zagnieżdżone listy przechowują planszę, podczas gdy pętle i warunki sterują turami i wykrywają wygraną lub remis.
  • 🏗️. Kroki budowy: Utwórz planszę, wybierz pierwszego gracza, zbierz dane wejściowe, zaznacz komórki, a następnie w każdej rundzie wybieraj zwycięzcę.
  • 🔁 Powtórka: Rekurencyjne wywołanie play() uruchamia ponownie mecz, a walidacja danych wejściowych blokuje ruchy zajęte lub będące poza zasięgiem.
  • 🤖 Znaczenie sztucznej inteligencji: Ta sama plansza jest idealnym placem zabaw dla algorytmu minimaksowego i agentów uczenia się przez wzmacnianie.
  • 🛠️. Narzędzia: Only Python i redaktor taki jak PyCharm są potrzebne; nie są wymagane żadne biblioteki zewnętrzne.

Gra w kółko i krzyżyk Python

Gra w kółko i krzyżyk Python To ciekawy projekt, który możesz wypróbować. To fajny i zabawny projekt rozwiązywania problemów, który może pomóc Ci opanować podstawowe koncepcje. PythonStworzenie zabawnej gry w kółko i krzyżyk pomoże Ci rozwinąć umiejętności.

Możesz skorzystać z dobrego Python redaktor np PyCharm lub interfejsu wiersza poleceń.

Jak grać w kółko i krzyżyk?

Kółko i krzyżyk to prosta gra dla dwóch graczy, w którą każdy może grać bez potrzeby posiadania planszy. Dwóch graczy zaznacza różne pola, aż gra zakończy się wygraną lub remisem.

Oto instrukcja gry w kółko i krzyżyk.

Krok 1) Gra w kółko i krzyżyk zaczyna się od pustych pól w kwadratowej siatce. To jest plansza do gry w kółko i krzyżyk.

Krok 2) Obaj gracze wybierają jeden z dwóch symboli, zwykle X lub Os. Możesz użyć dowolnego innego unikalnego symbolu w grze.

Krok 3) Aktualny gracz zaznacza kolejne pola planszy do gry w kółko i krzyżyk, aż znajdzie zwycięską kombinację. Oznacza to cały rząd, kolumnę lub przekątną z tym samym znakiem.

Krok 4) Remis jest również możliwy w przypadku, gdy wszystkie komórki są zapełnione i nie ma oczywistego zwycięzcy.

wymagania

Budowanie kółka i krzyżyka Python projekt wymaga zrozumienia na poziomie początkującym Python Język programowania. Obejmuje zrozumienie pętli „for” i iteracji oraz tego, do czego służy instrukcja if. Python.

Musisz też mieć Python oraz Python edytor tekstu zainstalowany na komputerze, aby ukończyć grę w kółko i krzyżyk Python projekt. Ponieważ jest to gra w kółko i krzyżyk dla początkujących, Python, nie będziesz potrzebować żadnego Python biblioteka.

Aby znaleźć rozwiązania błędów w kodzie, możesz potrzebować pewnych umiejętności debugowania, a także powinieneś mieć odpowiednią wiedzę na temat komponentów gry.

Tic Tac Toe Python Algorytm

Aby utworzyć grę w kółko i krzyżyk, wykonaj następujące kroki: Python język programowania:

Krok 1) Utwórz planszę, aby rozpocząć grę w kółko i krzyżyk.

Krok 2) Poproś użytkownika o określenie wymiarów planszy do gry.

Krok 3) Losowo wybierz pierwszego gracza.

Krok 4) Rozpoczyna się gra w kółko i krzyżyk.

Krok 5) Gracze grają, wybierając puste miejsce na planszy.

Krok 6) Wypełnij puste wybrane miejsce znakiem gracza.

Krok 7) Określ, czy gracz wygrywa, czy remisuje w grze, korzystając z logiki gry.

Krok 8) Wyświetl planszę po każdej rozgrywce, jeśli żaden z graczy nie wygra lub nie zremisuje z drugim graczem.

Krok 9) Wyświetl odpowiednio komunikat o remisie lub wygranej.

Krok 10) Zakończ grę w kółko i krzyżyk, mając możliwość rozpoczęcia nowej gry.

Pełny Python kod do gry w kółko i krzyżyk

# 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 wydajność

Po uruchomieniu powyższego kodu źródłowego, poniżej przedstawiono oczekiwany wynik dla planszy do gry w kółko i krzyżyk 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):

Pełny Code awaria

Tworzenie Kółko i krzyżyk w Python To proste. Rozłóżmy na czynniki pierwsze różne funkcje, aby zrozumieć, co się dzieje w każdym wierszu:

Drukowanie planszy

Plansza do gry w kółko i krzyżyk jest głównym wyświetlaczem gry. Python, do prezentacji planszy do gry używane jest okno wyświetlacza.

Oto kroki, które pomogą Ci stworzyć planszę do gry w kółko i krzyżyk Python:

Python kod do gry w kółko i krzyżyk

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 wydajność:

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

_ _ _

_ _ _

_ _ _

Gra w kółko i krzyżyk – zwycięski układ

Aby sprawdzić, czy któryś z graczy wygrał, musimy sprawdzić zwycięskie kombinacje w rzędach, kolumnach i po przekątnych. Jeśli zostanie zwycięzca, musimy pokazać zwycięską wiadomość.

Wydziwianie

  • W przypadku wiersza funkcja pobiera każdą kolejną parę kolumn i sprawdza zwycięską kombinację.
  • Pierwszy gracz, który wypełni rzędy, wygrywa. W ten sposób drugi gracz przegrywa.
  • Jeżeli para kolejnych kolumn jest taka sama, to oczywiste jest, że wszystkie elementy w tym wierszu są takie same.
  • Jeśli dwa z nich są różne lub wiersz zawiera pustą komórkę, nadal nie ma zwycięzcy.
  • Następnie wdrażamy warunki przegrywające i dodajemy przerwę. Jeśli którykolwiek z tych warunków przegranej jest spełniony, w zaznaczonym rzędzie nie ma zwycięzcy.
  • Instrukcja else daje prawdziwy zwrot, pokazując, że istnieje zwycięzca.
  • Przerwa przerywa tę pętlę i przechodzi do następnego wiersza.

kolumny

Dla kolumn powtarzamy tę samą funkcję jak w wierszach. Po wybraniu przez każdego gracza swojego miejsca, sprawdzamy, czy gracz wygrał.

Wygrywa rząd ukośny

W przypadku lewej przekątnej zadanie staje się prostsze. Zawsze będziemy porównywać komórki na przekątnych. Jeśli jednak nie ma zwycięzcy, możemy przejść do następnej instrukcji.

Zagraj w logikę gry

To jest główna funkcja gry. W tym celu możemy wykorzystać zmienne przechowujące informacje.

  • Pierwszą zmienną jest rozmiar płytki zapisany w „N”. Gra uzyska rozmiar planszy po poproszeniu użytkownika o wprowadzenie liczby.
  • Zatem po wprowadzeniu wartości jest ona przetwarzana.
  • Tworzymy również komunikat o błędzie, aby pokazać graczom, gdy zostanie wpisany nieprawidłowy numer.
  • Następnie możemy utworzyć dwie zmienne, które po wypełnieniu komórki wpisują „X” lub „O”.
  • Następnie pokaż graczom planszę. Następnie pobierz dane wejściowe gracza.
  • Następnie logika oznaczy wybraną komórkę jako wypełnioną i sprawdzi wygraną lub remis.
  • Jeśli nie ma zwycięzcy, gra prosi następnego gracza o grę. W przypadku wygranej lub remisu gra może zapytać użytkowników, czy chcą nowej gry.

FAQ

Tak. Kółko i krzyżyk to klasyczny projekt dla początkujących, który przekształca pętle, instrukcje warunkowe i funkcje w działającą grę. Buduje pewność siebie, utrwala podstawową składnię i przygotowuje do większych projektów bez potrzeby korzystania z zewnętrznych bibliotek.

Wzmacnia zagnieżdżone listy dla planszy, pętle for i while dla tur, instrukcje if dla sprawdzania wygranych, funkcje dla struktury oraz rekurencję dla restartu. Te podstawy przekładają się bezpośrednio na bardziej zaawansowane. Python programy.

Tak. Oprócz wersji konsolowej biblioteki takie jak Tkinter i Pygame dodają klikalne przyciski, rysowaną siatkę i sterowanie myszą. Logika gry pozostaje taka sama; zmieniają się jedynie warstwy wyświetlania i wprowadzania danych.

Kółko i krzyżyk to gra oparta na zasadzie rozwiązania. Gdy obaj gracze grają optymalnie, każde zagrożenie można zablokować, więc nikt nie może wymusić wygranej. Dlatego bezbłędny mecz, niezależnie od tego, czy jest to mecz człowieka, czy komputera, zawsze kończy się remisem.

Podstawowa wersja konsolowa zajmuje początkującemu od jednej do trzech godzin, gdy pętle i instrukcje warunkowe stają się już znane. Dodanie walidacji danych wejściowych, skalowalnej tablicy lub graficznego interfejsu wydłuża projekt do weekendu ćwiczeń.

Zastąp jednego gracza funkcją minimaksową. Rekurencyjnie analizuje ona każdy możliwy ruch, punktując wygrane, przegrane i remisy, a następnie wybiera ruch z najlepszym gwarantowanym wynikiem. Na małej planszy sprawia to, że komputer jest nie do pokonania.

Tak. Agenci uczenia się przez wzmacnianie, tacy jak Q-learning, doskonalą się poprzez rozgrywanie tysięcy gier i nagradzanie zwycięskich ruchów. Plansze są przechowywane jako tablice z numpy, pozwalając modelowi nauczyć się niemal optymalnej strategii bez konieczności stosowania sztywnych reguł.

Tak. GitHub Copilot i podobne asystenty AI mogą tworzyć rusztowanie, pętle obrotów i wygrywać sprawdzenia z krótkiego monitu. Potraktuj wynik jako pierwszy szkic, a następnie samodzielnie przetestuj skrajne przypadki, takie jak remisy i nieprawidłowe ruchy.

Podsumuj ten post następująco: