• 검색 결과가 없습니다.

좌표와방향 -과일 위치 알려주기 1

N/A
N/A
Protected

Academic year: 2021

Share "좌표와방향 -과일 위치 알려주기 1"

Copied!
8
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

월드 미션 CODE 30. 좌표와방향

-과일 위치 알려주기 1. 토마토가 있는 셀로 이동 2. 토마토의 x좌표와 y좌표를 출력

3. "토마토 주세요."를 출력

repeat(“move()”,3);

turn_left();

repeat(“move()”,2);

set_color('yellow');

x=get_x(); y=get_y();

name = what_object();

print("토마토의 x좌표는 " +x);

print("토마토의 y좌표는 " +y);

print(name +" 주세요.");

31. 좌표와방향 - 어느 방향 을 바라보는지 알아내기

플레이봇이 (1,3)에서 출발 (1,1), (4,1), (4,2), (1,2)위치 를 차례로 방문할 때, 각각의 위치에서 발자국방향으로 플레 이봇을 회전시킨 후에

어느 방향을 바라보고 있는지 확인한 값을 출력한다.

미션수행 후 플레이봇은 목표 지점으로 이동.

<출력형식>

방향 확인 값 = 0 방향 확인 값 = 1 방향 확인 값 = 2 방향 확인 값 = 3

get_direction() : 플레이봇이 어느 방향을 바라보고 있는지 알아내는 함수, 플레이봇이 바 라보는 방향에 따라 (동쪽), 1 (북쪽), 2 (서쪽), 3 (남쪽)을 돌려준다

repeat(“move()”,2);

turn_left();

a=get_direction();

print("방향확인 값 = " +a);

clear_color();

repeat(“move()”,3);

turn_left();

a=get_direction();

print("방향확인 값 = " +a);

clear_color();

move();

turn_left();

a=get_direction();

print("방향확인 값 = " +a);

clear_color();

repeat(“move()”,3);

turn_left();

a=get_direction();

print("방향확인 값 = " +a);

clear_color();

turn_left();

repeat(“move()”,4);

turn_left();

move();

pick_object();

(2)

31-1. 좌표와방향 - 어느 방향 을 바라보는지 알아내기

플레이봇이 (1,1) - (5,1) - (5,5) - (1,5) 순으로 이동, 각 셀로 이동했을 때 발자국과 같은 방향으로 바라보게 하고 출력형식처럼 로봇의 방향 확인 값을 출력한다.

그리고 clear_color() 함수를 사 용하여 발자국이 있는 위치의 색을 지운다.

* 규칙을 찾고, 찾은 규칙을 사 용자 정의 함수로 만들어서 해 결

function 방향확인() { repeat("move()", 4) // 이동

turn_left() // 왼쪽으로 회전

a=get_direction() // 방향 확인

print("방향 확인 값 = "+a) // 방향 출력

clear_color() // 색 지우기

}

repeat("방향확인()", 4)

32. 좌표와방향, if문 - 강아 지집의 좌표출력

플레이봇이 강아지에게 먹이를 주러 강아지 집까지 간다.

강아지 집에 도착했을 때 플레이봇의 x좌표와 y좌표를 출력한다.

로봇의 방향이 바라보는 방향을 if문 을 활용하여 출력한다.

깃발 위치의 도착지점 색을 파란색 ("blue")으로 바꾼다.

// 새로운 명령어를 만드는 공간 function turn_right() { repeat(“move()”,3); } // 명령어를 실행하는 공간 move();move();

turn_right();

move();move();move();

turn_right();

move();

x=get_x();

y=get_y();

a=get_direction();

print("X의 좌표는 " + x);

print("Y의 좌표는 " + y);

