728x90

 

 

개인적으로 다른 사이트(?)를 하나 더 운영하고 있다.

사실 티스토리를 시작하면서 그쪽 관리가 소홀해졌지만, 댓글과 같은 것은 가능한 성심성의것 답변을 하고 있다.

그중 이렇게까지 많은 관심을 받아본 적이 없던 컨텐츠가 바로 YBM IT에서 주관하는 COS 자격 시험이다.

 

이 자격시험에 관한 게시물이 인기가 많고 관심을 많이 받는 이유가 있다.

1. 그리 오래되지 않은 시험이라 정보가 부족하다.

2. 2018년부터 점차적으로 소프트웨어 교육을 의무화 하는데 scratch언어가 사용될 것이다.

3. COS 시험은 scratch 언어로 보는 CBT방식의 자격 시험이다.

 

그래서 온오프라인에서 자주 받았던 질문을 정리 해보려한다.

 

(네가 뭔가 이런 소릴 하냐고, 신빙성 있는 내용이냐고 의심스럽다면 이 링크를 참고해주면 감사하겠다.)

 

 

Q > 시험 문제를 풀면서 플레이를 해보았는지, 해보았다면 불이익은 없었는지

A > 시험 문제를 풀어보면서 당연히 플레이를 해보았다. 문제에서 요구하는 실행 결과가 잘 나오는지 계속 플레이 해봤고 과장 조금 보태서 결과가 나올 때까지 돌려봤다. 그런데도 불이익 하나 없이 (예를들면 감점) 점수를 받았다. 그렇다고 문제 하나를 수십번 플레이 해본건 아니고 적게는 한번, 많게는 네번~다섯번 정도 플레이 해본 것 같다.

 

 

Q > 실행시켜 확인한 다음 다시 풀기를 했는지 아니면 그냥 그대로 제출해버렸는지

A > 정확히 기억나지 않지만, CBT방식으로 시험을 보면 한 번에 한 문제를 풀 수 있다. 다시 말해서 한 화면에는 문제 하나만 나온다. 그렇기 때문에 내가 이 문제를 나중에 풀고 싶을수도 있고 (시간 배분의 문제라던가) 잠깐 다른 문제를 풀다가 오고 싶을 수도 있고 또 처음부터 다시 풀고 싶을 수가 있다. 그런 편의를 제공해주는 것인지 내가 '제출'을 하지 않는한 그 문제는 '아직 풀지 않은 상태'인 것이다. (당연히 아직 제출하지 않은 문제가 몇 문제가 남았는지 친절하게 화면에 보여진다.) 나는 응시하는 동안 건너뛰고 나중에 다시 풀어본 문제도 있었고, 블럭을 너무 많이 섞어서(?) 초기 상태로 되돌리고 푼 문제도 있었다. 실수로 나중에 풀기위해 건너뛰려다 제출해버리는 일만 없으면 될 것 같다.

 

 

Q > 컴퓨터 전공을 했는데 무난하게 합격할 수 있을까요?

A > 전공을 했어도 scratch를 전혀 접해보지 않고 응시한다면 합격을 장담할 수 없을 것 같다. 블럭코딩에 익숙하다면 또 모를까 라인코딩만 해본 상태로 자만에 빠져 그냥 응시한다면 분명 떨어질걸 예상한다. 즉, 아무리 컴퓨터 전공을 했더라도 이 언어에 익숙하지 않으면 적어도 한번은 교재를 정독하고, 이마저 귀찮다면 꼭 모의고사를 풀어보길 권한다. 내가 원하는 블럭이 어디에 있는지 찾다가 시간이 다 갈지도 모른다.

 

 

Q > 컴퓨터 전공을 하지 않았고 관련 지식이 없는데 합격 가능할까요?

