https://adventofcode.com/2019/day/13
당신이 지구와의 메시지 왕복시간이 3시간을 넘어 계속 증가하면서 우주에서의 고독을 느끼고 있을 때, 새로운 메일이 도착하였습니다. 메일을 확인해보니 당신의 정신 건강을 유지하기 위해, 엘프들이 당신에게 치료 패키지를 보낸 것이었습니다.
이 패키지는 배의 오락실에 있는 오락기를 위한 새로운 게임입니다. 하지만 불행하게도 오락실은 배의 반대편에 있습니다. 다행히도, 패키지에는 포함된 오락기에 대한 설계도를 보니, 오락기를 직접 만드는 것이 어려울 것 같지 않습니다.
오락기는 엘프가 보낸 게임(퍼즐 입력)과 같은 정수컴퓨터 소프트웨어를 실행합니다. 오락기는 격자 위에 정사각형 타일을 그릴 수 있는 화면을 가지고 있습니다. 소프트웨어는 출력 명령어가 들어오면 화면에 타일을 그립니다. 모든 출력 명령어에는 x
좌표(왼쪽에서 거리), y
좌표(위에서부터 거리), 타일 ID
가 지정됩니다. 타일 ID
는 다음과 같이 해석됩니다.
0
은 빈 타일입니다. 이 타일에는 어떠한 게임 오브젝트도 없습니다.1
은 벽 타일입니다. 벽은 파괴할 수 없는 장벽입니다.2
는 블록 타일입니다. 블록은 공에 의해 깨질 수 있다.3
은 수평 패들 타일입니다. 패들은 파괴할 수 없습니다.4
는 공 타일입니다. 공은 대각선으로 움직이며 물체에 튕겨 나옵니다.
예를 들어, 1,2,3,6,5,4
와 같은 일련의 출력 값은 수평 패들 타일(왼쪽에서 1
타일, 위쪽에서 2
타일인 좌표)과 공 타일(왼쪽에서 6
타일, 위에서 5
타일인 좌표)을 그립니다.
게임을 시작하세요. 게임 종료 시 화면에 블록 타일이 몇 개 있습니까?
동전을 넣지 않아서 게임이 시작되지 않습니다. 불행하게도, 당신은 동전을 단 하나도 가지고 있지 않습니다. 메모리 주소 0
은 삽입된 동전의 수를 나타냅니다. 이 값을 2
로 설정하여 공짜로 게임을 해봅시다.
오락기에는 좌우로 움직일 수 있는 조이스틱이 있습니다. 우리의 소프트웨어는 입력 명령어를 사용하여 조이스틱의 현재 위치를 읽습니다.
- 조이스틱이 중립 위치에 있으면
0
을 제공합니다. - 조이스틱이 왼쪽으로 기울어져 있으면
-1
을 제공합니다. - 조이스틱이 오른쪽으로 기울어져 있으면
1
을 제공합니다.
또한 오락기에는 플레이어의 현재 점수를 표시할 수 있는 조그만한 점수판이 있습니다. 세 개로 이루어진 출력 값에서 좌표가 X=-1, Y=0
로 출력되면, 세 번째 출력 값은 타일 종류를 나타내는 것이 아닙니다. 이 값은 점수판에 출력할 새로운 점수를 나타냅니다. 예를 들어 -1,0,12345
와 같은 일련의 출력 값은 12345
를 플레이어의 현재 점수로 표시합니다.
모든 블록을 깨서 게임을 이겨보세요. 마지막 블록이 깨진 후 점수가 어떻게 되나요??