我正在嘗試創建一個遊戲連接四個程序,其中的主板可以是anysize。系統會提示用戶輸入行數和列數,通過某些代碼創建一個0空格的二維列表。因此,對於由4排板3列Python,更改列表中的列表索引
blankBoard = [[0,0,0],[0,0,0],[0,0,0],[0,0,0]]
我想創建一個函數的輸入,列表,列砸打成片,由X表示...因此,例如,如果您選擇第3列,更新的董事會名單會出現這樣
blankBoard = [[0,0,0],[0,0,0],[0,0,X],[0,0,0]]
我的功能是假設採取列的輸入,並找到列列表,它是最後一個是空白的內部指標。我的問題在於刪除並替換那個特定的索引而不更改所有列表。
def move(blankBoard, column):
newBoard = blankBoard[:]
col = column - 1 # The first column in connect four is 1, not 0
index = -1
i = 0
while i < len(newBoard[col]):
if newBoard[col][i] == 0:
index = index + 1
i = i + 1
newBoard[col][index] = "X" # This line of code I think is bad
print(newBoard)
return ""
與下面的輸出...
newBoard = [[0,0,X],[0,0,X],[0,0,X],[0,0,X]]
但正如我所說,我只希望X將在由「關口」 爲什麼通過所有列循環表示的子表(子列表)如果改變子列表的特定索引的代碼行不在while循環中嗎?
......可能有效。但我更關心爲什麼我的代碼不起作用。我將會有許多類似的代碼,這些代碼涉及循環列表的不同子列表,並替換特定子列表/ – JoeStat1986