로봇 시뮬레이터를 만들어요.
로봇 공장의 시험 시설에는 로봇의 움직임을 검증할 프로그램이 필요해요.
로봇이 할 수 있는 움직임은 세 가지예요:
로봇은 가상의 무한 격자에서 특정 방향(north, east, south, west 중 하나)을 향한 채 {x,y} 좌표, 예를 들어 {3,8}에 놓여요. 좌표는 north와 east 방향으로 갈수록 커져요.
그다음 로봇은 여러 명령을 받아요. 그러면 시험 시설이 로봇의 새로운 위치와 로봇이 향하고 있는 방향을 검증해요.
이 연습 문제에서는 스텁이 getX() 같은 게터를 정의하는데, 테스트는 .x로 값을 직접 접근한다는 걸 눈치챘을 거예요. 이는 Groovy가 프로퍼티를 정의하는 방식 때문이에요. 하나씩 살펴봐요:
Groovy 프로퍼티에 관한 핵심 사항:
final로 표시된 필드라면 게터만 생성해요).이 연습 문제에서는 올바른 구현을 유도하기 위해 필요한 게터만(따라서 위에서 설명한 대로 프로퍼티만) 지정했어요. 어떤 필드(그리고 그 타입)가 해법에 가장 적합한지는 자유롭게 정할 수 있어요.
필드와 프로퍼티에 대해 더 알아보고 싶다면, Groovy 문서의 3.3장. 필드와 프로퍼티를 참고해요.