1
我想用python 3製作一個使用pygame庫的棋盤遊戲。我想要做的是創建一個x對象的列表,我稱之爲空間來表示棋盤。首先,我用灰色初始化所有空格,並將is_piece屬性設置爲False,表明它們都是空白空間。然後,我想用具有is_piece屬性設置爲true的對象替換board [x] [y]值來替換空白空間。2d列表替換對象
我遇到的錯誤是self.coords值正在翻轉。例如,在下面的代碼中,具有[2,3] self.coords值的石頭對象在板[3] [2]位置結束,反之亦然。添加更多的石頭還會通過翻轉索引值來關閉self.coords,有時還會添加其中的一個。
def initialize_board():
#creates an array of empty spaces representing the board
board = [[Space(GRAY, RADIUS, [x, y], False) for x in range(BOARDWIDTH)]
for y in range(BOARDHEIGHT)
#Create the center stones
board[3][3] = Space(RED, RADIUS, [3, 3], True)
board[2][3] = Space(RED, RADIUS, [2, 3], True)
board[4][3] = Space(RED, RADIUS, [4, 3], True)
board[3][2] = Space(RED, RADIUS, [3, 2], True)
board[3][4] = Space(RED, RADIUS, [3, 4], True)
這裏的空間類的初始化方法我使用:
def __init__(self, color, size, coords, is_stone):
self.color = color
self.size = size
self.coords = coords
self.is_stone = is_stone #false if empty
self.pos = [CCONSTANT + DISTANCE * self.coords[0],
CCONSTANT + DISTANCE * self.coords[1]]
誰能告訴我什麼我搞亂?
其預期座標是形式(x,y),但2d數組通常是[row] [col](例如(y,x))...所以你需要翻轉你如何給它座標 –
@ JoranBeasley:將你的評論改爲答案。 –
我會通過使用一個字典而不是列表的列表,使用元組''(x,y)''的鍵來解決整個問題。 –