일반적인 2D 배열 패턴
Coddy GDScript 여정의 논리와 흐름 섹션에 포함된 레슨. 78개 중 17번째.
격자를 순회하는 몇 가지 방법은 반복해서 등장합니다. 이 예제에서는 크기가 n인 정사각형 격자를 사용합니다:
var grid := [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
var n := grid.size()대각선. 주대각선에서는 행 인덱스와 열 인덱스가 같습니다: grid[i][i]. 오른쪽 위 모서리에서 왼쪽 아래 모서리로 이어지는 부대각선에서는 열 인덱스가 n - 1 - i입니다. 반복문 하나면 충분합니다:
for i in range(n):
print(grid[i][i], " ", grid[i][n - 1 - i])1 3
5 5
9 7행, 열, 경계. 인덱스 하나를 고정하고 다른 인덱스를 반복합니다. 맨 위 행은 grid[0]이고 맨 아래 행은 grid[n - 1]입니다. 열에서는 c를 고정하고 행을 바꿉니다:
var left_total := 0
for r in range(n):
left_total += grid[r][0] # 왼쪽 열: 1 + 4 + 7
print(left_total) # 12이웃. 격자 게임에서는 위치 주변의 칸, 즉 위, 아래, 왼쪽, 오른쪽을 살펴보는 경우가 많습니다. 네 방향의 이동을 [row, column] 쌍의 배열로 저장하고, 격자 밖으로 나가는 이동은 건너뛰세요:
var r := 0
var c := 1
for step in [[-1, 0], [1, 0], [0, -1], [0, 1]]:
var nr: int = r + step[0]
var nc: int = c + step[1]
if nr >= 0 and nr < n and nc >= 0 and nc < n:
print(grid[nr][nc])셀 grid[0][1]은 위쪽 테두리에 있으므로 이웃이 3개 있습니다: 5, 1 및 3.
챌린지
쉬움grid라는 매개변수를 하나 받는 print_patterns 함수를 작성하세요. grid는 정수로 이루어진 정사각형 2차원 배열입니다(grid: Array로 선언). 값 사이를 공백 하나로 구분하여 여섯 줄을 출력합니다.
Main diagonal:와 행 인덱스가 열 인덱스와 같은 셀들Anti-diagonal:와 오른쪽 위에서 왼쪽 아래 모서리까지의 셀들Top row:와 첫 번째 행Bottom row:와 마지막 행Left column:과 위에서 아래 순서의 첫 번째 열Right column:과 위에서 아래 순서의 마지막 열
[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]] 그리드의 출력은 다음과 같습니다.
Main diagonal: 1 6 11 16
Anti-diagonal: 4 7 10 13
Top row: 1 2 3 4
Bottom row: 13 14 15 16
Left column: 1 5 9 13
Right column: 4 8 12 16테스트에서 print_patterns()를 직접 호출합니다. 함수를 호출하지 말고 아무것도 반환하지 마세요.
직접 해보기
func print_patterns(grid: Array):
# 여기에 코드를 작성하세요
pass
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
논리와 흐름의 모든 레슨
직접 연습해 보세요: 온라인 GDScript 컴파일러