如何制作井字游戏 Python 带有代码示例
井字游戏 Python 是一个你可以尝试的有趣项目。这是一个很酷很有趣的解决挑战的项目,可以帮助你掌握 Python。创建有趣的井字游戏有助于提高您的技能。
你可以使用一个好的 Python 编辑器,例如 Pycharm 或命令行界面。
如何玩 Tic Toc 游戏?
井字游戏是一种简单的双人游戏,任何人都可以玩,不需要游戏板。游戏需要两名玩家标记不同的格子,直到游戏结束,获胜或平局。
以下是井字游戏的玩法。
步骤1) 井字游戏从方格中的空格开始。这是井字棋盘。
步骤2) 两位玩家从两个符号中选择,通常是 X 或 O。您可以使用游戏中的任何其他独特符号。
步骤3) 当前玩家轮流标记,填写井字棋盘上的单元格,直到有玩家填写获胜组合。即整行、整列或整对角线都有相同的符号。
步骤4) 如果所有格子都满了,没有明显的赢家,也可能出现平局
申请条件
建立 井字游戏 Python 项目 需要初级水平的理解 Python 编程语言。它包括理解“for”循环和迭代,以及 if 语句在 Python.
您还需要 Python 配备 Python 安装在计算机上的文本编辑器来完成井字游戏 Python 项目。由于这是一个初级井字游戏, Python,你不需要任何 Python 图书馆。
您可能需要一些调试技能才能找到代码中错误的解决方案,并且您还应该对游戏组件有足够的了解。
井字 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()
井字 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 很简单。让我们逐个剖析一下不同的函数,以了解每行代码的作用:
打印电路板
井字棋盘是游戏的主要显示。在, Python 显示窗用于显示游戏板。
以下步骤可帮助您创建井字游戏棋盘 Python:
Python 井字游戏的代码
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 语句返回 true,表明有获胜者。
- break 跳出这个循环并继续进行下一行。
列
对于列,我们重复与行相同的功能。在每个玩家选择自己的位置后,我们检查玩家是否获胜。
对角线获胜
对于左对角线,任务变得更简单。我们总是会比较对角线上的单元格。但是,如果没有获胜者,我们可以继续执行下一条指令。
玩游戏逻辑
这是游戏的主要功能。为此,我们可以使用存储信息的变量。
- 第一个变量是“N”中存储的棋盘大小。游戏会在要求用户输入一个数字后获取棋盘大小。
- 因此,当您输入该值时,它会被处理。
- 当输入任何无效数字时,我们还创建一个错误消息来向玩家显示。
- 然后我们可以创建两个变量,当单元格填充时填充“X”或“O”。
- 然后向玩家展示游戏板。之后,获取玩家的输入。
- 然后逻辑会将选定的单元格标记为已填充,并检查是否获胜或平局。
- 如果没有获胜者,游戏会要求下一位玩家继续游戏。如果获胜或平局,游戏会询问用户是否想要重新游戏。
结语
- 井字游戏是一种有趣的双人游戏,玩法是将一个独特的符号放置在空白的棋盘格子中。
- 创建井字游戏 Python 需要初级水平的理解 Python、文本编辑器,以及 Python 安装。
- 该算法可以帮助您系统地用任何语言编写代码。
- 要创建游戏,首先,绘制棋盘并编写代码来确定获胜和失败的安排以及
- 您可以在 Python 先播放它。
