2016-11-06 89 views
0

練習是重做遊戲Python中的突破;這是一個類似草稿的遊戲,用一塊n行和p行。遊戲棋牌總是重置爲初始狀態Python

我開始我的遊戲板具有這樣的功能:

def NewBoard(n,p): 
    board = [["."] * p for i in range(n)] 

    for i in range(0, 2): 
     for j in range(0, p): 
      board[i][j] = 'o' 

    for k in range(n - 2, n): 
     for l in range(0, p): 
      board[k][l] = 'x' 

    return board 

但這始終復位電路板,因爲這個功能是遊戲的初始狀態。

當我嘗試做的主要遊戲功能,每次玩家的變化,板正在重置本身:

def Breaktrough(n, p): 
    DisplayBoard(NewBoard(n,p)) 
    DisplayBoard(Where(NewBoard(n, p), 1, *SelectPawn(1))) 
    DisplayBoard(Where(NewBoard(n, p), 2, *SelectPawn(2))) 

我嘗試了一些解決方案,我認爲是好的,但並非如此。

+0

那麼你試過什麼樣的解決方案,他們爲什麼不好? –

+0

對不起,這可怕的英語,這不是我的母語。 我試圖做一個功能,作爲參數由NewBoard返回的董事會,並將其返回。但是這並不奏效,我只是創建了一個在板子上沒有修改的函數。 但是,由於約翰科爾曼我得到了我的答案!非常感謝。這很簡單,我甚至沒有想到它。 :) – Nayuru

回答

0

您需要將電路板分配給變量,以便您可以隨時參考同一電路板,而不是在每次(嘗試)移動時重複創建新電路板。在主要功能,具有行

board = NewBoard(n,p) 

這不會是「重置」自動(除非你再打電話NewBoard())。在其餘代碼中,請參閱board而不是​​。

+0

非常感謝!這麼簡單,但我沒有想到它。我的壞的哈哈。 – Nayuru