Python 如何在游戏结束后在我的tic tac toe程序中添加自动重启?
因此,我最近开始学习如何使用Python编程,我尝试创建一个tic-tac-toe游戏,用最少的视频帮助来测试我的常识,只是我遇到了一个路障……我已经设置好了一切,但我正在尝试添加一些代码,在游戏结束(胜利或平局)后从头开始重新启动程序。我该怎么做呢 这是我目前的代码。请随意提出一些其他建议,因为它们确实会帮助像我这样的初学者Python 如何在游戏结束后在我的tic tac toe程序中添加自动重启?,python,Python,因此,我最近开始学习如何使用Python编程,我尝试创建一个tic-tac-toe游戏,用最少的视频帮助来测试我的常识,只是我遇到了一个路障……我已经设置好了一切,但我正在尝试添加一些代码,在游戏结束(胜利或平局)后从头开始重新启动程序。我该怎么做呢 这是我目前的代码。请随意提出一些其他建议,因为它们确实会帮助像我这样的初学者 board = ["-", "-", "-", "-", "-
board = ["-", "-", "-",
"-", "-", "-",
"-", "-", "-"]
def playing_board():
print(board[0] + " | " + board[1] + " | " + board[2])
print(board[3] + " | " + board[4] + " | " + board[5])
print(board[6] + " | " + board[7] + " | " + board[8])
def game_time():
position = "X"
count = 0
while True:
playing_board()
selection = int(input(position + ", choose your position 1-9: ")) - 1
if (board[selection]) == "-":
board[selection] = position
count += 1
if count == 9:
print("Tie!")
else:
print("Sorry that position is already taken. Choose again")
continue
if board[0] == board[1] == board[2] == position or \
board[0] == board[4] == board[8] == position or \
board[3] == board[4] == board[5] == position or \
board[6] == board[7] == board[8] == position or \
board[6] == board[4] == board[2] == position or \
board[0] == board[3] == board[6] == position or \
board[1] == board[4] == board[7] == position or \
board[2] == board[5] == board[8] == position:
playing_board()
print(position + " wins!")
if position == "X":
position = "O"
else:
position = "X"
def new_game():
while True:
user_input = input("Would you like to play another game? (Y/N): ")
if user_input.upper() == "Y":
continue
elif user_input.upper() == "N":
print("Okay, cya!")
quit()
else:
print("I didn't quit get that...")
game_time()
你可以做:
while True:
board = ['-', '-', '-',
'-', '-', '-',
'-', '-', '-']
game_time()
但是,这不会使您创建的new\u game()
函数生效。要使用它,您需要将continue
更改为game\u time()
并使用
new_game()
最后
其他一些建议:
playing_board_2()
,与playing_board()
相同。你可以把它去掉win\u check()
。你可以把它去掉count
和position
在game\u time()中全局定义和。因为它们不是全局使用的,所以您可以删除全局定义并将定义保留在game\u time()
中
game\u time()
中打印ing“Tie!”
/“X赢!”
后,需要添加return
语句退出函数,否则while True
将永远不会结束
while True:
board = ['-', '-', '-',
'-', '-', '-',
'-', '-', '-']
game_time()
但是,这不会使您创建的new\u game()
函数生效。要使用它,您需要将continue
更改为game\u time()
并使用
new_game()
最后
其他一些建议:
playing_board_2()
,与playing_board()
相同。你可以把它去掉win\u check()
。你可以把它去掉count
和position
在game\u time()中全局定义和。因为它们不是全局使用的,所以您可以删除全局定义并将定义保留在game\u time()
中
game\u time()
中打印ing“Tie!”
/“X赢!”
后,需要添加return
语句退出函数,否则while True
将永远不会结束
全局
board
变量是一个相当大的障碍。您有多种选择:
board
变量作为实例变量,并将大多数函数转换为成员函数。然后在用户每次开始新游戏时创建一个新游戏对象。这是更干净的方法,但你需要学习一些东西game\u time()
函数包装在中,如果为True:
则每次重置棋盘。这是最简单的修复方法,但不是很干净全局
board
变量是一个相当大的障碍。您有多种选择:
board
变量作为实例变量,并将大多数函数转换为成员函数。然后在用户每次开始新游戏时创建一个新游戏对象。这是更干净的方法,但你需要学习一些东西game\u time()
函数包装在中,如果为True:
则每次重置棋盘。这是最简单的修复方法,但不是很干净我修复了代码的主要思想。检查是否获胜?在
循环中,当循环时:
board = ["-", "-", "-",
"-", "-", "-",
"-", "-", "-"]
def playing_board():
print(board[0] + " | " + board[1] + " | " + board[2])
print(board[3] + " | " + board[4] + " | " + board[5])
print(board[6] + " | " + board[7] + " | " + board[8])
def win_check(pos):
if board[0] == board[1] == board[2] == pos or \
board[0] == board[4] == board[8] == pos or \
board[3] == board[4] == board[5] == pos or \
board[6] == board[7] == board[8] == pos or \
board[6] == board[4] == board[2] == pos or \
board[0] == board[3] == board[6] == pos or \
board[1] == board[4] == board[7] == pos or \
board[2] == board[5] == board[8] == pos:
return True
else :
return False
count = 0
position = "X"
def game_time():
position = "X"
count = 0
while True:
playing_board()
if position == 'X' and count != 0:
if win_check('O'):
print('O', 'wins')
break
elif position == 'O' and count != 0:
if win_check('X'):
print('X', 'wins')
break
selection = int(input(position + ", choose your position 1-9: ")) - 1
if (board[selection]) == "-":
board[selection] = position
count += 1
if count == 9:
print("Tie!")
else:
print("Sorry that position is already taken. Choose again")
if position == "X":
position = "O"
else:
position = "X"
game_time()
我修复了代码的主要思想。检查是否获胜?在循环中,当循环时:
board = ["-", "-", "-",
"-", "-", "-",
"-", "-", "-"]
def playing_board():
print(board[0] + " | " + board[1] + " | " + board[2])
print(board[3] + " | " + board[4] + " | " + board[5])
print(board[6] + " | " + board[7] + " | " + board[8])
def win_check(pos):
if board[0] == board[1] == board[2] == pos or \
board[0] == board[4] == board[8] == pos or \
board[3] == board[4] == board[5] == pos or \
board[6] == board[7] == board[8] == pos or \
board[6] == board[4] == board[2] == pos or \
board[0] == board[3] == board[6] == pos or \
board[1] == board[4] == board[7] == pos or \
board[2] == board[5] == board[8] == pos:
return True
else :
return False
count = 0
position = "X"
def game_time():
position = "X"
count = 0
while True:
playing_board()
if position == 'X' and count != 0:
if win_check('O'):
print('O', 'wins')
break
elif position == 'O' and count != 0:
if win_check('X'):
print('X', 'wins')
break
selection = int(input(position + ", choose your position 1-9: ")) - 1
if (board[selection]) == "-":
board[selection] = position
count += 1
if count == 9:
print("Tie!")
else:
print("Sorry that position is already taken. Choose again")
if position == "X":
position = "O"
else:
position = "X"
game_time()
如果用户输入,为什么不在之后移动游戏时间()
。上限()==“Y”:
?如果用户输入,为什么不在之后移动游戏时间()
。上限()==“Y”:
?谢谢,非常感谢!是的,当我第一次复制并粘贴代码到这里时,我完全忘记了删除我没有使用的函数,因为我最初试图利用它们来找到解决方案。谢谢,我很感激!是的,当我第一次复制并粘贴代码到这里时,我完全忘记了删除我没有使用的函数,因为我最初试图利用它们来找到解决方案。