if (a==0) {

print ("방향은 동쪽") } else if (a==1) {

print ("방향은 북쪽") } else if (a==2) {

(3)

33. 논리연산자

[미션] 플레이봇이 길을 가다가 장애 물을 만났다. 장애물이 문일 경우 문 을 열고 통과해서 도착지점까지 이동 할 수 있도록 프로그램을 작성하세요 [논리연산자] 여러 개의 조건을 조합 하여 보다 복잡한 조건을 나타낼 때 사용하는 것이 논리 연산자이다

&& (그리고 , AND) 연산자 → (a>=5)&&(a<10) 의 의미는 (a는 5보 다 크거나 같다) 그리고 (a는 10보다 작다)

따라서 a는 5보다 크거나 같고 10보 다 작은 수

|| (또는 , OR) 연산자 → (a==5)||(a==10) 의 의미는 (a는 5와 같다) 또는 (a는 10과 같다) 따라서 a 의 값은 5 또는 10

! (부정, NOT) 연산자

!(a==5) 의 의미는 (a는 5와 같다)가 니다 따라서 a는 5가 아니다 a && b a와 b를 모두 만족할때 참 a || b a 또는 b중 하나라도 만족하 면 참

! a : a가 아니다. a가 참이면 거짓, a가 거짓이면 참

// 새로운 명령어를 만드는 공간 function 장애물확인후이동() { a = front_is_wall()

b = front_is_door() if (a==false && b==true) { open_door() } move()

}

// 명령어를 실행하는 공간 repeat("장애물확인후이동()",3);

pick_object();

35. get_random() - 임의의 숫자만큼 이동하기

[미션] 플레이봇이 1~4 까지 의 숫자 중 임의의 숫자만큼 앞 으로가기 get_random() 함수를 활용하여 이동하기

밝은초록색셀을 파란색("blue") 으로 칠하고, 도착지점으로 이 동하여 깃발을 뽑(줍)도록 도와 주세요

[함수]get_random(작은수, 큰 수) 작은 수와 큰 수 사이의 숫 자 중에서 임의로 하나를 골라 주는 함수이다.

a=get_random(1,4);

repeat("move()",a);

popup(a +"칸 이동");

repeat("move()",4-a);

turn_left();

move();

set_color("blue");

turn_left();

move();

pick_object();

(4)

36. get_random(), if문 - 제비뽑기(가위바위보)

[미션] 플레이봇이 1~3까지 의 숫자 중 하나를 뽑은 결과를 아래의 출력형식과 같이 출력하 고 해당되는 숫자 만큼 앞으로 이동하고 1이면 가위, 2이면 바위, 3이면 보라고 출력한다.

그리고 도착지점 아래의 밝은초 록색 셀의 색을 파란색으로 칠 하고 도착지점의 깃발을 뽑(줍) 도록 도와주세요.

- get_random(), if문 을 활용 하여 해결하여 보세요.

a=get_random(1,3)

say("제비뽑은 숫자는 " +a);

repeat("move()",a);

if (a==1) {

say("결과는 가위") } else if (a==2) { say("결과는 바위") } else {

say("결과는 보") }

repeat("move()",4-a);

set_color("blue");

turn_left();

move();

pick_object();

37. for문 100까지 더하기

[미션] 플레이봇 학생들~!

이번에는 1부터 100까지 숫자의 합을 구해주세요. 결과는 얼마 인지

계산하여 출력형식처럼 출력하 고 모서리 네 군데의 밝은초록 색을 파란색("blue")으로 바꾸고 도착지점으로 이동하시오.

[출력형식] popup() 함수를 사 용하세요.

100까지의 합은 5050

[ 반복문 - for문 ] for문은 반 복처리를 효율적으로 수행하기 위한 제어문이다. 일반적으로 초기값, 반복을 계속하기 위한 조건, 증가방법을 차례로 표기 하며 이 세 가지 요소에 의해 반복횟수를 결정된다.

sum=0;

for (i=1 ; i<=100 ; i++) { sum=sum+i;

}

popup("100까지의 합은 "+sum);

for (i=1 ; i<=4 ; i++) { move(); move();

turn_left();

set_color("blue") }

move();

turn_left();

move()

(5)

