파이 게임 3을 사용하여 파이 게임 라이브러리를 사용하여 보드 게임을 만들려고합니다. 내가하려고하는 것은 보드를 나타 내기 위해 공백이라고 부른 객체의 x 2 y 목록을 만드는 것입니다. 먼저 모든 색상을 회색으로 초기화하고 is_piece 속성을 모두 False로 설정하여 모든 빈 공간임을 나타냅니다. 그런 다음 board x [y] 값을 is_piece 속성이 true로 설정된 객체로 대체하여 빈 공간을 조각으로 대체하려고합니다.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) 형식이지만 2 차원 배열은 일반적으로 [행] [col] (예 (y, x)) ... 따라서 코드를주는 방법을 뒤집을 필요가 있습니다 –
@ JoranBeasley : 답변을 귀하의 의견을 변경하십시오. –
필자는 목록의 목록 대신에 dict을 사용하여 튜플'(x, y)'인 키를 사용하여 모든 문제를 해결할 것입니다. –