ChessLang 언어 완전 레퍼런스
레퍼런스
ChessLang 언어의 완전한 레퍼런스 문서입니다.
빠른 탐색
| 섹션 | 설명 |
|---|---|
| 키워드 | 모든 언어 키워드 |
| 패턴 | 이동 패턴 |
| 방향 | 방향 시스템 |
| 조건 | 조건 구문 |
| 액션 | 사용 가능한 액션 |
| 승리 & 무승부 | 승리/무승부 조건 및 결합 규칙 |
| 스크립트 API | game, board 객체 API |
키워드
예약어와 구문의 완전한 목록입니다.
카테고리:
- 게임 정의 (
game,extends) - 보드 설정 (
board,zones,size) - 기물 정의 (
piece,move,capture,traits) - 효과와 트리거 (
effect,trigger,on,when,do) - 제어 흐름 (
if,else,for,while) - 스크립팅 (
script,function,let,const)
이동 패턴
기물이 보드에서 이동하는 방법입니다.
패턴 유형:
| 패턴 | 설명 | 예시 |
|---|---|---|
step | 고정 거리 | step(forward) |
slide | 막힐 때까지 | slide(diagonal) |
leap | 점프 이동 | leap(2, 1) |
hop | 기물 뛰어넘기 | hop(orthogonal) |
조합자:
| 조합자 | 설명 | 예시 |
|---|---|---|
| | 또는 | slide(N) | slide(S) |
+ | 그 다음 | step(N) + slide(E) |
* | 반복 | step(N) * 3 |
방향
이동을 위한 방향 시스템입니다.
절대 방향:
text
NW N NE
↖ ↑ ↗
W ← · → E
↙ ↓ ↘
SW S SE방향 그룹:
| 그룹 | 포함 |
|---|---|
orthogonal | N, S, E, W |
diagonal | NE, NW, SE, SW |
any | 모든 8방향 |
상대 방향:
| 방향 | 백 | 흑 |
|---|---|---|
forward | N | S |
backward | S | N |
조건
이동, 트리거, 승리 조건을 위한 조건입니다.
이동 조건:
| 조건 | 설명 |
|---|---|
empty | 대상이 비어있음 |
enemy | 대상에 적이 있음 |
clear | 경로가 막히지 않음 |
first_move | 첫 이동 |
논리 연산자:
| 연산자 | 설명 |
|---|---|
and | 둘 다 참 |
or | 하나라도 참 |
not | 부정 |
액션
게임 상태를 수정하는 명령입니다.
기물 액션:
| 액션 | 설명 |
|---|---|
set | 상태 수정 |
create | 기물 생성 |
remove | 기물 제거 |
transform | 타입 변경 |
보드 액션:
| 액션 | 설명 |
|---|---|
mark | 효과 적용 |
unmark | 효과 제거 |
게임 액션:
| 액션 | 설명 |
|---|---|
win | 승자 선언 |
draw | 무승부 선언 |
표준 기물
"Standard Chess"에서 상속받는 기물들:
chesslang
piece King {
move: step(any)
traits: [royal, castle]
}
piece Queen {
move: slide(any)
}
piece Rook {
move: slide(orthogonal)
traits: [castle]
}
piece Bishop {
move: slide(diagonal)
}
piece Knight {
move: leap(2, 1)
traits: [jump]
}
piece Pawn {
move: step(forward) where empty
move: step(forward, 2) where first_move and clear and empty
capture: step(forward-diagonal) where enemy
traits: [promote, en_passant]
}내장 특성
| 특성 | 설명 |
|---|---|
royal | 잡히면 패배 |
jump | 기물을 뛰어넘을 수 있음 |
castle | 캐슬링 가능 |
promote | 승진 가능 |
en_passant | 앙파상 가능 |
내장 효과
| 효과 | 설명 |
|---|---|
check | 킹이 위협받음 |
pin | 기물이 이동 불가 (킹 노출) |
예약 값
플레이어:
WhiteBlack
기물 타입:
King,Queen,Rook,Bishop,Knight,Pawn
불리언:
true,false,null
파일 구조
일반적인 ChessLang 파일:
chesslang
# 1. 게임 정의
game: "My Variant"
extends: "Standard Chess"
# 2. 보드 설정
board:
zones:
name: [squares...]
# 3. 커스텀 기물
piece Name {
move: pattern
capture: pattern
traits: [...]
state: { ... }
}
# 4. 효과
effect name {
on_enter: action
visual: highlight(color)
}
# 5. 트리거
trigger name {
on: event
when: condition
do: action
}
# 6. 스크립트
script {
// JavaScript 스타일 코드
}
# 7. 배치
setup:
White:
Piece: [squares...]
Black:
Piece: [squares...]
# 8. 승리/무승부 조건
victory:
add:
name: condition
draw:
add:
name: condition
# 9. 규칙
rules:
setting: value