游戏板总是重置为初始状态Python

时间:2016-11-06 13:41:34

标签: python python-3.x

练习是在Python中重做游戏突破;这是一款类似草稿的游戏,其中包含 n 行和 p 行。

我使用此功能启动游戏板:

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)))

我尝试了一些我认为不错的解决方案。

1 个答案:

答案 0 :(得分:0)

您需要将板分配给变量,以便随着时间的推移可以引用同一块板,而不是在每次(尝试)移动时重复创建新板。在main函数中,有行

board = NewBoard(n,p)

它不会自动“重置”(除非您再次呼叫NewBoard())。在其余代码中,请参阅board而不是NewBoard(n,p)