A > 충분히 가능하다. 우선 이 scracth라는 언어는 프로그래밍을 처음 접하는 사람들을 위해 MIT에서 만든 교육용 언어이다. 즉, 다른 java나 c 등의 언어들과 비교한다면 엄청나게 이해하기 쉬운 언어이다. 다만 만점을 받기는 좀 어려울 수 있다. 그 이유는 알고리즘 부분 때문이다. 전공을 했다면 적어도 한번쯤은 자료구조나 알고리즘을 잘 못했더라도 경험을 한다. 심지어 이 스크래치에서는 그렇게 복잡한 수준의 알고리즘을 요구하지 않는다. 그리고 이 알고리즘도 시험 전체에서 차지하는 비중도 그리 높지 않다. 그러니 부담가지지 말고 교재 한 번 정독하고 모의고사 2~3회 풀어본다면 충분히 합격할 수 있다.

 

 

Q > 문제 유형은 어떤식인가요?

A > 결론부터 말하면 빈칸넣기다. 예전에 파이프 연결하는 게임이 있었다. 약간 그런 느낌이라면 그런 느낌이다. 문제에서 요구하는 실행 결과가 있고 나는 실행해봐서 그 결과가 나오도록 빈칸 (비어있는 블럭)을 채우면 된다. 이미 많은 블럭들이 코딩되어 있다. 그중에 몇개의 블럭이 빠져있고 그 부분을 문제에서 요구하는 대로 채워주면 된다. 문제도 친절해서 말을 잘 읽고 그대로 하면 된다. 그렇기 때문에 기능들을 한번씩 써보면서 어디에 어떤 기능을 하는 블럭이 있는지 알아두는게 중요하다.

 

 

728x90

 

 

대강 자주 들었던 질문들을 정리해봤다.

지금은 홈페이지에 들어가보니 8월 20일에 8회 시험이 계획되어 있다.

 

막간을 이용해 시험 정보를 공유해야겠다.

 

자격종목

등급

검정방법

검정시행 형태

합격기준

Coding Specialist

1급 / Advanced

실기시험

10문제 (실기)

시험시간 : 50분

700점 이상

2급 / Intermediate

10문제 (실기)

시험시간 : 50분

600점 이상

3급 / Basic

10문제 (실기)

시험시간 : 40분

600점 이상

 

자격종목

등급

시험응기 검정료

실기

Coding Specialist

1급 / Advanced

\23,000

\23,000

2급 / Intermediate

\20,000

\20,000

3급 / Basic

\18,000

\18,000

 

(*** 플라스틱 자격증 발급 비용은 별도이다. 발급비용 : \4,500)

(출처 : YBM IT 홈페이지)

 

 

 

 

728x90
728x90

 

 

 

17년 4월 23일 아침 9시 30분 제 6회 YBM IT에서 주관하는 COS (Coding Specialist) 1급 시험을 보고 왔다.
시험을 보러 가기 전에 이것 저것 검색을 해봤는데 1급에 대한 후기가 없어서 남겨본다.

 

 

 

시험에 대해 간단히 소개를 하자면, COS시험은 CBT방식의 시험이다.

CBT방식은 Computer Based Testing으로 컴퓨터를 사용해서 컴퓨터가 채점하는 방식의 시험이다.

또 다른 방식으로는 PBT라고 하는 Paper Based Testing방식도 있다.


이 시험을 응시하기 위해 기본적으로 갖추고 있어야 할 지식은 '스크래치 언어'이다.

추후 계획은 다른 진입 장벽이 낮은 언어들에 대해서도 시험이 만들어질 것이라고 한다. (언제인진 모르겠지만)

 

난이도는 그렇게 어렵지 않았다.
단순히 합격만을 원한다면 아래 첨부한 출제 기관에서 나온 모의고사만 풀 수 있을 정도면 충분하다.

시험 유형도, 풀는 방법도, 난이도도 아래 추가한 모의고사 만큼, 딱 그만큼이다.

그런데 한문제도 놓치고 싶지 않다면 뒷 부분에 나오는 알고리즘 부분에 대해서도 어느정도 잘 알고 가면 도움이 많이 될 것 같다.

 

 

728x90

 


