본문 바로가기

게임엔진/PiniEngine

[구버전]피니엔진 개념잡기 9편 - 제어문 (조건문의 이해)

제어문에 대해 알아보자!


0. 우리는 수 많은 명령들을 사용해 게임을 만들게 된다.

1. 이 명령들은 위에서 아래로 순서대로 실행이 된다.

2. 그러나 이런식으로 명령을 나열하기만 한다면
명령이 무조건 순서대로만 실행되는 딱딱하고 지루한 게임들만
만들게 될 것이다. (사용자의 입력에 반응도 못하는 그런 게임들..)

3. 가끔은 상황에 따라서 명령을 다르게 처리해야 할 경우도 있고

4. 비슷한 명령을 여러번 반복하거나 명령의 흐름을 바꾸는 것이
효율적인 경우가 있다.

5. 다행히 피니엔진은 명령을 순서대로 실행하는 것뿐만 아니라
조건을 판단하여 적절한 명령을 선택할 수 있는 능력이 있다.

6. 제어문이란 이런 프로그램의 순차적인 흐름을 통제하는 명령이며 피니엔진에서는 조건문, 북마크 2가지의 제어문이 있다.

7. 제어 구조를 잘 설계할 줄 알아야 게임을 만들 수 있다.

8. 그러므로 제어 구조를 능숙하게 만들 수 있도록 여러번 숙달하자.






안녕하세요 게임을 사랑하는 권마인드 입니다.


제어문 중 조건문을~ 알아보도록 하겠습니다.


조건문이란 주어진 조건에 따라 명령의 실행여부를


결정하는 문장입니다.


여러분들 게임을 해보시면 


게임은 항상 동일한 결과만 보여주지 않고


상황에 따라 다르게 동작하기도 합니다.


이런 판단의 상황은 우리의 일상 생활에서도 흔히 만나게 되는데


다음은 어떤 백수의 일일 생활 순서도입니다.



순서도에서 사각형은 동작을 나타내며

마름모는 조건 판단을 나타냅니다.

마름모 안에 있는 문장이 조건인데 조건에 따라 특정 동작을

할 것인지 말 것인지를 결정할 수 있습니다.

피니엔진도 이와 마찬가지로

여러 가지 조건에 따라 상황을 판단하여 명령의

수행 여부를 결정할 수 있습니다.


피니엔진에서 조건문은 다음과 같은 방식으로 작성합니다.

@조건 이라고 쓰고 그 옆에 조건식을 씁니다.

그리고 조건식의 끝을 나타내기 위해서 콜론을 적습니다.

그리고 이 조건이 만족되었을때 실행할 명령들은

조건문보다 TAB으로 한번 더 들여쓰기 되어야 합니다.


조건문의 구조는 보시는 바와 같이 굉장히 간단합니다.


자 이제 조건문을 작성하는 형식은 알았고 이번엔

조건식을 작성하는 방법을 알아보겠습니다.


조건식은 주로 변수의 값을 비교하는 연산식인데

이때 다음과 같은 비교 연산자들을 사용합니다.


같다는 조건은 등호를 두번 써서 == 표현하고

다르다는 표현은 느낌표 다음 등호 !=  라는 것에

주의하도록 합시다.


나머지 연산자들은 뭐 지난시간 연산자편에서 이야기 했기 때문에

똑같은 설명은 생략하고 넘어가겠습니다.

다음은 비교 연산자를 사용한 조건문의 예 입니다.

i == 5      i 가 5 이면  실행되고

i != 5       i 가 5가 아니면  실행되고

i > 5       i 가 5보다 크면   실행됩니다.


쉽죠? 

자 여기까지 해서 조건문에 대한 기본적인

소개가 끝났어요 그런데 이렇게

주구 장창 설명만 들으면 재미없으니까 

여러분의 이해를 돕기 위해

간단한 문제를 3개 준비했습니다.

풀고 싶으면 하기 싫으면 안하셔도 상관은 없습니다! 

문제는 간단합니다!

제가 준비한 3개의 순서도를 읽어 보시고

그대로 피니엔진의 명령어로 바꿔보시면 됩니다!!

첫 번째 문제는 제가 같이 해볼께요



맨 먼저 순서도는 시작이란는 기호에서 부터 시작해서

화살표를 쭈욱 따라가시면 됩니다.

시작 아래에 육각형의 기호가 있는데

순서도에서 이 육각형은 변수를 준비하는 곳입니다.

여기 보니까  숫자라는 변수를 하나 준비했네요

숫자라는 변수에 물음표를 대입해고 있는데

이 물음표는 그냥 여러분이 원하시는 값으로 적절히

설정해주세요 ^^

자 다음으로 마름모가 나오는데

마름모는 순서도에서 조건문을 뜻해요

숫자 변수와 777이 같은지 물어보고 있네요

이 조건이 만족되었을 때는 즉 참일때는

참 화살표로 이동해서

[대화]

매크로를 실행하면 되고

조건이 만족되지 못했을 떄는 거짓 화살표로

이동해서 끝으로 나가면 됩니다!!!

지금 본 이 순서도를 피니엔진의 명령어로 바꿔볼께요!! 


숫자 = 777


@조건 숫자 == 777:

    [대화]

    ; 숫자는 777이다


쉽네요 ㅎㅎ

그럼 다음 문제입니다.

이번에 보여드리는건 직접 해결해 보세요^^



1. 성적 계산 (90점 이상일 경우만 채점해줌 ㄷㄷ;;)





2. 패스워드 확인기 순서도




네 이렇게 해서 조건문의 기본적인 사항에 대해서 알아봤고


간단한 문제도 2개 살펴보았습니다.


영상이 길어진 관계로 여기까지만 찍고 다음 영상에서


조건문에 대해 이어서  이야기를 진행하겠습니다^^ 감사합니다. 


==============================================================================================


대부분 한 번의 조건 판단으로 어떤 동작의 수행 여부를 결정하겠지만.


경우에 따라서는 조건의 참, 거짓 결과에 따라 각기 다른


동작을 수행해야 할 때도 있습니다.


예를 들면 사용자의 패스워드가 올바른 때와


그렇지 않은 때를 구별하여 어떤 동작을 수행할 수 있습니다.


미연시를 예로 들면 호감도가 90 이상일 때와 그렇지 않을때를


전략게임을 예로 들면 군사력이 75이상일 때와 그렇지 않을때...


(순서도의 조건을 추상화 하자)