Menu
CoddyTech

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]) # 1

level[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]을 읽습니다.

challenge icon

챌린지

쉬움

get_tile이라는 이름의 함수와 다음 세 매개변수를 작성하세요:

  1. grid: 정수로 이루어진 2차원 배열입니다 (grid: Array로 선언하세요)
  2. row: 행 인덱스
  3. 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
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

논리와 흐름의 모든 레슨

직접 연습해 보세요: 온라인 GDScript 컴파일러