ChessLang 키워드와 사용법의 완전한 목록
키워드 레퍼런스
레벨과 카테고리별로 정리된 ChessLang의 모든 키워드 완전 레퍼런스입니다.
레벨 1 키워드
게임 정의
| 키워드 | 설명 | 예시 |
|---|---|---|
game | 변형의 이름 | game: "My Variant" |
extends | 상속할 기본 게임 | extends: "Standard Chess" |
보드 설정
| 키워드 | 설명 | 예시 |
|---|---|---|
board | 보드 설정 블록 | board: |
size | 보드 크기 | size: 8x8 |
zones | 이름 지정된 보드 영역 | zones: |
배치
| 키워드 | 설명 | 예시 |
|---|---|---|
setup | 초기 기물 배치 | setup: |
White | 백 플레이어의 기물 | White: |
Black | 흑 플레이어의 기물 | Black: |
add | 기존 배치에 추가 | add: |
modify | 기존 배치 수정 | modify: |
remove | 배치에서 제거 | remove: |
승리 & 무승부
⚠️ 핵심: 여러 조건은 OR로 결합됩니다. 하나라도 만족하면 게임이 종료됩니다.
| 키워드 | 설명 | 결합 방식 | 예시 |
|---|---|---|---|
victory | 승리 조건 블록 | - | victory: |
draw | 무승부 조건 블록 | - | draw: |
add | 새 조건 추가 | 기존 OR 새 조건 | add: |
replace | 같은 이름의 조건 교체 | OR 유지 | replace: |
remove | 조건 제거 | - | remove: |
조건 결합 예시:
chesslang
# 결과: checkmate OR hill (하나라도 만족시 승리)
victory:
add:
hill: King in zone.hill
# AND 로직은 단일 조건 내에서:
victory:
add:
complex: King in zone.hill and opponent.pieces <= 5규칙
| 키워드 | 설명 | 예시 |
|---|---|---|
rules | 규칙 수정 | rules: |
castling | 캐슬링 활성화/비활성화 | castling: false |
en_passant | 앙파상 활성화/비활성화 | en_passant: true |
promotion | 승진 규칙 | promotion: |
check | 체크 규칙 | check: |
레벨 2 키워드
기물 정의
| 키워드 | 설명 | 예시 |
|---|---|---|
piece | 커스텀 기물 정의 | piece Knight { } |
move | 이동 패턴 | move: leap(2, 1) |
capture | 잡기 패턴 | capture: =move |
traits | 특수 능력 | traits: [jump, royal] |
state | 기물 상태 | state: { rage: 0 } |
value | 기물 가치 | value: 3 |
symbol | 표시 심볼 | symbol: "N" |
패턴
| 키워드 | 설명 | 예시 |
|---|---|---|
step | 고정 거리 이동 | step(forward) |
slide | 무제한 거리 | slide(diagonal) |
leap | 점프 이동 | leap(2, 1) |
hop | 기물 뛰어넘기 | hop(orthogonal) |
패턴 수정자
| 키워드 | 설명 | 예시 |
|---|---|---|
where | 조건 추가 | step(forward) where empty |
| | Or 조합자 | slide(N) | slide(S) |
+ | Then 조합자 | step(N) + slide(E) |
* | 반복 | step(forward) * 3 |
효과
| 키워드 | 설명 | 예시 |
|---|---|---|
effect | 보드 효과 정의 | effect fire { } |
damages | 피해 대상 | damages: [any] |
blocks | 차단 대상 | blocks: [enemy] |
on_enter | 진입 액션 | on_enter: capture(entering) |
on_exit | 퇴장 액션 | on_exit: heal(exiting) |
duration | 효과 지속 시간 | duration: 3 |
visual | 시각 스타일 | visual: highlight(red) |
트리거
| 키워드 | 설명 | 예시 |
|---|---|---|
trigger | 트리거 정의 | trigger explode { } |
on | 이벤트 타입 | on: capture |
when | 조건 | when: piece.type == Bomb |
do | 액션 | do: remove piece |
이벤트
| 키워드 | 설명 |
|---|---|
move | 모든 이동 |
capture | 기물 잡힘 |
check | 체크 줌 |
turn_start | 턴 시작 |
turn_end | 턴 종료 |
game_start | 게임 시작 |
game_end | 게임 종료 |
액션
| 키워드 | 설명 | 예시 |
|---|---|---|
set | 값 설정 | set piece.state.x = 1 |
create | 기물 생성 | create Pawn at e4 for White |
remove | 기물 제거 | remove piece |
transform | 타입 변경 | transform piece to Queen |
mark | 효과 적용 | mark pos with fire |
move | 기물 이동 | move piece to target |
win | 승자 선언 | win White |
lose | 패자 선언 | lose Black |
draw | 무승부 선언 | draw |
내장 특성 (Traits)
| 특성 | 설명 |
|---|---|
royal | 잡히면 패배 (체크메이트 대상) |
jump | 다른 기물을 뛰어넘을 수 있음 |
phase | 다른 기물을 통과할 수 있음 |
promote | 끝에 도달하면 승진 가능 |
immune | 잡히지 않음 |
explosive | 잡히면 주변 기물을 파괴 |
레벨 3 키워드
변수
| 키워드 | 설명 | 예시 |
|---|---|---|
let | 변경 가능한 변수 | let x = 5; |
const | 변경 불가능한 상수 | const y = 10; |
제어 흐름
| 키워드 | 설명 | 예시 |
|---|---|---|
if | 조건문 | if (x > 0) { } |
else | 대안 | else { } |
for | For 루프 | for (let i = 0; i < 8; i++) |
while | While 루프 | while (active) { } |
break | 루프 탈출 | break; |
continue | 다음 반복 | continue; |
return | 값 반환 | return result; |
함수
| 키워드 | 설명 | 예시 |
|---|---|---|
function | 함수 정의 | function calc(x) { } |
=> | 화살표 함수 | (x) => x * 2 |
스크립트 블록
| 키워드 | 설명 | 예시 |
|---|---|---|
script | 스크립트 블록 | script { } |
연산자
산술
| 연산자 | 설명 | 예시 |
|---|---|---|
+ | 덧셈 | a + b |
- | 뺄셈 | a - b |
* | 곱셈 | a * b |
/ | 나눗셈 | a / b |
% | 나머지 | a % b |
비교
| 연산자 | 설명 | 예시 |
|---|---|---|
== | 같음 | a == b |
!= | 다름 | a != b |
< | 미만 | a < b |
> | 초과 | a > b |
<= | 이하 | a <= b |
>= | 이상 | a >= b |
논리
| 연산자 | 설명 | 예시 |
|---|---|---|
and | 논리 AND | a and b |
or | 논리 OR | a or b |
not | 논리 NOT | not a |
&& | AND (레벨 3) | a && b |
|| | OR (레벨 3) | a || b |
! | NOT (레벨 3) | !a |
대입
| 연산자 | 설명 | 예시 |
|---|---|---|
= | 대입 | x = 5 |
+= | 덧셈 대입 | x += 1 |
-= | 뺄셈 대입 | x -= 1 |
*= | 곱셈 대입 | x *= 2 |
/= | 나눗셈 대입 | x /= 2 |
내장 값
색상/플레이어
| 값 | 설명 |
|---|---|
White | 백 플레이어 |
Black | 흑 플레이어 |
기물 타입
| 값 | 설명 |
|---|---|
King | 킹 기물 |
Queen | 퀸 기물 |
Rook | 룩 기물 |
Bishop | 비숍 기물 |
Knight | 나이트 기물 |
Pawn | 폰 기물 |
불리언
| 값 | 설명 |
|---|---|
true | 참 |
false | 거짓 |
null | 널 값 |
예약어
다음 단어들은 예약되어 있으며 식별자로 사용할 수 없습니다:
text
game, extends, board, size, zones, setup, pieces, victory, draw, rules,
piece, pattern, effect, trigger, action, move, capture, traits, state,
on, when, do, where, if, else, for, while, break, continue, return,
function, let, const, script, true, false, null, and, or, not,
White, Black, King, Queen, Rook, Bishop, Knight, Pawn