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) 정의
- 규칙 조정
레벨 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
}다음에 적합합니다:
- 커스텀 기물 정의
- 보드 효과
- 이벤트 트리거
- 상태 추적
레벨 3: Script (스크립트)
복잡한 로직을 위한 JavaScript 스타일 스크립팅입니다.
chesslang
script {
game.on("move", function(event) {
if (event.piece.state.rage >= 3) {
transform(event.piece, "RagingBerserker");
}
});
}다음에 적합합니다:
- 복잡한 AI 동작
- 동적 능력
- 커스텀 게임 흐름
- 고급 유효성 검사
문서 구조
시작하기
언어 가이드
- 레벨 1: Configure - YAML 스타일 설정
- 레벨 2: Compose - 선언적 DSL
- 레벨 3: Script - JavaScript 스타일 스크립팅
레퍼런스
- 키워드 - 모든 키워드와 구문
- 패턴 - 이동 패턴
- 방향 - 방향 시스템
- 조건 - 조건 구문
- 액션 - 사용 가능한 액션
- 승리 & 무승부 - 조건 결합 규칙
- 스크립트 API - game, board 객체 API
예제
- 모든 예제 - 전체 예제 모음
- King of the Hill, Three-Check, Atomic Chess
- 커스텀 기물, 효과, 트리거
- Progressive Chess 등
표준 체스 기물
ChessLang은 "Standard Chess"에서 다음 기물들을 상속받습니다:
| 기물 | 이동 | 가치 |
|---|---|---|
| King | step(any) | ∞ |
| Queen | slide(any) | 9 |
| Rook | slide(orthogonal) | 5 |
| Bishop | slide(diagonal) | 3 |
| Knight | leap(2, 1) | 3 |
| Pawn | step(forward) | 1 |
도움이 필요하신가요?
- 플레이그라운드 문제? 새로고침하거나 코드를 지워보세요
- 구문 오류? 키워드 레퍼런스를 확인하세요
- 이동 관련 질문? 패턴과 방향을 참고하세요
- 예제가 필요하신가요? 예제 섹션을 둘러보세요
기여하기
ChessLang은 오픈소스입니다. 기여를 환영합니다!
- GitHub 저장소
- 버그 리포트 및 기능 요청
- 풀 리퀘스트 제출