Как да направите игра Tic Tac Toe в Python с Code Пример
⚡ Умно обобщение
Морски шах в Python е проект, подходящ за начинаещи, който пресъздава класическата игра с мрежа за двама играчи. Създаването му засилва основни умения като цикли, условни изрази, списъци, функции и рекурсия, като същевременно проверява редове, колони и диагонали за победител.

Tic Tac Toe Игра в 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 код за tic tac toe
# 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 Tic Tac Toe:
------------ 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, прозорец за показване на игралното поле се използва.
Ето стъпките, които ще ви помогнат да създадете дъска за 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)
Code изход:
------------ 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“, когато клетката е попълнена.
- След това покажете на играчите дъската за игра. След това вземете информацията от играча.
- След това логиката ще маркира избраната клетка като попълнена и ще провери за печалба или равенство.
- Ако няма победител, играта кара следващия играч да играе. Ако има победа или равенство, играта може да попита потребителите дали искат нова игра.
