Tic Tac Toe - 如果有赢家,我该如何停止游戏,
TicTacToe - How do i stop the game if theres a winner,
这就是程序接收数据的方式
x_data = []
def xuser_input():
while True:
x = As("Player X, Please enter a number to place: ",int)
if (x > 10) or (x < 0):
print("Input must be Bigger than 0 and Smaller than 9")
continue
try:
board[x] = "X"
x_data.append(x)
except (IndexError):
print("Invalid input")
continue
t_Board()
break
Y 也会有另一个。
这是井字板
def t_Board():
print(f"| {board[0]} | {board[1]} | {board[2]} |\n_____________")
print(f"| {board[3]} | {board[4]} | {board[5]} |\n_____________")
print(f"| {board[6]} | {board[7]} | {board[8]} |")
如果满足此条件即获胜公式,这将停止游戏。
def stops_board():
if (board[0] == board[1] == board[2]) or (board[3] == board[4] == board[5]) or (
board[6] == board[7] == board[8]) or (board[0] == board[3] == board[6]) or (
board[1] == board[4] == board[7]) or (board[2] == board[5] == board[8]) or (
board[0] == board[4] ==
board[8]) or (board[2] == board[4] == board[6]):
return False
现在这就是我询问数据输入并检查是否有获胜解决方案的方式
while True:
xuser_input()
stops_board()
yuser_input()
stops_board()
如我所见,如果游戏应该停止,stops_board()
应该 return True,如果应该继续,则为 False。正确的?如果是这样,您可以使用:
while True:
xuser_input()
if stops_board(): break
yuser_input()
if stops_board(): break
def stops_board():
if (board[0] == board[1] == board[2]) or (board[3] == board[4] == board[5]) or (
board[6] == board[7] == board[8]) or (board[0] == board[3] == board[6]) or (
board[1] == board[4] == board[7]) or (board[2] == board[5] == board[8]) or (
board[0] == board[4] == board[8]) or (board[2] == board[4] == board[6]):
return True
while True:
xuser_input()
if stops_board(): break
yuser_input()
if stops_board(): break
你先搞清楚步骤:
- 随机初始化棋盘(设置棋盘列表,玩家姓名,玩家签名(X或O)
- 设置一个while循环并执行以下操作
- 向玩家询问有效位置
- 检查位置是否有效
- 将棋盘索引设置为玩家的符号
- 检查玩家是否获胜并打破循环
- 检查棋盘是否已填满,如果为真则为平局
- 更换播放器并转到第 3 步
Function to initialise board, check valid postition and draw the board
check if there is a winner or it is a draw
The gameplay
这就是程序接收数据的方式
x_data = []
def xuser_input():
while True:
x = As("Player X, Please enter a number to place: ",int)
if (x > 10) or (x < 0):
print("Input must be Bigger than 0 and Smaller than 9")
continue
try:
board[x] = "X"
x_data.append(x)
except (IndexError):
print("Invalid input")
continue
t_Board()
break
Y 也会有另一个。 这是井字板
def t_Board():
print(f"| {board[0]} | {board[1]} | {board[2]} |\n_____________")
print(f"| {board[3]} | {board[4]} | {board[5]} |\n_____________")
print(f"| {board[6]} | {board[7]} | {board[8]} |")
如果满足此条件即获胜公式,这将停止游戏。
def stops_board():
if (board[0] == board[1] == board[2]) or (board[3] == board[4] == board[5]) or (
board[6] == board[7] == board[8]) or (board[0] == board[3] == board[6]) or (
board[1] == board[4] == board[7]) or (board[2] == board[5] == board[8]) or (
board[0] == board[4] ==
board[8]) or (board[2] == board[4] == board[6]):
return False
现在这就是我询问数据输入并检查是否有获胜解决方案的方式
while True:
xuser_input()
stops_board()
yuser_input()
stops_board()
如我所见,如果游戏应该停止,stops_board()
应该 return True,如果应该继续,则为 False。正确的?如果是这样,您可以使用:
while True:
xuser_input()
if stops_board(): break
yuser_input()
if stops_board(): break
def stops_board():
if (board[0] == board[1] == board[2]) or (board[3] == board[4] == board[5]) or (
board[6] == board[7] == board[8]) or (board[0] == board[3] == board[6]) or (
board[1] == board[4] == board[7]) or (board[2] == board[5] == board[8]) or (
board[0] == board[4] == board[8]) or (board[2] == board[4] == board[6]):
return True
while True:
xuser_input()
if stops_board(): break
yuser_input()
if stops_board(): break
你先搞清楚步骤:
- 随机初始化棋盘(设置棋盘列表,玩家姓名,玩家签名(X或O)
- 设置一个while循环并执行以下操作
- 向玩家询问有效位置
- 检查位置是否有效
- 将棋盘索引设置为玩家的符号
- 检查玩家是否获胜并打破循环
- 检查棋盘是否已填满,如果为真则为平局
- 更换播放器并转到第 3 步
Function to initialise board, check valid postition and draw the board
check if there is a winner or it is a draw
The gameplay