나는 라인 코딩만 몇년 접한 컴퓨터 전공을 했다. 그래서 시험 준비는 아래 책을 한 번 훑어보고, 교재 중간중간 예제는 안풀어보고 문제는 맨 뒤에 모의고사 2회만 한 번씩 풀어봤다. 전체 준비 기간은 약 보름정도 였는데, 그나마도 시간을 많이 투자하진 못했다. 저녁에 잠깐, 주말에 반나절 정도.

 

출판사 : YBMNET
서명 : 스크래치 알고리즘 이해와 창의개발 프로그래밍
저자 : 한국공학기술연구원

 

 

시험에 합격하고나면 합격증을 출력해볼 수 있던것으로 기억한다.

그런데 어차피 한거 기분이라도 내야겠다 싶어서 추가로 플라스틱 자격증을 신청했다.

최대 2주가 걸릴거라고 했는데, 연휴가 중간에 있어서인지 2주 조금 더 걸려서 도착했다.

(잊혀지나 했는데 왔다.)

 

 

올해 목표중 하나가 자격증 2개 취득하기였는데 얼렁뚱땅 달성은 했다.

(자격증이 얼마 없어서 따봐야겠다 마음 먹었다.)

 

아무튼, 걱정한 것 만큼 어렵지 않다.

 

 

 

 

728x90
728x90

 

 

2018년도부터 소프트웨어 교육이 의무교육화가 되어 내년부터 교과서 개발에 착수한다라는 인터넷 기사를 접했다. 교육 대상은 초등학교와 중학교다. 초등학생은 2017년부터 의무적으로 소프트웨어 교육을 받게 되며, 중학교의 경우 내년부터 시행 될 자유학기제를 통해 소프트웨어 분야 진로 교육이 강화 된다고 한다.

 

나는 컴퓨터를 접한 시기는 빨랐지만 전문적으로 프로그래밍을 접하게 된 것은 고등학교를 졸업한 이후였다. 남들보다 늦었다는 생각에 아둥바둥 했지만 따라가기 급급했지 선두에 서서 이끌어나가기엔 턱없이 부족했다. 그랬기에 어쩔수 없이 주입식으로 학습했으며, 선암기 후이해를 외치며 통학 왕복 네시간의 시간동안 대중교통에서 졸며 공부했던 기억이다.

 

지금와서 생각해보면 언어라는것은 하나의 표현 방법일 뿐이고, 표현하고자 하는 내용을 어떻게 효율적으로 구성할 수 있는가가 더 중요한 문제였다. 아무리 타이핑이 빨라봤자 효율적인 한 줄이 더 값어치 있는 소스 코드가 되는 것이다. 어린시절 플로피 디스켓을 바꿔가며 뿌요뿌요를 설치했던 시기에 프로그래밍을 접했다면 어땠을까 후회가 되기도 한다.

 

사설이 길었다.

 

요즘 소프트웨어 교육 의무화 라는 토픽이 등장하며 초중등 자녀를 둔 학부모님들의 관심이 몰리고 있다. 검색을 좀 해본 사람이라면 '블록 코딩 방식'이라는 말을 한번쯤은 봤을거다. 검은 화면에 빼곡히 영문으로 타이핑 된 소스코드를 작성하는 것이 아닌, 눈에 보이는 블록들을 마우스를 사용해서 이어붙여 프로그램을 만드는 방식이다. 그 대표적으로 MIT에서 만든 scratch라는 언어가 있고, 네이버의 엔트리 등이 그 예이다. 본격적으로 이 블록코딩을 시작하기 전에 꼭 한번쯤은 생각해보고 넘어가야할 문제가 있다.

 

 

 

 

물론 시간이 지나 익숙해지면 어느정도는 의도하는 프로그램을 잘 만들 수 있게 된다. 하지만 나처럼 뭐가 뭔지 모르고 주먹구구식으로 일단 시작하고 보자라는 접근으로 더이상 멘탈 낭비를 하지 않았으면 한다. 이 글 하나로 얼마나 많은 것을 전달할 수 있을지는 모르겠지만, 컴퓨팅적 사고라는 것이 무엇이며 프로그래밍 관점에서의 컴퓨터란 어떤 것인지에 대해 아는대로 써보려 한다. (프로그래밍을 처음 접하는 단 한사람에게만이라도 도움이 되길 바라는 생각으로..)

 

 

 

