맥스스크립트 기초

맥스 스크립트의 구조

스크립팅하는애님 2019. 6. 28. 00:51
728x90
반응형

여러 개의 맥스 스크립트를 작업하며 느낀 것이 스크립트의 구조는 변수와 함수를 이용해
입력, 조건, 반복
작업을 하는 형태로 짜여진다는 것입니다. 
(프로그래머라면 이미 초보일때 알고 시작했겠지만...)

입력 - 변수, 함수와 같이 값을 받을 수 있는 것에 값을 넣어주는 것입니다.
상자에 물건을 넣는것과 같다고 생각하면 됩니다.

조건 - 입력받은 값을 기준으로 어떤 행동을 할 것인가를 결정합니다.
그냥 상자에 물건을 넣는게 아니라 어떤 기준에 따라 넣을 것인지를 생각하면 됩니다.

반복 - 하나 또는 여러 행동을 얼마나 반복 할 것인가를 결정합니다. 
모든 물건을 상자에 넣을지 10개만 넣을지 같은 작업을 반복하는 것을 생각하면 됩니다.

 

어떤 복잡하고 긴 스크립트 코드라도 같은 형태를 가지고 있고, 이것은 인간 행동의 기본구조라고 생각합니다..

 

간단하게 예를 들어 '나의 주머니에 돈이 10000원이 있고 라면을 사먹기 위해 가게에 가서 주문을 한다.'는 사람의 행동을 스크립트화 해보겠습니다.

 
1
2
3
내주머니 = 1000 <--입력
라면가게로이동(나, 내주머니) <--함수
음식을주문(라면) <-- 함수
cs
 
 

1번 라인은 내주머니에 1000원을 넣는 입력입니다.

2번 라인은 라면가게로 나와 내 주머니를 이동시키는 함수입니다.

3번 라인은 음식을 주문한다는 함수입니다.

(변수와 함수는 다음에 다시 설명할 겁니다. 우선은 스크립트라는것이 이런 흐름으로 움직인다는 것만 봐주세요.)

간단하게 위와 같이 할 수 있습니다.

 

이것을 조금 더 자세히 만든다면

 

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
내주머니 = 1000 <--입력
라면가게로이동(나, 내주머니) <--함수
라면이 10000원보다 싼가? <-- 조건
(
    음식을주문(라면) <-- 함수
    내주머니 = 내주머니 - 라면값 <-- 입력
    배가 부를때 까지  <-- 반복
    (
        먹는다(라면) <-- 함수
        다먹었는가? <-- 조건
        (
            배가 부를때 까지를 중단한다. <-- 함수
        )
    )
)
아니라면? <-- 조건
(
    다른 음식을 주문 할껀가? <-- 조건
    (
        음식을주문(10000원이하) <-- 함수
        .
        .
        .
    )
    아니라면? <-- 조건
    (
        가게에서 나온다(나, 내주머니) <-- 함수
    )
)
 
cs

 

조금 자세히 한다는게 꽤나 길어졌습니다.

내용을 살펴보면

 

3번 라인의 '라면이 1000원보다 싼가?'라는 조건이 있습니다.

조건은 '할 수 있냐', '없냐'를 따질 수 있습니다.

당연히 주머니에 10000원 밖에 없으니 라면이 그것보다 비싸다면 못 먹겠죠.

라면이 10000원보다 싸다면 5번 라인으로 이동하고, 아니라면 18번 라인으로 이동합니다.

5번 라인은 라면을 주문하고,

6번 라인은 주머니의 돈에서 라면값을 빼고 다시 주머니에 넣는 입력입니다.

(물론 일반적으로 음식값 계산은 먹고 난 후에 하겠지만 구조를 단순하게 하기 위해 먼저 들어왔습니다.)

7번 라인의 '배가 부를 때까지'는 반복이기 때문에 다음에 오는

9번 라인의 '먹는다(라면)'을 계속 반복합니다.

라면을 한입 먹고 그만두는 경우는 거의 없을 테니까요.

이 반복은 '배가 부를 때까지'라는 조건이 만족될 때까지 무한정 반복 하는 게 기본 습성입니다.

그리고 배가 부르거나,

10번 라인의 '다 먹었는가?'가 라는 조건이 만족된다면 배가 부르지 않더라도

12번 라인의 '배가 부를 때 까지를 중단 한다.'로 인해서 반복에서 빠져나오게 됩니다.

 

이하의 내용에 대한 해석은 생략하겠습니다.

 

글로 보면 상당히 복잡해 보이지만, 머릿속으로 상상을 해본다면 우리의 일상생활의 간단한 상황입니다.

일상생활에는 이것보다 훨씬 더 복잡하고 긴 일들이 발생활 겁니다.

 

'맥스 스크립트의 구조'라고 적기는했지만 사실 모든 프로그램이 동일한 구조를 가지고 있습니다.

728x90
반응형

'맥스스크립트 기초' 카테고리의 다른 글

제어문(if)  (3) 2019.07.07
배열 함수  (3) 2019.07.05
배열  (6) 2019.07.03
변수의 범위  (10) 2019.07.02
변수의 연산  (0) 2019.07.01
변수  (0) 2019.07.01
MAXScript Listener  (0) 2019.06.30
변수와 함수의 개념  (0) 2019.06.29