ChessLang으로 첫 번째 체스 변형 만들기

첫 번째 게임 만들기

이 튜토리얼에서는 ChessLang을 사용하여 첫 번째 체스 변형인 "King of the Hill"을 만들어 보겠습니다.

목표

"King of the Hill"은 인기 있는 체스 변형으로, 킹을 보드 중앙 4개 칸 중 하나로 이동시키면 승리합니다. 표준 체크메이트도 여전히 유효합니다.

단계 1: 게임 정의

모든 ChessLang 파일은 게임 이름과 기반이 되는 게임으로 시작합니다:

chesslang
game: "King of the Hill"
extends: "Standard Chess"
  • game: 변형의 이름입니다
  • extends: 상속할 기본 규칙입니다. 대부분의 변형은 "Standard Chess"를 확장합니다

단계 2: 중앙 존 정의

승리 조건을 위한 "hill" 존을 정의합니다:

chesslang
board:
  zones:
    hill: [d4, d5, e4, e5]

존은 보드에서 이름이 지정된 영역입니다. 조건과 트리거에서 참조할 수 있습니다.

단계 3: 승리 조건 추가

새로운 승리 조건을 추가합니다:

chesslang
victory:
  add:
    hill: King in zone.hill
  • add: 기존 체크메이트 조건을 유지하면서 새 조건을 OR로 추가합니다
  • hill: King in zone.hill: 킹이 hill 존에 있으면 승리합니다

💡 조건 결합 규칙: 여러 승리 조건은 OR로 결합됩니다.

위 코드의 결과: checkmate OR hill - 둘 중 하나만 만족해도 승리!

완성된 코드

chesslang
game: "King of the Hill"
extends: "Standard Chess"

board:
  zones:
    hill: [d4, d5, e4, e5]

# 승리 조건: checkmate OR hill (OR 결합)
# 체크메이트 또는 킹이 중앙에 도달하면 승리
victory:
  add:
    hill: King in zone.hill

테스트하기

  1. 플레이그라운드로 이동합니다
  2. 위의 코드를 에디터에 붙여넣습니다
  3. "Compile" 버튼을 클릭합니다
  4. 게임을 플레이합니다!

승리 조건 확인

  • 킹을 d4, d5, e4, 또는 e5로 이동시켜 승리합니다
  • 또는 상대를 체크메이트하여 승리합니다

확장하기

승리 조건 교체

체크메이트 대신 hill 조건만 사용하려면 replace를 사용합니다:

chesslang
# replace: 기존 checkmate 조건을 hill로 교체
# 결과: hill 조건만 적용 (체크메이트 제거됨)
victory:
  replace:
    checkmate: King in zone.hill

승리 조건 제거

특정 조건만 제거하려면:

chesslang
# remove: 기존 조건 제거
victory:
  remove:
    - checkmate    # 체크메이트 제거
  add:
    hill: King in zone.hill    # 새 조건 추가

더 큰 존

더 큰 중앙 영역을 사용할 수 있습니다:

chesslang
board:
  zones:
    hill: [c3, c4, c5, c6, d3, d4, d5, d6, e3, e4, e5, e6, f3, f4, f5, f6]

시각적 표시 추가

존에 시각적 효과를 추가할 수 있습니다 (레벨 2):

chesslang
effect hill_marker {
  visual: highlight(gold, 0.3)
}

trigger mark_hill {
  on: game_start
  do: mark zone.hill with hill_marker
}

다음 단계

축하합니다! 첫 번째 체스 변형을 만들었습니다. 다음으로:

  • 레벨 1에서 더 많은 설정 옵션 배우기
  • 레벨 2에서 커스텀 기물 만들기
  • 예제에서 더 많은 변형 살펴보기

요약

키워드설명결합 방식
game변형 이름-
extends기반 게임-
board.zones이름 지정된 보드 영역-
victory.add새 승리 조건 추가OR 결합
victory.replace기존 조건 교체OR 유지
victory.remove기존 조건 제거-

📖 자세히 알아보기: 승리 조건 결합 규칙