ChessLang 문서 및 레퍼런스

ChessLang 문서

ChessLang 문서에 오신 것을 환영합니다. ChessLang은 커스텀 체스 변형을 만들기 위한 도메인 특화 언어(DSL)입니다.

빠른 링크

세 가지 레벨

ChessLang은 필요에 맞는 세 가지 복잡도 레벨을 제공합니다:

레벨 1: Configure (설정)

기본적인 수정을 위한 간단한 YAML 스타일 설정입니다.

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

💡 조건 결합 규칙: 여러 승리 조건은 OR로 결합됩니다. 위 예제에서는 체크메이트 또는 킹이 중앙 도달 시 승리합니다.

다음에 적합합니다:

  • 승리/무승부 조건 추가
  • 보드 설정 수정
  • 존(zone) 정의
  • 규칙 조정

레벨 1 배우기 →

레벨 2: Compose (조합)

커스텀 기물과 트리거를 위한 선언적 DSL입니다.

chesslang
piece Amazon {
  move: slide(orthogonal) | slide(diagonal) | leap(2, 1)
  capture: =move
  traits: [jump]
}

trigger explosion {
  on: capture
  do: remove pieces in radius(1) from target
}

다음에 적합합니다:

  • 커스텀 기물 정의
  • 보드 효과
  • 이벤트 트리거
  • 상태 추적

레벨 2 배우기 →

레벨 3: Script (스크립트)

복잡한 로직을 위한 JavaScript 스타일 스크립팅입니다.

chesslang
script {
  game.on("move", function(event) {
    if (event.piece.state.rage >= 3) {
      transform(event.piece, "RagingBerserker");
    }
  });
}

다음에 적합합니다:

  • 복잡한 AI 동작
  • 동적 능력
  • 커스텀 게임 흐름
  • 고급 유효성 검사

레벨 3 배우기 →

문서 구조

시작하기

언어 가이드

레퍼런스

예제

  • 모든 예제 - 전체 예제 모음
  • King of the Hill, Three-Check, Atomic Chess
  • 커스텀 기물, 효과, 트리거
  • Progressive Chess 등

표준 체스 기물

ChessLang은 "Standard Chess"에서 다음 기물들을 상속받습니다:

기물이동가치
Kingstep(any)
Queenslide(any)9
Rookslide(orthogonal)5
Bishopslide(diagonal)3
Knightleap(2, 1)3
Pawnstep(forward)1

도움이 필요하신가요?

  • 플레이그라운드 문제? 새로고침하거나 코드를 지워보세요
  • 구문 오류? 키워드 레퍼런스를 확인하세요
  • 이동 관련 질문? 패턴방향을 참고하세요
  • 예제가 필요하신가요? 예제 섹션을 둘러보세요

기여하기

ChessLang은 오픈소스입니다. 기여를 환영합니다!