일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 패트릭 브링리
- 변곡점
- 단편 드라마
- 앱
- 휴먼명조
- 욱
- 선각자
- Code Blast
- 동영상 플레이어
- 코드 폭발 효과
- 4차 산업혁명
- 수학적 귀납법
- 중학교 교육과정
- 2021년 튜링상
- 머신러닝
- 매트로폴리탄 미술관
- Visual Studio Code
- 베스트 극장
- 누구를 위한 교육과정인가?
- 블록 코딩
- 알프레드 에이호
- 제프리 울만
- 인공지능
- MontyHall
- 2022 개정 교육과정
- 안드로이드
- code.org
- 파일 검색
- 나만의 독서법
- 박사 논문
- Today
- Total
코딩하는 공무원
Alice 컴퓨터 프로그래밍의 시작 : 3장. 연습문제 본문
1. 갤런당 주행 거리(Miles per Gallon, MPG)
월드를 하나 만들되, 자동차에 넣을 수 있는 연료의 총 갤런과 연료를 가득 넣고 최대한 갈 수 있는 총 마일을 입력 받도록 하자. 입력 받은 값을 변수에 저장한다. 또한, 자동차의 갤런당 주행 거리를 저장하는 변수가 있어야 한다. 다음 식을 사용하여 갤런당 주행 거리(MPG)를 계산하라.
MPG = miles / gallons
(단, 위의 식은 MPG set value to (miles / gallons) 명령문을 사용한다.)
월드에는 사람(People 컬렉션에 있음) 1명과 차(Vehicles 컬렉션에 있음) 1대가 있어야 한다. 초기 화면에서 자동차는 카메라를 벗어나, 보이지 않은 위치에 있어야 한다. 데이터를 입력하고 나면 사람이 카메라로 다가온다. 그리고 차가 달려와 시야에 들어오고, 카메라 앞에서 멈춘다. 이때 그 사람은 사용자로부터 입력 받은 데이터를 토대로 계산한 자동차의 연비(MPG)를 말한다. 그런 다음에 자동차는 그대로 달려가서 카메라의 시야에서 벗어난다. 그림 3-58은 이 월드의 예시 화면이다.
그림 3-58 MPG 월드
2. 테이블 위의 펭귄
한 마리의 펭귄과 한 개의 테이블이 있는 월드를 만들자. 펭귄은 테이블 옆에 선 채 테이블 마주 보고 있다. 펭귄은 날갯짓을 하여(wing_flap 메서드를 사용한다.) 테이블의 높이보다(table의 height 함수를 사용하여 높이를 구한다.) 정확하게 1미터 더 높게 공중으로 올라간다. 그런 다음, 앞으로 이동해서 거의 테이블의 중앙까지 온 후, 테이블 위로 내려온다.
3. 화씨를 섭씨로
다음은 화씨 온도를 섭씨 온도로 바꿀 때 사용하는 수식이다.
C = ( 5 / 9 ) * ( F - 32 )
위 식에서, C는 섭씨 온도이고 F는 화씨 온도이다. 사용자로부터 화씨 온도를 입력받는 월드를 만들어 보자. 수식을 사용하여 섭씨 온도로 변환하고 그 바뀐 온도를 변수에 저장한다. 계산한 섭씨 온도를 People 컬렉션에 있는 캐릭터가 말풍선으로 이야기한다. 그림 3-59는 이 월드의 예시 화면이다.
그림 3-59 “화씨를 섭씨로” 월드
4. 소형 비행기
2개의 소형 비행기(Vehicles 컬렉션에 있음)가 있는 월드를 만들어 보자. 월드가 플레이 되면, 두 소형 비행기가 동시에 서로를 마주본다. 그리고 동시에 서로를 향해서 움직인다. 소형비행기들은 서로에게 가까이 다가가서 멈춘다. 그러나 충돌하지는 않는다. 소형비행기들을 어디에 위치시켜 놓든지, 동일한 방식으로 움직여야 한다.
5. 닭 시계
농부 MacDonald의 농장에는 시간을 알려주는 닭 한 마리가 있다. 이 닭은 현재 시(hour) 만큼 날갯짓을 하도록 훈련을 받은 상태다. 예를 들어, 3시라면, 닭은 3번의 날갯짓을 한다. 농부 MacDonald의 닭이 날갯짓을 해서 현재가 몇 시인지 알려주는 월드를 만들어 보자.
Web Gallery의 Animals 컬렉션에는 2개의 Chicken 클래스가 있다. 이 월드에서는 그림 3-60의 Chicken 클래스 인스턴스를 추가한다. 이 클래스는 날갯짓을 하는 flap이라는 맞춤형 메서드가 있다. 이 메서드는 times와 speed라는 2개의 인수를 전달 받는다. times 인수는 닭이 날갯짓하는 횟수를 결정하고, speed 인수는 날갯짓의 속도(값이 클수록, 더 빨리 날갯짓을 한다.)를 결정한다.
그림 3-60 Chicken 클래스
world 객체는 time이라는 이름의 함수 카테고리를 가지고 있다. time 카테고리의 함수 중에는 hour of AM or PM이라는 함수가 있는데, 컴퓨터의 내부 시계로부터 현재 시간을 구해서 시(hour)를 반환한다. 이 함수를 이용해서 현재의 시각을 구하고, 그 값을 닭의 flap 메서드의 인수로 전달하자. 이렇게 하면 닭의 날갯짓 횟수로부터 현재의 시각을 알 수 있다.
6. 3D 텍스트로 표시되는 닭 시계
연습문제 5에서 만든 닭 시계 월드에 hour라는 이름의 3D 텍스트 객체를 추가해 보자. 월드에 hour라고 써져 있는 텍스트가 보여야 한다. color(색깔)나 extrusion(도출) 속성은 원하는 대로, 보기 좋게 변경해 보자.
다음으로, 3D 텍스트 객체의 text 속성을 현재의 시각으로 설정하는 set 명령문을 만든다. (현재의 시각이 숫자이기 때문에, 월드의 what as a string 함수를 사용해서 문자열로 변환해야 할 것이다.) 월드를 플레이하면, 현재의 시각이 3D 텍스트로 표시되어야 한다.
7. 볼 차기
Sports 컬렉션에서 공을 하나 마음대로 선택하고, People 컬렉션에서 사람 한 명을 마음대로 선택해서 월드를 만들자. 그리고 사람의 발 한쪽 앞에 공을 위치시키자. 월드를 플레이하면, 사용자에게 사람으로 하여금 공을 얼마나 멀리 차게 할지 묻는다. 그런 다음에, 사람 객체는 공을 차는 모션으로 한쪽 다리를 움직인다. 그런 다음, 사용자가 입력한 거리만큼 공이 움직인다.
8. 우주선 수리
우주 공간을 배경으로 하는 월드를 만들어 보자. 월드에 1명의 우주비행사와 2개의 우주선(Web Gallery의 Space 컬렉션에 있음)이 있다. 한 우주선이 엔진 고장으로 좌초된 상태이고, 한 우주비행사가 수리를 위해 다른 우주선을 타고 도착했다. 초기화면에서 우주비행사는 좌초된 우주선으로 우주유영을 하기 위해, 타고 온 우주선 밖으로 이제 막 나간 상태의 위치에 있어야 한다. 월드가 플레이되면, 우주 비행사는 좌초된 우주선으로 떠가서, 잠깐 동안 작업하는 것처럼 보이다가, 다시 구조선으로 되돌아와야 한다. 그런 다음, 수리된 우주선은 스크린을 벗어나 날아가 버린다.
'컴퓨터교육' 카테고리의 다른 글
기숙형 영재원 예제 파일 (5장, 6장, 7장, 8장) (0) | 2012.01.02 |
---|---|
Launch4j : Greenfoot 실행 jar 파일을 exe 실행 파일로 만들기 (0) | 2011.09.17 |
LaTex 웹 수식 편집기 (0) | 2011.06.10 |
Alice에서 나머지 연산을 하려면.. (0) | 2010.11.06 |
Alice 자료 모음 (0) | 2010.10.30 |