사용자:Bd3076/백괴게임 강좌/17강

리버티게임, 모두가 만들어가는 자유로운 게임
< 사용자:Bd3076‎ | 백괴게임 강좌
imported>재미로봇님의 2020년 9월 9일 (수) 22:11 판 (change "백괴게임:" to "리버티게임:")
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

오랜만에 강좌를 다시 쓰게 되었네요.

앞으로 두 강에 걸쳐 함수에 대해 알아봅시다.

함수란?[편집 | 원본 편집]

지금까지 우리가 배워 온 기술에는 여러 가지 제약이 있습니다.

예를 들어, 우리는 CGI에 1씩 더하는 것을 할 수 없습니다.

함수는 다양한 기능을 가능하게 해 줍니다.

아래는 다룰 함수 목록입니다. 없는 함수는 고급이나 프로그래머 전용에서 다룹니다.

  • if
  • expr
  • ifeq
  • ifexpr
  • ifexist
  • ifanon, ifblocked, ifsysop (전부 권한 관련 함수)
  • sub

휴... 많군요. 그럼 시작해 볼까요?

#if[편집 | 원본 편집]

#if 함수는 단순 조건문 함수입니다. 그런데 많이 쓰지 않습니다. 이유는 #ifeq, #ifexist 등에 밀려서...

뭐 어쨌든 어떻게 쓰는 건지 알아봅시다.

{{#if: (변수) | 변수가 비어있지 않을 때 나올 문장 | 변수가 비어있을 때 나올 문장}}

쉽지 않습니다. 조건문이 뭘까요?

우리가 지금까지 문서를 만들면 가능한 경우는 몇 가지였죠? 네, 한 가지입니다. (랜덤 없다는 가정 하에)

그런데 이제 그게 아닙니다. 수백, 수천가지가 될 수도 있는 겁니다. (물론 그렇게 짜려면 다이나믹 로동을 좀 많이 해야죠.)

조건문은 변수의 상태에 따라 어떤 행동을 할지 결정합니다.

그런데 그 행동을 결정하는 조건이 있어야겠죠?

그 조건을 만족하면 참, 아니면 거짓이라고 하는 겁니다.

여기서 조건은 "변수가 비어 있느냐"네요.

if문은 딱히 예제를 들기 힘듭니다. 그래도 하나 들어 보자면:

B

{{#if: |A|B}}

이렇게 공백만 있으면 비어있는 걸로 간주하죠.

아 참, 함수도 틀과 비슷하게 쓰는 것 같죠?

하지만 함수 이름 앞에는 #을 붙여 주어야 해요!

#expr[편집 | 원본 편집]

#expr 함수는 계산을 하는 함수입니다.

그 사용법이 너무 길어 여기 올리면 내용이 방대해지고, 링크를 걸어놓겠습니다.

이곳입니다.

#ifeq, #ifexpr, #ifexist[편집 | 원본 편집]

이 세 개의 함수는 쉽습니다.

#ifeq 함수: 두 문자열이 같은지 검사합니다.

사용법:

{{#ifeq:(비교할 수 1)|(비교할 수 2)|(같으면 나타낼 문자열)|(다르면 나타낼 문자열)}}

예시: 3

{{#ifeq:2|2|3|5}}

#ifexpr 함수: 계산을 해서 나온 값이 참인지 검사합니다.

(팁: 보통 수가 참인지 아닌지 검사할 때는 0은 거짓, 나머지는 참입니다.)

사용법:

{{#ifexpr:(비교할 계산식, #expr 함수처럼 쓰면 됩니다.)|(참이면 나타낼 문자열)|(거짓이면 나타낼 문자열)}}

예시: 2

{{#ifexpr:3-3|1|2}}

#ifexist 함수: 문서가 존재하는지 확인합니다.

사용법:

{{#ifexist:(문서 이름)|(존재하면 나타낼 문자열)|(존재하지 않으면 나타낼 문자열)}}

예시: 존재하지 않음!

{{#ifexist:게임 오버|존재!|존재하지 않음!}}