컴퓨터크래프트 강좌

[컴퓨터크래프트] 10. Functions

안녕하세요 티스토리로 이사하고 나서 처음으로 올리는 글이네요

얼마동안 글을 안 올렸던 이유는, 초대장 받느라 며칠동안 고생하고, 한번 멈추닌까 귀찮아지더라고요. 그래도 보내주신 성의를 생각하며 씁니다. (보내주신 새벽이오는소리, dawns.tistory.com님에게 감사의 인사를 전합니다)

이제 시작하겠습니다.

오늘은 function을 배울껀데요, 함수라는 뜻입니다. (지적해주신 라베니르님 감사합니다)

이제 시작하겠습니다.

일단 function의 첫번째 줄에는 function의 이름을 정해줍니다. function [이름]()

이렇게요.

그리고, 그 밑에 스크립트를 적으시면 됩니다. 저는 간단하게 이렇게 할게요.

그리고, function을 끝마치려면 마지막에 end만 넣으면 됩니다.

이렇게 하면 새로운 function이 만들어 진겁니다.

이제 실행해 봅시다.

잉? 하라는건 왜 안하지?라고 생각하실텐데요, 저건 그냥 프로그램일 뿐입니다. 프로그램을 작동을 시키려면 실행을 해주어야 겠죠?

실행하려면 [function이름]()만 하시면 됩니다.

이렇게요.

그럼 function()이란 프로그램을 실행하고, 프로그램을 끝내겠죠.

한번 실행해보겠습니다.

네 시킨대로 Hello를 화면에 프린트합니다.

쓰기 복잡한데 왜쓰냐고요?

아주 긴 스크립트를 작성할때 유용합니다. function이란 기능을 이용하면, 프로그램을 깔끔히, 더 빠르게, 더 쉽게 만들수 있게 됩니다.

제가 만든 ClearArea란 프로그램을 예로 들겠습니다.

  1. for i = 1, tArgs[3] do
  2.   fuel()
  3.   line()
  4.   turn()
  5.   back()
  6.   moveLine()
  7. end

이게 메인 스크립트입니다. 그냥 터틀은 이것들을 특정한 만큼 반복만 하는거죠. 어떻게 앞으로 가고, 밑으로 가고, 이 과정을 반복하는데 이렇게 간단할수가 있냐고요?

fuel()은 터틀의 연료를 확인, 다시 넣는 역할을 하고,

line()은 한칸 앞으로 갔다, 밑으로 팠다, 올라왔다, 다시 한칸을 앞으로 가는 걸 반복하는 역할을 합니다.

turn()은 터틀을 180도 돌리는거고요

back()은 처음 시작 포인트로 돌아오는겁니다.

moveLine()은 다음 라인으로 터틀을 옮기고요.

(아마도 이 프로그램을 써보셨다면 무슨 내용인지 이해하실겁니다)

function이란 기능을 이용해서 스크립트를 이렇게 깔끔하게 만들수 있습니다.

스크립트를 자세히 보려면 http://pastebin.com/Yu2P03qK 로 가보세요.

그럼 이만 마치겠습니다. 기다리신분들게 죄송하고요, 다음번엔 더 빨리, 더 자주 올리도록 하겠습니다.