컴퓨터를 사용해서 일반적인 문서 작업, 인터넷 검색, 게임 등만 해봤다면 다소 낯설게 느껴질지 모를 내용이다. 컴퓨터는 사람과 다른 큰 특징을 하나 (더 많이 있겠지만 한가지만 언급하려고 한다)가지고 있다. 시키는 것만 시키는대로 한다는 것이다. 우리는 이 부분을 잘 이해해 주어야 한다. 컴퓨터는 전혀 창의적이지도 못하고 유연하지 못하다. 여기서 유연하다라는건 사람과 비교해보면 쉽게 이해할 수 있다. 예들 들어 '손 씻고 와서 밥먹어'라는 말을 우리가 들었다고 하자. 너무나 당연하게도 우리는 이 말을 이해하고 화장실에 가서 손을 씻고 나와 밥을 먹을 것이다. (이런 것을 유연하다라고도 표현한다.) 하지만 이 컴퓨터는 이해하지 못한다. 만약 똑같은 일을 하도록 컴퓨터에게 시키려면 다음과 같은 노력이 필요하다.

 

 

728x90

 

 

옷의 소매를 걷어라.

화장실 앞으로 가라.

화장실 문을 열어라.

앞으로 두 걸음 가라.

오른쪽으로 반바퀴 돌아라.

앞으로 두 걸음 가라.

왼쪽으로 반바퀴 돌아라.

허리를 살짝 숙여라.

수도꼭지를 오른쪽으로 두바퀴 돌려라.

손을 물에 넣어라.

비누를 집어라.

거품을 내라.

비누를 닦아내라.

수도쪽지를 왼쪽으로 두바퀴 돌려라.

왼쪽으로 반바퀴 돌아라.

앞으로 두 걸음 가라.

수건을 집어라.

손을 닦아라.

왼쪽으로 반바퀴 돌아라.

앞으로 두 걸음 가라.

...

 

끝이 나지 않을 것 같아서 중간에 끊었는데도 이렇게 하나부터 열까지 모든것을 자세하게 말해줘야 한다. 과장을 한게 아니라 정말 시키는대로 시키는것만 한다. (사실 더 자세하게 말해줘야 하지만 이정도도 충분한 것 같다.)

 

컴퓨팅적인 사고를 해야하는 궁극적인 이유는, 우리가 삶을 살아감에 있어서 컴퓨터가 가지는 장점을 적극 활용하여 일상의 문제를 해결하기 위함이다. 고속도로 위의 하이패스라던가 스마트폰의 다양한 앱을 사용해서 여러가지 데이터를 가공한다거나 하는 등 다양한 분야에서 컴퓨터가 사용되고 있고 또 앞으로 더 많이 활용 될 것이다. 그렇기 때문에 우리가 컴퓨터 프로그램을 개발함에 있어서 컴퓨터에 대한 이해는 필연적이라고 할 수밖에 없다.

 

컴퓨팅적 사고는 다음과 같은 주요한 요소들이 있다.

 

1. 재귀적 사고

재귀적 사고란 동일 과정을 반복 적용하여 문제를 해결하는 것을 뜻한다.

 

2. 개념화

단순하게 코딩을 하는 것이 아닌, 문제 해결의 각 과정에 추상화 개념을 도입하여 생각해 보는 것을 뜻한다.

 

3. 병렬처리

보다 넓은 시각으로 문제를 파악하고 문제를 병렬으로 동시에 처리할 수 있는 사고력을 뜻한다.

 

4. 추상화

추상화란 구체화의 반대되는 말이다. 직면한 문제의 공통적인 부분을 추상화 과정을 통해 밝혀내는 사고력을 뜻한다.

 

5. 분해

큰 문제를 작은 단위로 나누어 생각하는 방향으로 접근한다. 큰 문제를 해결하기 위해 작은 문제부터 점진적으로 해결해나가는 것을 뜻한다.

 

