7.4.1 게임 초기화하고 시작 시간 설정하기
게임은 시작할 때마다 필요한 데이터를 초기화해야 합니다. 이 부분을 initData()라는 함수로 만들어 처리하겠습니다.
➊ 게임에서 초기화할 데이터는 무엇이 있을까요? 먼저 레벨입니다. 레벨은 1부터 5까지 오른다고 했습니다. 이를 관리할 level이란 이름의 변수를 선언합니다. 그리고 어항의 물 높이입니다. 어항에는 물이 가득 담겨 있다가 시간이 지나면서 줄어듭니다. 어항이 6개 있으니 어항에 각각 번호를 부여해 선택할 수 있게 합니다. 이때 어항 6개를 각각 변수로 선언할 필요 없이 배열로 한꺼번에 선언합니다. 번호는 인덱스로 관리하면 되니까요. 배열명은 arrayFish, 크기는 6으로 선언합니다.
데이터 초기화는 게임을 시작할 때 한 번 실행합니다. 그런데 레벨과 어항 번호는 게임을 진행하는 동안 계속 필요합니다. initData()함수만이 아니라 다른 곳에서도 사용합니다. 그래서 main()함수 위에 따로 선언합니다. 이렇게 선언한 변수를 전역변수라고 합니다.
Note 지역변수와 전역변수
변수는 사용할 수 있는 범위에 따라 지역변수와 전역변수로 구분합니다. 지역변수는 main() 함수 내부와 같이 중괄호({}) 안에 선언한 변수입니다. 지역변수는 선언한 중괄호 안에서만 접근할 수 있고, 중괄호 외부나 다른 함수 등에서는 접근할 수 없습니다. 이와 반대로, 전역변수는 전역 공간(중괄호로 제한되지 않은)에 선언한 변수로, 지역과 상관없이 어느 곳에서든 접근할 수 있습니다. 전역변수는 보통 함수를 선언하는 곳과 같은 위치에 선언하면 됩니다.