2D 배열 요소에 접근하기
Coddy GDScript 여정의 논리와 흐름 섹션에 포함된 레슨. 78개 중 13번째.
2차원 배열의 한 셀에 접근하려면 두 개의 인덱스를 사용합니다. 첫 번째 인덱스는 행을 선택하고, 두 번째 인덱스는 해당 행 안의 열을 선택합니다. 두 인덱스 모두 0에서 시작합니다.
var level := [
[1, 1, 1, 1],
[1, 0, 2, 1],
[1, 1, 1, 1]
]
print(level[1][2]) # 2 (행 1, 열 2)
print(level[0][0]) # 1level[1]은 행 [1, 0, 2, 1]을 반환하고, 이어서 [2]는 해당 행의 인덱스 2를 선택합니다. 모든 배열에서처럼 음수 인덱스는 끝에서부터 셉니다. 따라서 level[-1][-1]은 오른쪽 아래 셀입니다.
셀을 변경하려면 셀에 값을 할당하세요. 플레이어가 동전을 주우면 해당 타일이 바닥으로 바뀝니다:
level[1][2] = 0
print(level[1]) # [1, 0, 0, 1]그리드 범위를 벗어난 인덱스는 프로그램을 중단시키는 오류입니다. 행이 0부터 2까지이므로 level[3][0]은 실패합니다. 인덱스가 입력이나 계산에서 나온 경우, 먼저 그리드의 크기와 비교해 확인하세요.
var row := 2
var col := 5
if row >= 0 and row < level.size() and col >= 0 and col < level[row].size():
print(level[row][col])
else:
print("Outside the map")열 5가 존재하지 않기 때문에 Outside the map을 출력합니다. and는 첫 번째 false 조건에서 멈추므로, 행이 존재할 때만 level[row]을 읽습니다.
챌린지
쉬움get_tile이라는 이름의 함수와 다음 세 매개변수를 작성하세요:
grid: 정수로 이루어진 2차원 배열입니다 (grid: Array로 선언하세요)row: 행 인덱스col: 열 인덱스
해당 행과 열에 있는 값을 반환합니다. row 또는 col이 그리드 범위를 벗어나면 (0보다 작거나 행 또는 열의 개수보다 작지 않으면) 대신 -1을 반환합니다. 음수 인덱스는 범위를 벗어난 것으로 간주합니다.
예를 들어, get_tile([[1, 2, 3], [4, 5, 6]], 1, 2)는 6을 반환하고, get_tile([[1, 2], [3, 4]], 2, 1)은 -1을 반환합니다.
테스트에서 직접 get_tile()을 호출하고 반환된 값을 확인합니다. 함수를 호출하거나 아무것도 출력하지 마세요.
직접 해보기
func get_tile(grid: Array, row: int, col: int):
# 여기에 코드를 작성하세요
pass
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
논리와 흐름의 모든 레슨
직접 연습해 보세요: 온라인 GDScript 컴파일러