위에서 언급한 다섯가지 요소중에 추상화에 대해서 잘 이해가 되지 않을 수 있다. (나는 그랬었다.) 위에도 언급했듯 추상화란 구체화와 반대되는 개념이다. 예를 들어보자.

 

나는 지구에 살고 있다.

조금 더 구체적으로 표현 한다면 나는 아시아에 살고 있다.

조금 더 구체적으로 표현 한다면 나는 한국에 살고 있다.

조금 더 구체적으로 표현 한다면 나는 경기도에 살고 있다.

조금 더 구체적으로 표현 한다면 나는 안양에 살고 있다.

 

점점 그 범위가 좁혀지는게 느껴지는가. 이렇게 하나의 대상으로 좁혀지는게 구체화라면 그 반대가 바로 추상화이다. 그렇다면 왜 추상적으로 생각해야 하는가에 대해 의문이 들어야 한다. 우리가 무엇인가를 하는 이유는 그것을 함으로 인해서 장점이 있기 때문이다. 특정 대상에 대해 추상화 과정을 거치면 공통적인 속성을 추출해내어 하나의 묶음으로 표현할 수 있기 때문이다.

 

장바구니를 생각해보자. 장바구니가 만약 고구마 전용 장바구니, 감자 전용 장바구나, 소시지용 장바구니가 따로 있다면, 굉장히 불편할거다. 시장 한 번 보기 위해서 모든 식재료 종류별로 전용 바구니가 필요할테니 말이다. 그런데 이 문제를 추상화 시켜 생각해보면, 무엇인가를 담는다는 공통점을 가지고. 있다. 그렇기 때문에 우리는 시장을 볼 때 식재료별 전용 바구니가 아닌 그냥 바구니 하나에 여러 재료를 담는데 사용할 수 있다.

 

 

 

 

 

구체적인 개념에 대해 정리하다보니 본래 목적에서 좀 벗어난 것 같다. 결국 이 글을 통해 내가 꼭 전하고 싶은 것은 '스크래치를 사용하는 것이 오히려 독이될 수 있다'라는 것이다. 스크래치가 나쁘다는게 아니다. 교육적으로 문제가 있다는것도 아니다. 다만 사용해본 입장에서 확실히 프로그래밍에 대한 진입 장벽은 낮아졌지만 스크래치라는 언어 학습에 심취해서 본래 목적인 컴퓨팅적인 사고를 하지 못할 수 있겠다라는 우려이다.

 

그래서 만약 처음으로 프로그래밍을 접한다면, 소프트웨어 교육을 시작한다면, 스트래치 언어를 바로 접하기 보다 '언플러그드 활동'을 통해서 컴퓨터는 어떻게 사고하고 작동하는가에 대해 미리 접하고 나서 였으면 좋겠다는 바람이다. 한 번 잘하기로 마음먹으면 그쪽으로 편향되어 본질을 잃어버리는 사태가 발생할지도 모르기 때문이다. 언플러그드 활동이란 컴퓨터 없이 컴퓨팅적인 사고를 신체 활동을 통해 배워보는 활동이다. 컴퓨터가 아닌 직접 몸을 움직여 하는 활동이기 때문에 보다 높은 집중력을 가지고 참여하고 또 보통 다른 사람들과 함께 하기 때문에 협업에 대해서도 자연스럽게 익히는데 많은 도움이 된다. 그리고 직접 이렇게 체득한 내용은 더 오랫동안 기억에 남기 때문에 다방면에서 처음 프로그래밍을 접할 경우 긍정적인 효과를 기대할 수 있다. 프로그래밍이란 전문성이 필요한 분야에 첫 걸음을 내딛는다면 '해야하는 것'이 아닌 '하고싶은 것'이 될 수 있었으면 좋겠다.

 

 

 

 

728x90
728x90

 

 

코딩클럽 청년샘 4기 연수 과제 중 하나로 선택된 스크래치로 가위바위보 게임 만들기

 

가위바위보 게임 가기

 

