Як зробити гру Tic Tac Toe в Python з Code Приклад
⚡ Розумний підсумок
Хрестики-нулики в Python – це проєкт, зручний для початківців, який відтворює класичну гру в сітці для двох гравців. Його складання зміцнює основні навички, такі як цикли, умовні оператори, списки, функції та рекурсія, одночасно перевіряючи рядки, стовпці та діагоналі на предмет переможця.

Гра в хрестики-нулики Python – це цікавий проект, який ви можете спробувати. Це класний та веселий проект для вирішення задачі, який може допомогти вам опанувати основні поняття в PythonСтворення веселої гри в хрестики-нулики допомагає вам розвивати свої навички.
Ви можете використовувати хороший Python редактор, такий як PyCharm або інтерфейс командного рядка.
Як грати в гру «Хрестики-нулики»?
Хрестики-нулики – це проста гра для двох гравців, у яку може грати кожен без ігрового поля. У ній двоє гравців позначають різні клітинки, доки гра не закінчиться перемогою або нічиєю.
Ось як грати в гру «Хрестики-нулики».
Крок 1) Гра «Хрестики-нулики» починається з порожніх клітинок у квадратній сітці. Це і є ігрове поле «Хрестики-нулики».
Крок 2) Обидва гравці вибирають один із двох символів, зазвичай Xs або Os. У грі можна використовувати будь-який інший унікальний символ.
Крок 3) Поточний гравець по черзі робить позначки, заповнюючи клітинки дошки «Хрестики-нулики», доки один із гравців не заповнить виграшну комбінацію. Це цілий рядок, стовпець або діагональ з однаковим знаком.
Крок 4) Нічия також можлива, якщо всі клітинки заповнені і немає очевидного переможця.
Вимога
Складання хрестики-нулики 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 Code вихід
Після запуску наведеного вище вихідного коду, нижче наведено очікуваний результат для дошки для гри в хрестики-нулики розміром 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):
Повний Code Пробій
створення Хрестики-нулики в Python це просто. Давайте розберемо різні функції побітами, щоб зрозуміти, що відбувається в кожному рядку:
Друк дошки
Дошка для гри в хрестики-нулики – це основний ігровий дисплей. У 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)
Code вихід:
------------ N-DIMENSIONAL TIC TAC TOE game by guru 99.com ------------ Guru99 says>>> Enter N, the dimensions of the board: 3 _ _ _ _ _ _ _ _ _
Гра «Хрестики-нулики» – виграшна композиція
Щоб перевірити, чи виграв якийсь гравець, нам потрібно перевірити виграшні комбінації в рядках, стовпцях і діагоналях. Якщо є переможець, нам потрібно показати виграшне повідомлення.
ряди
- Для рядка функція бере кожну послідовну пару стовпців і перевіряє виграшну комбінацію.
- Перемагає гравець, який першим заповнить рядки. Таким чином другий гравець програє.
- Якщо пара послідовних стовпців однакові, то очевидно, що всі елементи в цьому рядку однакові.
- Якщо два з них різні або рядок містить порожню клітинку, переможця все одно немає.
- Потім ми реалізуємо умови програшу та додаємо перерву. Якщо будь-яка з цих програшних умов є істинною, ми не мали переможця в позначеному рядку.
- Інструкція else дає істинний результат, щоб показати, що є переможець.
- Розрив виривається з цієї петлі, щоб перейти до наступного ряду.
Колони
Для стовпців ми повторюємо ту ж функцію, що і для рядків. Ми перевіряємо, чи виграв гравець після того, як кожен гравець вибере своє місце.
Виграє діагональний ряд
Для лівої діагоналі завдання стає простіше. Ми завжди будемо порівнювати клітинки на діагоналях. Однак, якщо переможця немає, ми можемо перейти до наступної інструкції.
Грайте в логічні ігри
Це основна функція гри. Для цього ми можемо використовувати змінні, які зберігають інформацію.
- Перша змінна — це розмір плати, збережений у «N». Гра отримає розмір дошки після того, як попросить користувача ввести число.
- Отже, коли ви вводите значення, воно обробляється.
- Ми також створюємо повідомлення про помилку, щоб показати гравцям, коли вводиться будь-який недійсний номер.
- Потім ми можемо створити дві змінні, які заповнюють «X» або «O», коли комірка заповнена.
- Потім покажіть гравцям ігрове поле. Після цього отримайте інформацію від гравця.
- Потім логіка позначить вибрану комірку як заповнену та перевірить виграш чи нічию.
- Якщо переможця немає, гра пропонує наступному гравцеві грати. Якщо є виграш або нічия, гра може запитати користувачів, чи хочуть вони нову гру.
