2.1 Anchor 에서 '행마식'(move 등)이 칸을 활성화하고 '기준 위치'를 옮긴다는 것을 배웠습니다.

하지만 '행마식'은 한 가지 일을 더 합니다. 바로 실행 후 자신의 상태를 보고합니다.

식 연쇄의 생명 규칙

하나의 식 연쇄 안에서, 일반 식이 false 값을 보고받으면, 해당 식 연쇄의 실행이 중단됩니다.

(일반 식이란 jmp, not 등 특별한 제어식을 제외한 대부분의 식을 의미합니다.)


튜토리얼 룩(Rook)의 비밀

튜토리얼에서 take-move(1, 0) repeat(1);이 벽이나 기물을 만나면 "알아서" 멈췄던 이유가 바로 이 규칙 때문입니다.

take-move 식은 이렇게 "상태"를 보고합니다.

take-move는 적을 잡는 칸(마지막 칸)을 활성화한 뒤 false를 보고하여 "임무 완수, 연쇄 중단"을 알립니다.

take-move가 만난 대상 칸 활성화 위치 이동
빈 칸 true
적 기물 false
아군/벽 안 함 안 함 false

룩(Rook) 예시의 시각화

take-move(1, 0) repeat(1);을 다시 살펴보겠습니다.

기물 ♟️은 [c2]에, 아군 ⚪은 [f2]에 있습니다.

♟️ ⚪️
  1. [c2] -> [d2] (빈 칸)