결과물 링크는 위에 첨부된 링크를 따라가면 된다.

 

그럼 내가 어떻게 만들었는지 하나씩 파헤쳐보자.

(그렇게 자랑할만한 수준은 아니지만..)

 

 

우선 아래는 모든 스프라이트에 대한 스크립트를 모두 캡쳐한 화면을 기준으로 하나씩 살펴보자,

 

1. 무대에 대한 스크립트에서는 무슨짓을 하는지 자세히 살펴보자.

 

 

 

보기 힘들기 때문에 스크립트만 가져와서 자세히 설명을 달아보았다.

 

 

 

728x90

 

 

라인별로 설명하면

01 : '게임시작하기'라는 방송을 받으면 이 스크립트를 시작하도록 되어있다.

02 : '사용자_점수'변수와 '컴퓨터_변수'점수가 10점인 값이 있는지 or 조건으로 하나만 참이어도 바로 아래 03라인을 실행한다.

    하지만 하나라도 10의 값이 아니라면 04라인의 '아니면' 블록 아래의 스크립트를 실행한다.

03 : 02라인의 조건이 '참'인 경우에 진행하는 블록 코드로 '게임종료'를 방송하도록 되어있다.

04 : 02라인의 조건이 '거짓'인 경우에 진행하는 블록 코드이다.

05 : '무엇을 내시겠습니까? (1:가위 2:바위 3:보자기)' 메시지를 보여주고 이에 대한 답을 사용자의 입력으로 받아온다.

06 : 07 ~ 16라인의 블록 코드를 무한히 반복한다.

07 : 만약 05라인에서의 사용자의 대답이 1보다 작은 정수이거나 3보다 큰 정수일 경우 참을 뜻하게 되어 08라인을 실행하고,

     그 이외의 1, 2, 3의 정수중 하나를 입력했을 경우 ​조건문에서는 '거짓'을 뜻하기 때문​에 11라인을 실행한다.

08 : 07라인의 조건문 비교 결과가 '참'인 경우 'pop' 소리를 재생한다.

09 : 의도한 값이 입력되지 않았기 때문에 '1, 2, 3중에 골라주세요, ... ' 의 메시지를 보여주고 다시 입력 하기를 기다린다.

10 : 05라인에서 사용자가 1, 2, 3중의 하나의 값을 입력한 경우 진행하게 된다.

11 : '사용자가낸것' 변수의 값을 사용자가 입력한 1, 2, 3 중의 하나의 값을 가지게 된다.

12 : '컴퓨터가낸것' 변수의 값을 1부터 3사이의 난수로 결정된 값을 가지게 된다.

13 : '계산하러가기'를 방송하고 06라인에서 선언한 '무한 반복하기' 스크립트를 종료한다.

 

 

 

2. 다음으로 가장 복잡한 스크립트를 가지게 된 '2'라는 이름을 가진 스프라이트에 대해 살펴보자.

 

 

 

역시 보기 힘들기 때문에 스크립트만 가져와서 자세히 설명을 달아보았다.

 

 

01 : 깃발을 클릭했을 때 실행한다.

02 : 최초 프로그램이 시작될 경우에 실행하는 도입부중 하나이기 때문에, '컴퓨터_점수' 변수를 기본값으로 설정 해준다.

03 : 최초 프로그램이 시작될 경우에 실행하는 도입부중 하나이기 때문에, '사용자_점수' 변수를 기본값으로 설정 해준다.

04 ~ 09 : 1.5초 간격으로 룰을 설명하는 메시지를 말하도록 만들었다.

10 : '게임시작하기'를 방송한다.

 

 

 

01 : '계산하러가기'방송을 받았을 때 실행한다.

02 : 0.5초 동안 '가위' 메시지를 말한다.

03 : 0.5초 동안 '바위' 메시지를 말한다.

04 : '내기' 메시지를 방송한다.

05 : 2초 동안 '보' 메시지를 말한다.

06 : '사용자가낸것'과 '컴퓨터가낸것'변수를 비교하는데, 이 변수는 '내기'방송을 받은 손가락 모양의 스프라이트에서 설정되는 값이다.

