【问题标题】:python 3.5 Tic Tac Toe score countpython 3.5井字游戏得分计数
【发布时间】:2016-04-29 03:56:26
【问题描述】:

需要帮助阻止每场比赛的比分重置,

这是我目前的代码,但它不起作用。

这是检查谁是获胜者等功能的一部分。

def winner ():
        global Win
        if alist [0] == player1 and alist[1] == player1 and alist[2] ==player1:#top line horizontal
            Win = 'player1'
            return True
        elif alist[3] == player1 and alist[4] == player1 and alist[5] ==player1:#middleline horizontal
            Win = 'player1'
            return True

这个语句决定了分数以及是否开始另一场比赛。

if winner():
                if Win == 'player1':
                    print("player1 is winner")
                    p1score = p1score+1
                elif Win == 'player2':
                    print("player2 is winner")
                    p2score = p2score+1
                print('Player1s score =', p1score,'Player2s score =', p2score)
print("Would you like to play again(yes or no)")
                restart = input("")
                if restart == 'yes':
                    return gamemode()

好的,所以在游戏结束时分数显示正确,但是当玩另一场游戏时它会重置?

def playervscomputer():
        global Player1Score
        Player1Score = 0
        global ComputerScore
        ComputerScore = 0
        players = [name, 'computer']
        global turn
        turn = random.randint(0,1)
        while True:
            print('its\s %s\'s turn' % players[turn])
        if winner1():
            #Check if people have won
            if Win == 'player1':
                print("player1 is winner")
                Player1Score = Player1Score+1
                print("player1s score is", Player1Score, 'Computer Score=', ComputerScore)
                print("would you like to play again?(yes or no)")
                restart = input("")
                if restart =='yes':
                    return main()
                else:
                    print("Thanks for playing")
     elif Win == 'Computer':
                    print("Computer is winner")
                    ComputerScore = ComputerScore+1
                print('Player1s score =', Player1Score,'Computers score =', ComputerScore)

在玩了几场比赛后保持分数的任何想法或任何帮助。

谢谢

【问题讨论】:

  • 回答这个问题的信息太少了。变量 p1score 在哪里?全球的?在函数内部?函数gamemode有什么作用?
  • 稍后当我可以访问我的计算机时我会添加更多代码,我不想添加太多代码看起来我没有添加足够的代码。我的 p1 分数已经是全球性的了

标签: python tic-tac-toe python-3.5


【解决方案1】:

您似乎没有完全理解范围。尝试将 p1score 和 p2score 更改为全局变量(就像你对 Win 所做的那样)。

这个 YouTube 视频帮助我了解了全局变量和局部变量之间的区别,也许它会对你有所帮助。 https://www.youtube.com/watch?v=A054Ged9suI

【讨论】:

  • 我知道全局变量是什么。
  • 如果不是范围问题,您必须在每次开始新游戏时将其重置为 0。
  • 是的,我认为程序就是这样,只是不知道如何修复它
【解决方案2】:

一个简单的程序,它使用一个函数来增加两个自变量(在一个列表中):

score = [0,0]
def increment(Player):
    global score
    if Player == 1:
        score[0]+=1
    elif Player ==2:
        score[1]+=1
    else:
        print('Input not defined')
def main():
    global score
    print(score)
    increment(1)
    increment(2)
    increment(2)
    print(score)

【讨论】:

    猜你喜欢
    • 2014-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-18
    • 2013-12-21
    • 2015-06-14
    • 1970-01-01
    相关资源
    最近更新 更多