2016-01-22 117 views
-2

需要幫助,以停止重置每場比賽的得分,python 3.5 Tic Tac Toe得分計數

這是我的代碼到目前爲止,它不工作。

這是一個功能的一部分,檢查誰是贏家等

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) 

任何想法或任何幫助它保持幾場比賽後的分數已被播放。

謝謝

+1

有辦法過少的信息來回答這個問題。變量p1score在哪裏居住?全球?在一個函數裏面?遊戲模式的功能是什麼? – Dschoni

+0

稍後我會添加一些代碼,當我有權訪問我的計算機時,我不想添加太多的代碼,看起來像我沒有添加足夠的代碼。我已經獲得了p1分數作爲全球 –

回答

0

看起來你不完全理解範圍。嘗試將p1score和p2score更改爲全局變量(就像您使用Win所做的那樣)。

此YouTube視頻幫助我瞭解全局和局部變量之間的差異,也許它會幫助您。 https://www.youtube.com/watch?v=A054Ged9suI

+0

我知道什麼是全局變量。 –

+0

如果這不是範圍問題,則每次開始新遊戲時都必須將其重置爲0。 – Thomas

+0

是的,這是我認爲該計劃是什麼,只是不知道如何去解決它 –

0

一個簡單PROGRAMM,使用函數來增加兩個自變量(在列表中):

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)