python tic tac toe记分牌没有更新[关闭]

Posted

技术标签:

【中文标题】python tic tac toe记分牌没有更新[关闭]【英文标题】:python tic tac toe scoreboard not updating [closed] 【发布时间】:2022-01-11 02:14:13 【问题描述】:

他们关闭了这个问题,所以我不能删除它,因为人们“回答”了任何问题

问题是游戏结束时记分牌没有更新;它只显示在开头。

我们如何解决这个问题?我们需要实现循环,还是重新排列部分代码?

代码如下:

import time

print("Tic-Tac-Toe Game ")
print("Please Wait...")
time.sleep(3)

def game_winner(player):
    if Game==Draw:    
        print("Game Draw")
        return 'D'
    elif Game==Win:    
      player-=1    
      if player != 0:    
        print("Player 1 Won") 
        return   
      else:    
        print("Player 2 Won") 
        return

【问题讨论】:

【参考方案1】:

所以,我只是运行了您的代码并成功地完成了一场比赛。您是对的,在完成一场比赛后,输入“是”并不能正确显示计分板。

您已经将代码设置为各种功能,这很好。您可能想要做的是有一个play(board, player:str, move:int) 函数,它接受玩家和相应的移动并每次更新棋盘。您将需要修改while 循环,因为平局、赢或输条件将结束游戏。 play() 函数应该只跟踪当前玩家,并在每次移动时分别在 0 和 1 之间切换。

你可能有类似的东西:

# Set player 0 to start, X
start_player = 0
while not checkGameEnd():
    # Take player input
    move = int(input("Where do you want to move?"))
    # Make the play
    play(board, start_player, move)
    # Print the board
    printBoard()
    # Change player
    start_player = 1 if start_player is 0 else 1
# Game should end here
printScores()
playAgain()

这是一种伪代码,但您可以根据用例修改逻辑。

【讨论】:

【参考方案2】:

当我回复n 对问题'Do you want to play again?' 时,最后为我打印的记分牌。

但是,它显示 0-0,因为代码没有更新分数。我认为您想在game_winner 函数中添加以下内容:

elif Game ==Win:    
    player -= 1    
    if player != 0:
        print("Player 1 Won")
        score_board[player1] += 1
        return
    else:
        print("Player 2 Won")
        score_board[player2] += 1
        return

另外,您需要将game_winner(player) 函数调用移到while 循环之外,以便它只调用一次。

【讨论】:

【参考方案3】:

你需要在每场比赛结束时修改score_board变量,这样当你在比赛结束时打印它会更新最终得分,为此你可以修改你的game_winner函数如下:

def game_winner(player):
    if Game==Draw:    
        print("Game Draw")
        score_board[player1] += 0.5
        score_board[player2] += 0.5
        return 'D' 
    elif Game ==Win:    
        player -= 1    
        if player != 0:
            print("Player 1 Won")
            score_board[player1] += 1
            return
        else:
            print("Player 2 Won")
            score_board[player2] += 1
            return  

【讨论】:

以上是关于python tic tac toe记分牌没有更新[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

python tic-tac-toe.py

Learn Python 015: Tic Tac Toe Game

python3的tic tac toe

将识别列表中的空字符串并在那里打印标记/符号的函数(Python Tic-Tac-Toe)

Principle of Computing (Python)学习笔记 DFS Search + Tic Tac Toe use MiniMax Stratedy

html Tic Tac Toe