首页 > 解决方案 > 游戏结束后如何在我的井字游戏程序中添加自动重启?

问题描述

所以我最近开始学习如何使用 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()

标签: python

解决方案


你可以做:

while True:
    board = ['-', '-', '-',
             '-', '-', '-',
             '-', '-', '-']
    game_time()

new_game()但是,这不会使您创建的功能生效。要使用它,您需要更改continuetogame_time()并使用

new_game()

在最后。

其他一些建议:

  1. 该功能playing_board_2()未使用,与 相同playing_board()。你可以删除它。
  2. 该功能win_check()未使用。你可以删除它。
  3. 变量countposition是全局定义的,并且game_time(). 因为它们不是全局使用的,所以您可以删除全局定义并将定义保留在game_time().
  4. printing "Tie!"/ "X wins!"in之后game_time(),你需要添加一个return退出函数的语句,否则while True永远不会结束。

推荐阅读