python - 游戏结束后如何在我的井字游戏程序中添加自动重启?
问题描述
所以我最近开始学习如何使用 Python 进行编程,我尝试用最少的视频帮助创建一个井字游戏来测试我的一般知识,除了我遇到了障碍......我已经准备好了一切,但我是尝试添加一些代码,以便在游戏结束(胜利或平局)后从头开始重新启动程序。我该怎么做呢?
这是我当前的代码。随意提出一些其他建议,因为它们真的会帮助像我这样的初学者。
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_game()
但是,这不会使您创建的功能生效。要使用它,您需要更改continue
togame_time()
并使用
new_game()
在最后。
其他一些建议:
- 该功能
playing_board_2()
未使用,与 相同playing_board()
。你可以删除它。 - 该功能
win_check()
未使用。你可以删除它。 - 变量
count
和position
是全局定义的,并且在game_time()
. 因为它们不是全局使用的,所以您可以删除全局定义并将定义保留在game_time()
. - 在
print
ing"Tie!"
/"X wins!"
in之后game_time()
,你需要添加一个return
退出函数的语句,否则while True
永远不会结束。
推荐阅读
- javascript - 用于发送电子邮件的 JavaScript 原生函数
- vb6 - 类被配置为作为一个安全运行的不同于调用者?
- docker - Dockerfile CMD exec 表单如何定位二进制文件
- python - 来自 Docker 容器本地主机的 Jupyter 笔记本无法正常工作
- python - 我可以知道这里出了什么问题吗?试了好几次,磅数偏右
- mongodb - MongoDB:在单个更新中更新外部数组和嵌套数组
- c# - System.Net.Http.HttpRequestException 与 UnauthorizedException
- javascript - 使用 webpack 构建时,图像文件 /assets/image 文件夹消失
- java - Cannot connect Java to MySQL database even after having jar file
- snowflake-cloud-data-platform - 如何找出用户的帐户使用情况>特定日期以及他使用特定查询的时间