동굴 탐험 (순차)
햄스터 로봇이 길을 떠나 동굴 속을 탐험하려고 합니다.
동굴 속에는 햄스터가 좋아하는 해바라기 씨가 가득한 보물 상자가 있습니다.
아래 그림에서 햄스터 로봇이 보물 상자 앞까지 이동하려면 어떻게 움직여야 할지 생각해 봅시다.
도착 지점으로 이동한 후에는 보물 상자를 열 수 있도록 햄스터 로봇이 보물 상자 방향을 바라보아야 합니다.
다음 메소드들을 사용하면 말판 위에서 이동하거나 회전할 수 있습니다.
- boardForward(): 검은색 격자로 구성된 말판 위에서 한 칸 앞으로 이동합니다.
- boardLeft(): 검은색 격자로 구성된 말판 위에서 왼쪽 방향으로 제자리에서 90도 회전합니다.
- boardRight(): 검은색 격자로 구성된 말판 위에서 오른쪽 방향으로 제자리에서 90도 회전합니다.
햄스터 로봇을 말판의 출발 위치에 방향을 맞추어 올려놓고 보물 상자 앞까지 이동시켜 봅시다.
import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;
Hamster hamster;
void setup() {
hamster = Hamster.create(this);
}
void draw() {
}
void run() {
hamster.boardForward();
hamster.boardRight();
hamster.boardForward();
hamster.boardForward();
}
두 번째 동굴도 탐험해 봅시다.
import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;
Hamster hamster;
void setup() {
hamster = Hamster.create(this);
}
void draw() {
}
void run() {
hamster.boardForward();
hamster.boardForward();
hamster.boardRight();
hamster.boardForward();
hamster.boardForward();
hamster.boardRight();
hamster.boardForward();
hamster.boardForward();
}
세 번째 동굴도 탐험해 봅시다.
import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;
Hamster hamster;
void setup() {
hamster = Hamster.create(this);
}
void draw() {
}
void run() {
hamster.boardForward();
hamster.boardRight();
hamster.boardForward();
hamster.boardLeft();
hamster.boardForward();
hamster.boardRight();
hamster.boardForward();
hamster.boardLeft();
}
우물 찾기 (횟수 반복)
햄스터 로봇이 목이 마릅니다.
숲 속 우물을 향해 달려가야 합니다.
아래 그림에서 햄스터 로봇이 우물 앞까지 이동하려면 어떻게 움직여야 할지 생각해 봅시다.
도착 지점으로 이동한 후에는 햄스터 로봇이 물을 마실 수 있도록 우물 방향을 바라보아야 합니다.
import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;
Hamster hamster;
void setup() {
hamster = Hamster.create(this);
}
void draw() {
}
void run() {
hamster.boardLeft();
for(int i = 0; i < 3; ++i) {
hamster.boardForward();
}
hamster.boardRight();
}
두 번째 우물도 찾아 봅시다.
import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;
Hamster hamster;
void setup() {
hamster = Hamster.create(this);
}
void draw() {
}
void run() {
hamster.boardForward();
hamster.boardRight();
for(int i = 0; i < 3; ++i) {
hamster.boardForward();
}
}
세 번째 우물도 찾아 봅시다.
import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;
Hamster hamster;
void setup() {
hamster = Hamster.create(this);
}
void draw() {
}
void run() {
for(int i = 0; i < 2; ++i) {
hamster.boardForward();
hamster.boardRight();
hamster.boardForward();
}
hamster.boardForward();
}
네 번째 우물도 찾아 봅시다.
import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;
Hamster hamster;
void setup() {
hamster = Hamster.create(this);
}
void draw() {
}
void run() {
hamster.boardRight();
for(int i = 0; i < 2; ++i) {
hamster.boardForward();
hamster.boardRight();
hamster.boardForward();
hamster.boardLeft();
}
}
다섯 번째 우물도 찾아 봅시다.
import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;
Hamster hamster;
void setup() {
hamster = Hamster.create(this);
}
void draw() {
}
void run() {
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.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;
Hamster hamster;
void setup() {
hamster = Hamster.create(this);
}
void draw() {
}
void run() {
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.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;
Hamster hamster;
void setup() {
hamster = Hamster.create(this);
}
void draw() {
}
void run() {
for(int i = 0; i < 3; ++i) {
for(int j = 0; j < 3; ++j) {
hamster.boardForward();
}
hamster.boardRight();
}
}
여덟 번째 우물도 찾아 봅시다.
import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;
Hamster hamster;
void setup() {
hamster = Hamster.create(this);
}
void draw() {
}
void run() {
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();
}
목차
수업 자료 내려 받기
- 원본 그림 2017.01.16 버전 (34.7 MB)
햄스터 고급
- 행위 기반의 로봇 제어
- 경로 탐색
- 자리 바꾸기
Copyright 로봇SW교육원 All rights reserved.
어려운 일이 있으면 광운대학교 로봇학부 박광현 교수(
akaii@kw.ac.kr)에게 연락하세요.