https://youtube.com/shorts/P76GsDmj4ng?si=JSGeQbdNDbmAEbbm
이 예제에서는 3단계까지 배운 모든 지식을 총동원하여 벽에 한 번 튕기는 비숍을 단계별로 구축해 나가는 과정을 설명합니다.
우리의 목표:
먼저, take-move가 false를 반환해도 '식 연쇄'가 종료되지 않는 루프가 필요합니다. "3.1 고급 제어"에서 배운 do...while을 사용합니다.
do
take-move(1, 1)
while
Chessembly는 이 코드를 이렇게 실행합니다.
do는 do ... while을 시작하는 위치입니다.take-move(1, 1)이 실행됩니다.
[d3] 활성화 🔵, 기준 위치 [d3]로 이동, true 반환.[d3] 활성화 🔵, 기준 위치 [d3]로 이동, false 반환.[c2]에 머무름, false 반환.while 식이 바로 직전 식, 즉 take-move의 값을 확인합니다.
true일 때): 성공, do로 회귀. (슬라이드 계속)false일 때): 실패, do로 회귀하지 않고 do ... while 루프를 이탈. (슬라이드 종료)while은 "연쇄 종료의 예외"입니다. false를 받아도 연쇄를 종료시키지 않고, 다음 식으로 실행을 넘깁니다.peek(0, 0)슬라이드가 false로 멈췄습니다. 멈춘 이유는 적을 잡았거나, 벽에 막혔거나, 아군에 막혔거나 셋 중 하나입니다.