move
를 만든다. 만약 움직일 수 없다면, 그대로 리턴한다.back
이 -1 이면 물체를 다시 되돌린다. 처음 만든 move 함수 안의 조건문은
case "R":
if(object[0]<7) {
object[0] += back;
return true;
}
R의 경우, 다음과 같이 물체의 현재 위치만을 고려하였다.
하지만 이렇게 하면 킹을 되돌릴 때, 이미 킹이 보드판의 경계에 있는 경우 (king의 x값==7) 해당 if문을 들어가지 않는다.
따라서, 다음과 같이 코드를 수정하여 back==-1 인 경우엔 if문을 항상 참으로 만들어 킹을 되돌릴 수 있다.
case "R":
if(object[0]<7 || back<0) {
object[0] += back;
return true;
}