2016-11-06 91 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