'Lua'에 해당되는 글 2건

  1. 2007.08.01 Lua에서 For문... (1)
  2. 2007.08.01 호문클루스 AI...

Lua에서 For문...

etc 2007.08.01 20:58
Lua에선 Numberic For문과 Generic For문이 존재한다.

먼저 Numberic을 보자.
아주 간단하게 1부터 100까지 더하기다.
sum = 0
for i = 1, 100, 1 do
  sum = sum + i
end

결과는 뭐 여타 다른 언어와는 같다.

이제 Genueric을 보도록 하자.
사용법은
for 키{,값} in 리스트 do ~ end
여기서 리스트를 그냥 넣으면 안 된다.
pairs()나 ipairs()함수를 사용해야 한다.
둘의 차이점은 ipairs()는 1부터 순차적일 경우에 사용하고
pairs()는 인덱스가 임의일경우 사용한다.
당연히 ipairs()가 빠르다.

자 이제 예제를 보도록 하자.
리스트에 있는 값들을 더하는 예제이다.
list = { 10, 20, 30, 40 }

tsum, isum = 0, 0
for index, value in ipairs(list) do
  tsum = tsum + value
  isum = isum + index
end

결과 : tsum에는 list값을 더한 100이 저장된다.
         isum에는 index를 더한 값이 저장된다.



다른 팁을 더 써보도록 하겠다.

첫번째!! 값을 치환해보자.
우리가 C에서 두 변수의 값을 치환할때
#define swap(a, b) { a ^ b; b ^ a; a ^ b; }
를 사용한다.
Lua에서는 어떨까?
아주아주 간단하다...간단해도 이렇게 간단할 수 없다.
a, b = b, a
정말 말이 안나올정도로 간단하지 않은가 !!

두번째!! 논리 연산자를 이용한 연산 우선순위
if ( list[x] ~= nil ) then str = "값이 있다" else str = "값이 없다" end
C에서 다르게 표현을 한다면
str = (list[x] ~= nil) ? "값이 있다" : "값이 없다"
이렇게 표현할 수 있다.
그럼 Lua에서는 어떻게 표현할까?
str = (list[x] ~= nil) and "값이 있다" or "값이 없다"
이렇게 표현할 수 있다.

Lua도 사용해보면 엄청 간단하고 쓰기 편하다.
하지만 Ruby가 더 편한거 같다. ㅋㅋ
Ruby만큼 개발자가 편하게 작업할 수 있는게 있을까나...-_  -a

'etc' 카테고리의 다른 글

SVN 설정 완료  (0) 2007.09.14
Flash 테두리 없애는 방법...  (0) 2007.08.03
Lua에서 For문...  (1) 2007.08.01
호문클루스 AI...  (0) 2007.08.01
오랜만에 플래시질....  (0) 2007.07.16
교회 복지관 사이트 시안..  (1) 2007.07.15
Posted by HiKi
TAG Lua

호문클루스 AI...

etc 2007.08.01 18:59
--global variable
HmHP                = 20            --hp가 20%이하이면 모드 체인지
HmMode                = 0


function        OnATTACK_ST ()
        TraceAI ("OnATTACK_ST")
--추가
--hp가 20%이하이면 대기모드로 전환
if ( GetV ( V_HP, MyID ) * 100 / GetV ( V_MAXHP, MyID ) <= HmHP ) then
        HmMode        = 1
        MyState        = FOLLOW_CMD_ST
        return
end


function OnFOLLOW_CMD_ST ()
        TraceAI ("OnFOLLOW_CMD_ST")
--추가
--hp가 20%이상이면 공격모드로 전환
if (HmMode==1 and GetV(V_HP,MyID)*100/GetV(V_MAXHP,MyID) > HmHP) then
        HmMode        = 0
        MyState        = ATTACK_ST
        return
end


리프를 키우고있는데 빡시기도 하지만 참 재미있다.
오랜만에 해서 그런가?

오랜만에 Lua사용해 봤다...
여태까지 써본 언어중에 Lua가 다섯 손가락 안에 들정도로 쉽고 간단하게 사용할 수 있는거 같다.
풀 / 버섯은 안때리게 하고 일정 조건일때 스킬발동도 만들고 있긴한데...
풀 / 버섯은 그라비티측에서 뭔가 해줘야할거 같다.
약간 편법으로 할 수는 있지만 완벽하지 않을거 같다.

'etc' 카테고리의 다른 글

Flash 테두리 없애는 방법...  (0) 2007.08.03
Lua에서 For문...  (1) 2007.08.01
호문클루스 AI...  (0) 2007.08.01
오랜만에 플래시질....  (0) 2007.07.16
교회 복지관 사이트 시안..  (1) 2007.07.15
화일구조..  (0) 2007.06.14
Posted by HiKi