ChessLang 언어 완전 가이드
언어 가이드
ChessLang은 다중 레벨 도메인 특화 언어입니다. 필요에 맞는 레벨을 선택하세요:
개요
레벨 1: Configure (설정)
간단한 수정을 위한 YAML 스타일 구문입니다. 프로그래밍 지식이 필요 없습니다.
chesslang
game: "My Variant"
extends: "Standard Chess"
board:
zones:
safe: [d4, d5, e4, e5]
victory:
add:
safe_king: King in zone.safe기능:
- 게임 정의 및 상속
- 보드 존
- 기물 배치 수정
- 승리 및 무승부 조건
- 규칙 조정
레벨 2: Compose (조합)
커스텀 기물, 효과, 트리거를 만들기 위한 선언적 DSL입니다.
chesslang
piece Phoenix {
move: slide(diagonal)
capture: =move
state: { lives: 2 }
}
effect fire {
damages: [any]
visual: highlight(red)
}
trigger respawn {
on: capture
when: captured.type == Phoenix and captured.state.lives > 0
do: create Phoenix at captured.startPos
}기능:
- 커스텀 기물 정의
- 이동 패턴 (step, slide, leap, hop)
- 패턴 조합자 (|, +, *)
- 조건 (where)
- 보드 효과
- 이벤트 트리거
- 상태 관리
레벨 3: Script (스크립트)
복잡한 게임 로직을 위한 JavaScript 스타일 스크립팅입니다.
chesslang
script {
// 커스텀 유효성 검사
Coward.validate = function(piece, move) {
const enemies = board.pieces.filter(p => p.owner != piece.owner);
for (const enemy of enemies) {
if (distance(move.to, enemy.pos) < distance(piece.pos, enemy.pos)) {
return { valid: false, reason: "Coward cannot approach enemies" };
}
}
return { valid: true };
};
// 이벤트 핸들러
game.on("capture", function(event) {
if (event.piece.type == "Vampire") {
event.piece.state.hp += event.captured.value;
}
});
}기능:
- 변수와 함수
- 제어 흐름 (if/else, for, while)
- 내장 객체 (board, game, piece)
- 이벤트 핸들러
- 커스텀 액션과 유효성 검사
- AI 평가 함수
레벨 혼합
하나의 파일에서 세 레벨을 모두 결합할 수 있습니다:
chesslang
# 레벨 1: 설정
game: "Advanced Variant"
extends: "Standard Chess"
board:
zones:
danger: [d4, d5, e4, e5]
# 레벨 2: 커스텀 기물
piece Vampire {
move: step(any)
capture: =move
state: { hp: 5 }
}
effect poison {
on_turn: damage occupant by 1
visual: highlight(green)
}
# 레벨 3: 복잡한 로직
script {
Vampire.on("capture", function(piece, captured) {
piece.state.hp += captured.value;
if (piece.state.hp >= 15) {
transform(piece, "AncientVampire");
}
});
}
# 레벨 1: 설정
setup:
add:
White:
Vampire: [d2]
Black:
Vampire: [d7]올바른 레벨 선택하기
레벨 1을 사용할 때:
- 간단한 규칙 수정
- 새로운 승리/무승부 조건 추가
- 시작 위치 변경
- King of the Hill이나 Three-Check 같은 변형 만들기
레벨 2를 사용할 때:
- 커스텀 기물 생성
- 보드 효과 추가
- 게임 이벤트에 대한 트리거 설정
- 기물 상태 관리
레벨 3를 사용할 때:
- 복잡한 유효성 검사 구현
- 동적 능력 생성
- 커스텀 AI 평가 구축
- 게임 흐름 제어