ChessLang 언어 완전 레퍼런스

레퍼런스

ChessLang 언어의 완전한 레퍼런스 문서입니다.

빠른 탐색

섹션설명
키워드모든 언어 키워드
패턴이동 패턴
방향방향 시스템
조건조건 구문
액션사용 가능한 액션
승리 & 무승부승리/무승부 조건 및 결합 규칙
스크립트 APIgame, 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

방향 그룹:

그룹포함
orthogonalN, S, E, W
diagonalNE, NW, SE, SW
any모든 8방향

상대 방향:

방향
forwardNS
backwardSN

조건

이동, 트리거, 승리 조건을 위한 조건입니다.

이동 조건:

조건설명
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기물이 이동 불가 (킹 노출)

예약 값

플레이어:

  • White
  • Black

기물 타입:

  • 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

참고