기고글 토론 "MQL5으로 "스네이크" 게임 만들기"

 

새로운 기고글 MQL5으로 "스네이크" 게임 만들기 가 게재되었습니다:

본 문서에서는 "스네이크" 게임을 만드는 법에 대해서 설명하겠습니다. MQL5에서 게임 프로그래밍은 이벤트 핸들러 기능 덕분에 가능하게 되었다고 볼 수 있습니다. 객체 지향 프로그래밍이기에 이 프로세스가 크게 간소화됩니다. 이 문서에서는 이벤트 처리 기능, 표준 MQL5 라이브러리 클래스의 사용 예, 정기적 함수 호출에 대하여 살펴보겠습니다.

MQL5으로 "스네이크"를 만들 때엔 몇가지 한계가 있습니다.

레벨의 수는 6개 (0에서 5). 각 레벨마다 목숨은 5개 있습니다. 목숨을 다 잃게되거나 모든 레벨을 성공적으로 돌파하게되면 첫 레벨로 돌아갑니다. 나만의 레벨을 만들 수 있습니다. 뱀의 속도와 최대 길이는 레벨에 상관없이 같습니다.

스네이크 게임의 필드에는 4가지 요소가 있습니다:

  1. 게임 타이틀. 이는 차트의 게임 위치 지정에 쓰입니다. 타이틀을 움직이면, 모든 게임 요소가 같이 이동됩니다.
  2. 플레이 필드. 이건 20x20 사이즈의 셀 어레이 (테이블) 입니다. 각 셀은 20x20 픽셀 사이즈로 되어있습니다. 플레이 필드의 요소들은:
    • 뱀. 최소 3개의 요소로 구성되어있습니다 - 머리, 몸통, 꼬리. 머리는 위아래왼쪽오른쪽으로 움직일 수 있습니다. 뱀의 다른 요소들은 머리를 쫓아다닙니다. 
    • 장애물. 회색 직사각형으로 표현됩니다. 뱀의 머리가 장애물과 충돌하면 목숨이 하나 줄어들며 현재 레벨을 다시 시작합니다.
    • 밥. 밥은 열매로 표현됩니다. 머리가 밥하고 닿게되면 뱀의 사이즈 (몸통의 길이) 가 증가합니다. 12조각을 먹은 뱀은 다음 단계로 올라갑니다.
  3. 정보 패널(게임의 상태 표시줄) 이 패널은 3개의 요소로 구성되어 있습니다:
    • 레벨. 현재 레벨을 보여줍니다.
    • 남은 음식. 남긴 음식의 갯수
    • 목숨 수. 현재 남은 목숨의 수를 보여줍니다.
  4. 패널. 3개의 버튼으로 되어있습니다:
    • "시작" 버튼. 현재 레벨을 시작합니다.
    • "일시정지" 버튼. 게임을 잠시 멈춥니다.
    • "그만하기" 버튼. 게임을 멈추고 첫 레벨로 돌아갑니다.

이 요소들은 전부 1번 그림에서 볼 수 있습니다:



작성자: MRoVas