Як зробити гру Tic Tac Toe в Python із прикладом коду
Гра в хрестики-нулики Python це цікавий проект, який ви можете спробувати. Це крутий і веселий проект вирішення проблеми, який може допомогти вам освоїти базові поняття Python. Створення веселої гри в хрестики-нулики допоможе вам розвивати свої навички.
Ви можете використовувати хороший Python редактор, наприклад Pycharm, або інтерфейс командного рядка.
Як грати в гру Tic Toc?
Гра «Хрестики-нулики» — це проста гра для двох гравців, у яку може грати кожен, не потребуючи ігрової дошки. Це включає в себе двох гравців, які позначають різні клітинки, поки гра не закінчиться, виграш або нічия.
Ось як грати в гру «Хрестики-нулики».
Крок 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 Виведення коду
Після того, як ви запустите вихідний код вище, нижче наведено очікуваний результат для дошки 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 є простим. Давайте розберемо різні функції по частинах, щоб зрозуміти, що відбувається для кожного рядка:
Друк дошки
Дошка 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 _ _ _ _ _ _ _ _ _
Гра «Хрестики-нулики» – виграшна композиція
Щоб перевірити, чи виграв якийсь гравець, нам потрібно перевірити виграшні комбінації в рядках, стовпцях і діагоналях. Якщо є переможець, нам потрібно показати виграшне повідомлення.
ряди
- Для рядка функція бере кожну послідовну пару стовпців і перевіряє виграшну комбінацію.
- Перемагає гравець, який першим заповнить рядки. Таким чином другий гравець програє.
- Якщо пара послідовних стовпців однакова, то очевидно, що всі елементи в цьому рядку однакові.
- Якщо два з них різні або рядок містить порожню клітинку, переможця все одно немає.
- Потім ми реалізуємо умови програшу та додаємо перерву. Якщо будь-яка з цих програшних умов є істинною, ми не мали переможця в позначеному рядку.
- Інструкція else дає істинний результат, щоб показати, що є переможець.
- Розрив виривається з цієї петлі, щоб перейти до наступного ряду.
Колони
Для стовпців ми повторюємо ту ж функцію, що і для рядків. Ми перевіряємо, чи виграв гравець після того, як кожен гравець вибере своє місце.
Виграє діагональний ряд
Для лівої діагоналі завдання спрощується. Ми завжди будемо порівнювати клітинки по діагоналях. Однак, якщо переможця немає, ми можемо переходити до наступної інструкції.
Грайте в логічні ігри
Це основна функція гри. Для цього ми можемо використовувати змінні, які зберігають інформацію.
- Перша змінна — це розмір плати, збережений у «N». Гра отримає розмір дошки після того, як попросить користувача ввести число.
- Отже, коли ви вводите значення, воно обробляється.
- Ми також створюємо повідомлення про помилку, щоб показати гравцям, коли вводиться будь-який недійсний номер.
- Потім ми можемо створити дві змінні, які заповнюють «X» або «O», коли комірка заповнена.
- Потім покажіть гравцям ігрове поле. Після цього отримайте інформацію від гравця.
- Потім логіка позначить вибрану комірку як заповнену та перевірить виграш чи нічию.
- Якщо переможця немає, гра пропонує наступному гравцеві грати. Якщо є виграш або нічия, гра може запитати користувачів, чи хочуть вони нову гру.
Висновок
- Tic Tac Toe — це весела гра для двох гравців, у яку потрібно помістити унікальний символ у порожню клітинку дошки.
- Створення гри в хрестики-нулики в Python вимагає розуміння початкового рівня Python, текстовий редактор і Python встановлений.
- Алгоритм допомагає систематично писати код будь-якою мовою.
- Щоб створити гру, спочатку намалюйте дошку та напишіть код, щоб визначити порядок виграшу та програшу
- Ви можете перевірити код хрестики-нулики в Python відтворивши його першим.