38. for문 레인번호 표시 [미션] 플레이봇! 운동회를 맞 이하여 육상 경기장에 레인을 표시해야 한다. 4명이 달릴 수 있도록 1~4까지 각각의 레인(분 홍색셀)에 비퍼를 이용하여 레 인번호를 표시해라. 오바.

for (i=1 ; i<=4 ; i++) { move();

repeat("put_beeper()",i) }

move();move();

39. for문 - 바닥 색 알아내 기

[미션] 플레이봇 학생들~! 바 닥에 칠해진 색이 무엇인지 말 해볼까요?

for (i=1 ; i<=4 ; i++) { move();

c=get_color() say(c) }

turn_left();

move();

pick_object();

40. while문 1부터 100까지 합

[미션] while문을 활용하 여 1부터 100까지의 합을 계 산하고 출력해 보세요.

[while문]

while ( 조건식) { 해야 할 일 }

조건식에 만족 하는 동안 반 복하는 반복문 while문은 어떤 조건이 성립하는 동안 만 반복을 수행하는 제어문 이다.

sum=0;

i=0;

while (i<=100) { sum=sum+i;

i++;

}

popup("100까지의 합은 " +sum);

i=1

while (i<=4) { move(); move();

turn_left();

set_color("red");

i++;

}

move(); turn_left(); move();

put_object("도착")

(6)

41. switch문 윷놀이

[미션] 뒤집힌 막대수에 따른 윷놀 이

- 왼쪽의 소스를 이해한다.

- 윷을 던저 나온 결과 자리에 "흰바 둑알"를 한 그루 심고 목표지점으로 이동하여 깃발 위치 셀색을 파란색 ("blue")으로 칠해 주세요.

[ switch문 ] switch문은 여러 개의 case라는 선택의 가지에서 조건식의 값과 일치하는 것을 골라 해당되는 처리를 실행한다. 조건식의 값은 숫 자와 문자 모두 가능하며, 어떤 case 와도 맞지 않을 경우는 default로 넘 어간다. 각 case의 마지막에는 break 문을 써서 조건식의 값과 일 치하는 선택만 처리할 수 있도록 한 다.

a = get_random(1, 5) switch (a) {

case(1):

b="도"

break case(2):

b="개"

break case(3):

b="걸"

break case(4):

b="윷"

break default:

b="모"

}

c = "윷을 던지세요."

say(c) popup(b)

repeat("move()",a);

put_object("흰바둑알");

repeat("move()",9-a);

set_color("blue");

42. 1차원 배열

[미션] 일차원배열을 만들고 길 이를 구한 후에 자료를 출력해 보세요.

[배열] 동일한 특성을 가지며 일 정한 규칙에 따라 몇몇 요소가 나열되어 있는 데이터 집합을 묶어서 배열이라고 한다. 배열 은 복수의 동일한 형의 변수를 하나로 묶은 것으로 대량의 데 이터를 취급할 때나 여러 데이 터를 차례로 자동적으로 입출력 해야 할 때 사용하면 편리하다.

배열은 하나의 공간을 여러 개 a=[];

a[0]="유재석"

a[1]="강호동"

a[2]="신동엽"

a[3]="김연아"

a[4]="손연재"

b=a.length;

print("출연하는 연예인은 "+b+"명");

for (i=0 ; i<b ; i++) { print(a[i]) set_text(i);

move() }

(7)

43. 2차원 배열

[미션] 이차원배열을 만들고 길 이를 구한 후에 자료를 출력해 보세요.

[배열] 배열은 요소의 수에 따라 x축으로 늘어나는 것을 1차원 배열, x축과 y축으로 늘어나는 것을 2차원 배열이라고 한다.

a=[

["현아","신우","태우","호영"], ["민아","산들","호영","영수"]

] b=a.length

print("줄의 개수는 "+b);

for (i=0 ; i<b ; i++) { p ="a["+i+"]"

for (j=0 ; j<=3 ; j++) { q="["+j+"] = "

print(p+q+a[i][j]) set_text(i,j,i*5+j) set_color(i,j,"pink") }

move();

}

