1. Tutorial 에서는 take-move(1, 0);처럼 세미콜론( ; )으로 끝나는 한 줄의 코드를 사용했습니다. "시작하기"에서는 이것을 "하나의 독립된 설명"이라고 불렀습니다.
세미콜론( ; )으로 구분되는 하나의 블록을 식 연쇄라고 부릅니다.
식 연쇄가 중요한 이유는, 연쇄 내부에서는 '기준 위치'가 계속 이동하기 때문입니다.
move(1, 0)과 같은 '행마식'이 실행되면, '기준 위치' 🌟는 (1, 0)만큼 이동합니다.; )을 만나 '식 연쇄'가 끝나면, '기준 위치' 🌟는 다음 연쇄를 위해 다시 "현재 기물이 있는 칸"으로 초기화됩니다.이 차이를 보여주는 두 가지 예시가 있습니다.
move(1, 0) move(1, 0);
이 행마법은 다음과 같이 해석됩니다. (기물이 [c2]에 있다고 가정해 봅시다.)
초기 상태: '기준 위치' 🌟는 기물 ♟️과 함께 [c2]에 있습니다.
| ♟️🌟 | ||||
move(1, 0) 실행:
행동 1 (활성화): 현재 '기준 위치' (🌟, [c2])에서 (1, 0) 칸 (즉, [d2])을 활성화합니다.
기물을 클릭란 후 활성화된 칸을 클릭하거나, 기물을 끌어서 활성화된 칸 위에 놓는다면 기물이 해당 위치로 이동합니다.
| ♟️🌟 | 🔵 | |||
행동 2 (이동): '기준 위치' 🌟가 [d2]로 이동합니다.
| ♟️ | 🔵🌟 | |||
만약 move(1, 0) move(1, 0); 대신 move(1, 0); move(1, 0);이 입력된다면, 위 과정만 2번 실행되어 결과적으로 move(1, 0); 한 번만 입력한 것과 동일한 행마법이 표현됩니다.
move(1, 0) 실행:
행동 1 (활성화): 새로운 '기준 위치' (🌟, [d2])에서 (1, 0) 칸 (즉, [e2])을 활성화합니다.
| ♟️ | 🔵🌟 | 🔵 | ||
행동 2 (이동): '기준 위치' 🌟가 [e2]로 이동합니다.
| ♟️ | 🔵 | 🔵🌟 | ||
세미콜론( ; )을 만나 연쇄가 종료됩니다.
최종 결과
| ♟️ | 🔵 | 🔵 | ||
[d2]와 [e2] (즉, (1, 0)과 (2, 0)) 두 칸이 모두 활성화됩니다.