게임이 시작되면 TetrisBoard.startGame() 메소드가 실행되고, 이후 전체 조각들이 목록을 관리하는 PieceList.clear()를 통해서 초기화됩니다.
바로 이어서 PieceFactory.slice()를 통해서 사각형을 테트리스 블록 모양의 조각(Piece)으로 나눠 줍니다. 이때 랜덤하게 위치를 최대한 서로 겹치지 않도록 배열합니다. slice() 메소드는 새로운 조각을 만들어 내고 배치하고 난 뒤에 OnNewPiece 이벤트를 발생시킵니다.
OnNewPiece 대한 이벤트 핸들링은 TetrisBoard에서 진행합니다. TetrisBoard의 이벤트 리스너는 PieceList.add()를 통해서 생성된 조각을 관리하도록 합니다.
조각(Piece)들은 터치 이벤트를 통해서 이동 시킬 수가 있으며, 이동이 완료되면 OnMoved 이벤트를 발생시킵니다.
OnMoved 이벤트의 핸들링은 상위 객체인 PieceList의 객체에서 처리합니다. 모든 조각이 제 위치에 있는 지를 점검하고 만약 모든 조각이 제 위치에 있다면, 게임을 종료하는 OnGameEnd 이벤트를 발생시킵니다.
OnGameEnd 이벤트 역시 상위 객체인 TetrisBoard 에서 처리합니다. 예제에서는 [그림 1]과 같이System.exit(0)를 통해서 프로그램을 종료시키고 있습니다.
강좌를 만들기 위해서 미리 작성한 예제입니다. 추후 보다 게임의 모양새를 갖춰가면서 강좌를 이어가도록 하겠습니다.