put_object("도착") move();

44. 토마토 주세요.

플레이봇이 가게를 운영하고 있 어요. 산타클로스 손님이 토마 토를 사러 왔습니다.

진열대를 둘러보고 진열되어 있 는 물건을 배열에 저장한 후에 가게에 있는 과일을 알려주고 산타클로스에게 토마토가 있는 위치를 알려주도록 도와주세요.

- 목표지점에 도착하면 깃발을 주워 주세요.

[출력형식]

저희 가게에 있는 물건입니다.

수박 포도 토마토 딸기 호박

토마토는 (4,3)에 있어요.

[미션 수행과정]

1) 진열대를 분홍색길을 이동하 면서 배열에 물건의 이름을 저 장한다. (배열선언 및 배열에 저 장)

2) 물건이 토마토이면 토마토의 좌표값을 저장한다.

3) 분홍색길을 따라 목표지점으

fruit = []

// 물건의 이름을 저장하기 위해 배열 선언

for (i=1 ; i<=5 ; i++) { move()

fruit[i] = what_object()

// 물건의 이름을 알아내어 fruit배열에 저장

if (fruit[i] == "토마토") { x = get_x()

y = get_y() } // 토마토의 좌표 저장

}

move();turn_left();

move(); move(); turn_left();

print("저희 가게에 있는 물건입니다. ") for (i=1 ; i<=5 ; i++) { print(fruit[i]) } // 물건의 이름을 출력

print("토마토는 ("+x+","+y+")에 있습니다.") pick_object()

(8)

45. 미로 찾기

[미션] 플레이봇이 미로 갖혀 있 습니다. 미로를 빠져나와 ‘도착’

지점까지 무사히 도착할 수 있 도록 도와주세요.

오른손 법칙은 미로가 모두 연 결되어 있다면(폐구간) 오른손으 로 벽을 잡고 따라가면 출구를 찾을 수 있는 방법입니다.

[알고리즘]

① 오른쪽에 벽이 없을 경우 : 오른쪽으로 회전 앞으로 한칸 이동

② 오른쪽에 벽이 있으면서 앞 쪽에 장애물이 있을 경우 : 왼 쪽으로 회전

③ 오른쪽에 벽이 있으면서 앞 쪽에 장애물이 없을 경우 : 앞 으로 한칸 이동

④ 목표지점에 도달할 때까지

① ② ③ 과정을 반복한다.

// 새로운 명령어를 만드는 공간 function turn_right() { repeat("turn_left()",3) }

// 명령어를 실행하는 공간 while ( what_object() != "도착") { if ( right_is_clear() ) { turn_right()

move()

} else if ( front_is_clear() ) { move()

} else {

turn_left() } }

pick_object()

참조

관련 문서

도서관

재무제표

 백분위수는 가장 작은 값부터 가장 큰 값 사이에 자료가 어떻게 퍼져 있는지에 대한 정보를 제공한다..  대학의

자유회상에서의 계열 위치 효과 b.. 자유회상에서의 계열 위치

 퀵정렬은 전체 리스트를 2개의 부분리스트로 분할하고, 각각의 부분리스트를 다시 퀵정렬로 정렬.. partition 함수의 반환값은 피봇의 위치가 된다. 1) left에서

임의의 모양을 가진 물체와 입자 사이에 작용하는 만유인력을 구하려 면 물체의 미소 질량이 입자에 작용하는 미소 힘을 구한 후 이들의 합

- 즉, 싱크로의 최소 단위는 싱크로 발신기(transmitter)와 싱크로 수신기 (receiver)의 결합으로 구성되며, 발신기 측에서 처음 만들어진 각 변위 신 호는

- 축산업으로 인한 환경부담을 낮추고, 사회로부터 인정받아야 중장기적으로 축산업 성장 가능 - 주요과제: 가축분뇨 적정 처리, 온실가스 저감, 축산악취 저감