조컴퓨터

[Standford Karel] 8-5 풀이 본문

공부 방향 설계

[Standford Karel] 8-5 풀이

챠오위 2022. 2. 21. 15:41

스탠포드 대학교에서 개발한 Karel 이라는 게임을 알게 되어 해보았다.

 

비교적 간단하다. Karel(디지바이스 같은 아이) 가 정답에서 표기하는 위치에 존재하면 되는 게임이다. 

8-5 에서 요구하는 사항은 다음과 같다.

 

Karel 의 처음 위치
Karel 의 목표 지점(GOAL)

 

Karel 이 Beeper 를 놓는 방향으로만 로직을 짜다가 마지막 위치가 계속 왼쪽 끝에 놓이길래 그제서야 깨달았다.

그래프(게임판) 자체가 짝*짝이라 Karel 이 앞만 보면 안된다는 것을... 뒤로 후퇴도 해야한다는 것을...

 

그래서 한번 전진했다가 뒤로 후퇴하고 다시 전진했다가 뒤로 후퇴하는 로직으로 다시 작성했다.

 

//Make Karel fill the world
//with beepers
function main() {
   //your code here
   putBeeperLine();
   while(leftIsClear()) {
      goBack();
      doGo();
   }
}

function putBeeperLine(){
   putBeeper();
   while(frontIsClear()) {
      move();
      putBeeper();
   }
}

function goBack() {
   turnAround();
   while(frontIsClear()) {
      move();
   }
}

function doGo() {
   turnRight();
   move();
   turnRight();
   putBeeperLine();
}

 

완료