여러 개의 맥스 스크립트를 작업하며 느낀 것이 스크립트의 구조는 변수와 함수를 이용해
입력, 조건, 반복
작업을 하는 형태로 짜여진다는 것입니다.
(프로그래머라면 이미 초보일때 알고 시작했겠지만...)
입력 - 변수, 함수와 같이 값을 받을 수 있는 것에 값을 넣어주는 것입니다.
상자에 물건을 넣는것과 같다고 생각하면 됩니다.
조건 - 입력받은 값을 기준으로 어떤 행동을 할 것인가를 결정합니다.
그냥 상자에 물건을 넣는게 아니라 어떤 기준에 따라 넣을 것인지를 생각하면 됩니다.
반복 - 하나 또는 여러 행동을 얼마나 반복 할 것인가를 결정합니다.
모든 물건을 상자에 넣을지 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번 라인의 '배가 부를 때 까지를 중단 한다.'로 인해서 반복에서 빠져나오게 됩니다.
이하의 내용에 대한 해석은 생략하겠습니다.
글로 보면 상당히 복잡해 보이지만, 머릿속으로 상상을 해본다면 우리의 일상생활의 간단한 상황입니다.
일상생활에는 이것보다 훨씬 더 복잡하고 긴 일들이 발생활 겁니다.
'맥스 스크립트의 구조'라고 적기는했지만 사실 모든 프로그램이 동일한 구조를 가지고 있습니다.
'맥스스크립트 기초' 카테고리의 다른 글
제어문(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 |