동굴 탐험 (순차)
햄스터 로봇이 길을 떠나 동굴 속을 탐험하려고 합니다.
동굴 속에는 햄스터가 좋아하는 해바라기 씨가 가득한 보물 상자가 있습니다.
아래 그림에서 햄스터 로봇이 보물 상자 앞까지 이동하려면 어떻게 움직여야 할지 생각해 봅시다.
도착 지점으로 이동한 후에는 보물 상자를 열 수 있도록 햄스터 로봇이 보물 상자 방향을 바라보아야 합니다.
다음 메소드들을 사용하면 말판 위에서 이동하거나 회전할 수 있습니다.
- boardForward(): 검은색 격자로 구성된 말판 위에서 한 칸 앞으로 이동합니다.
- boardLeft(): 검은색 격자로 구성된 말판 위에서 왼쪽 방향으로 제자리에서 90도 회전합니다.
- boardRight(): 검은색 격자로 구성된 말판 위에서 오른쪽 방향으로 제자리에서 90도 회전합니다.
햄스터 로봇을 말판의 출발 위치에 방향을 맞추어 올려놓고 보물 상자 앞까지 이동시켜 봅시다.
import org.roboid.hamster.Hamster;
public class Controller {
public static void main(String[] args) {
Hamster hamster = new Hamster();
hamster.boardForward();
hamster.boardRight();
hamster.boardForward();
hamster.boardForward();
}
}
두 번째 동굴도 탐험해 봅시다.
import org.roboid.hamster.Hamster;
public class Controller {
public static void main(String[] args) {
Hamster hamster = new Hamster();
hamster.boardForward();
hamster.boardForward();
hamster.boardRight();
hamster.boardForward();
hamster.boardForward();
hamster.boardRight();
hamster.boardForward();
hamster.boardForward();
}
}
세 번째 동굴도 탐험해 봅시다.
import org.roboid.hamster.Hamster;
public class Controller {
public static void main(String[] args) {
Hamster hamster = new Hamster();
hamster.boardForward();
hamster.boardRight();
hamster.boardForward();
hamster.boardLeft();
hamster.boardForward();
hamster.boardRight();
hamster.boardForward();
hamster.boardLeft();
}
}
우물 찾기 (횟수 반복)
햄스터 로봇이 목이 마릅니다.
숲 속 우물을 향해 달려가야 합니다.
아래 그림에서 햄스터 로봇이 우물 앞까지 이동하려면 어떻게 움직여야 할지 생각해 봅시다.
도착 지점으로 이동한 후에는 햄스터 로봇이 물을 마실 수 있도록 우물 방향을 바라보아야 합니다.
import org.roboid.hamster.Hamster;
public class Controller {
public static void main(String[] args) {
Hamster hamster = new Hamster();
hamster.boardLeft();
for(int i = 0; i < 3; ++i) {
hamster.boardForward();
}
hamster.boardRight();
}
}
두 번째 우물도 찾아 봅시다.
import org.roboid.hamster.Hamster;
public class Controller {
public static void main(String[] args) {
Hamster hamster = new Hamster();
hamster.boardForward();
hamster.boardRight();
for(int i = 0; i < 3; ++i) {
hamster.boardForward();
}
}
}
세 번째 우물도 찾아 봅시다.
import org.roboid.hamster.Hamster;
public class Controller {
public static void main(String[] args) {
Hamster hamster = new Hamster();
for(int i = 0; i < 2; ++i) {
hamster.boardForward();
hamster.boardRight();
hamster.boardForward();
}
hamster.boardForward();
}
}
네 번째 우물도 찾아 봅시다.
import org.roboid.hamster.Hamster;
public class Controller {
public static void main(String[] args) {
Hamster hamster = new Hamster();
hamster.boardRight();
for(int i = 0; i < 2; ++i) {
hamster.boardForward();
hamster.boardRight();
hamster.boardForward();
hamster.boardLeft();
}
}
}
다섯 번째 우물도 찾아 봅시다.
import org.roboid.hamster.Hamster;
public class Controller {
public static void main(String[] args) {
Hamster hamster = new Hamster();
for(int i = 0; i < 3; ++i) {
hamster.boardForward();
}
hamster.boardRight();
for(int i = 0; i < 3; ++i) {
hamster.boardForward();
}
hamster.boardLeft();
}
}
여섯 번째 우물도 찾아 봅시다.
import org.roboid.hamster.Hamster;
public class Controller {
public static void main(String[] args) {
Hamster hamster = new Hamster();
for(int i = 0; i < 2; ++i) {
hamster.boardForward();
hamster.boardRight();
hamster.boardForward();
}
for(int i = 0; i < 2; ++i) {
hamster.boardForward();
hamster.boardLeft();
hamster.boardForward();
}
}
}
일곱 번째 우물도 찾아 봅시다.
import org.roboid.hamster.Hamster;
public class Controller {
public static void main(String[] args) {
Hamster hamster = new Hamster();
for(int i = 0; i < 3; ++i) {
for(int j = 0; j < 3; ++j) {
hamster.boardForward();
}
hamster.boardRight();
}
}
}
여덟 번째 우물도 찾아 봅시다.
import org.roboid.hamster.Hamster;
public class Controller {
public static void main(String[] args) {
Hamster hamster = new Hamster();
for(int i = 0; i < 2; ++i) {
for(int j = 0; j < 2; ++j) {
hamster.boardForward();
hamster.boardRight();
hamster.boardForward();
}
hamster.boardLeft();
}
hamster.boardForward();
hamster.boardRight();
}
}
목차
More Advanced
- Behavior based robot control
- Path navigation
- Swap
Copyright Robot Software Education Institute. All rights reserved.
Please contact prof. Kwang-Hyun Park (
akaii@kw.ac.kr) if you have any problem.