07 : 비겼다는 메시지를 보여주고 추가 작업은 하지 않고 종료한다.

08 : '사용자가낸것'과 '컴퓨터가낸것'변수를 비교해서 서로 다른 값을 가진 경우 실행한다.

09 : 가위(1), 바위(2), 보(3)의 값을 가지고 ('사용자가낸것' - '컴퓨터가낸것' + 3) % 3 연산의 결과에 따라 누가 이겼는지 알 수 있다.

 

사용자가낸것(a)

컴퓨터가낸것(b)

a - b + 3 (c)

c % 3

승자

가위(1)

바위(2)

2

2

컴퓨터

가위(1)

보(3)

1

1

사용자

바위(2)

가위(1)

4

1

사용자

바위(2)

보(3)

2

2

컴퓨터

보(3)

가위(1)

5

2

컴퓨터

보(3)

바위(2)

4

1

사용자

 

  위의 진리표를 참고하면, 비기는 경우를 제외하고 연산결과가 1이면 사용자의 승, 2이면 컴퓨터의 승인 것을 알 수 있다.

10 : 사용자가 이긴 경우 졌다는 메시지를 보여준다.

11 : '사용자점수'값을 1 증가한다.

12 : '컴퓨터점수'값을 1 감소한다.

13 : 09 연산 결과가 1이 아닌 경우 (컴퓨터가 이긴 경우) 실행한다.

14 : 컴퓨터가 이긴 경우 이겼다는 메시지를 보여준다.

15 : '컴퓨터점수'값을 1 증가한다.

16 : '사용자점수'값을 1 감소한다.

17 : 09라인의 조건문을 닫는다.

18 : 06라인의 조건문을 닫는다.

19 : '게임시작하기'메시지를 방송한다.

 

 

 

01 : '게임종료'방송을 받은 경우 실행한다.

02 : '사용자_점수'와 '컴퓨터_점수'중 하나의 값이 10에 도달한 경우 '게임종료'를 방송하기 때문에 '사용자_점수'와 '컴퓨터_점수'를 비교한다.

03 ~ 07 : '사용자_점수'가 더 높은 경우의 메시지를 말한다.

09 ~ 12 : '컴퓨터_점수'가 더 높은 경우의 메시지를 만한다.

14 : 곧 게임이 시작될거라는 메시지를 말한다.

15 ~ 16 : 새 게임을 시작해야하므로 '컴퓨터_점수'와 '사용자_점수'를 기본 점수인 5점으로 각각 할당한다.

17 : '게임시작하기'를 방송하여 새로운 게임을 시작한다.

 

 

 

3. 마지막으로 손가락 모양을 가진 '컴퓨터'와 '사용자' 스프라이크가 있는데, 두번째 블록의 하나의 값만 다르기 때문에

하나만 가지고 살펴보려고 한다.

 

 

 

 

우선 모든 스프라이트에 대한 전체 스크립트는 위와 같고,

손가락 모양을 가지는 두 개의 스프라이트에 대한 스크립트만 가지고 와서 자세히 살펴보자.

 

 

 

 

 

'게임시작하기' 방송을 받았을 경우 무한히 반복하며 0.5초 간격으로 위에서 보이는 그림과 같이 다음 모양으로 바꿔준다.

 

'내기'방송을 받았을 경우 왼쪽의 무한히 반복하는 스크립트를 잠시 멈추고 현재 손가락 모양을 각자가 낸 모양으로 유지하도록 만들었다.

 

 

 

이렇게 단순한 컴퓨터와 하는 가위바위보 게임을 스크래치를 통해 만들어 보았다.

다음 과제는 무엇일지 걱정반 기대반,

지난주에 처음 스크래치를 가입했을 때보다는 많이 부드러워진 것 같다.

하지만 그렇다고해서 블럭 코딩 방식이 아주 익숙해진건 아니라 조금 더 시간이 필요할 것 같다.

 

 

 

 

728x90

+ Recent posts