이제 갓 입문한 초보입니다(사실 기계도없습니다. 친구꺼 그냥 보고 좀 만졌을뿐이에요)
아직등업이 안되서 프로그램기본이용법을 못보는군요 ㅠ_ㅠ 보고싶은데...
친구놈도 그렇던데.. 변수 A 에 0을 넣고 10을 넣어야겟다. 20을 넣어야겠다라는 말을 자주하더라구요
물론 여기 게시판 글을 보고있어도 비슷한 느낌이 만히 나네요.. 물론 정확한 상황을 제가 모르기떄문에
그럴수도있지만 ^^ ..너무 변수(?)를 신경을쓰실까봐 이렇게 함 끄적여 봅니다.
이곳에서 변수라는것은 일종의 제어용으 성격이 강하더군요.
예제조건 : 내피의위치(100,100) 이 좌표가 피가있으면 빨간색이고 삐가없으면 검은색(색 상관없음)이 될때
키보드1(물약단축키라고 가정)을 눌러야하는 상황이라면?
위의명령을 궃이 변수를 쓰는 에제를 들자면
인식1 : 내 위치(100,100) 이 빨간색이아니면 A=10 을 넣어라.
인식2 : A=10 이면 키보드1을 눌러라.안쓰면
인식1 : 내 위치(100,100) 이 빨간색이아니면 키보드1을 눌러라.
이렇게 요약되는데 궃이 변수를 써야할까요?
변수를 쓰려면 그만큼 저장공간이 할당되어야할테고 부담이 더 갈듯한데 말이죠..
그럼 변수를 왜 써야하는가가 문제가생기는데..
첨에 적었듯이 일종의 제어용으로 변수가 필요하게됩니다. 즉 한가지일이아닌 두가지이상의 일이생겼을때는 필요할것같아요
예제조건 : 내피를 게속검사를 하는데 내피말고 파티원의 피도 검사를 해야겠다! 하는상황.
파티원에게 피를 주기위해서는 특정키보드(예를들어 3)를 누른후 해당 파티원을 마우스로 가르키고
마우스우측버튼을 눌러야한다 (전부가정이에요.각 게임마다 다르겟죠)
위치조건 : 내피위치(100,100) / 파티1피위치(200,100)
인식1 : 내피위치 이 빨간색이아니면 키보드1을 눌러라. >> 이러면 내 피는 잘 차겠죠? 그럼 파티원1의 피검사를 해보죠
인식2 : 파티1피위치 가 빨간색이 아니면 키보드 3을 눌르고 마우스를 파트1피위치로 옴긴후에 우측버튼을 클릭합니다.
오.. 변수가 없어도 잘 작동하겠죠?.
근데 여기서 만약... 인식1,2가 동시에 작동하려고 든다면 어쩔까요? 내피를 채우려고하는시점에 파티원1을 피를 채우려한다면
기계는 키보드 1도 눌러소 3도눌럿다는 말도안되는 신호를 WIndow 에 보내겟죠?...
그러면 미치거나 잘되거나(?) 둘중하나겠지만 인식목록이 복잡해지면 복잡할수록 불안정해질건 뻔합니다..
그렇다면.. 둘이 동시발생을 해도 한놈만 실행하게하는겁니다.
여기서 변수를 써봅시다. 내피를 채우는동안에 변수 H 에 1을 넣어봅시다. 기본값은 0이겟죠^^;
인식1 : 내피위치 이 빨간색이 아니다
인식1(1) : H = 1
인식1(2) : 키보드1을 눌른다
인식1(3) : H = 0
인식2 : 조건 H=0 일떄만 작동하게한다.
인식2(1) : 파티1피위치 가 빨간색이 아니면 키보드 3을 눌르고 마우스를 파트1피위치로 옴긴후에 우측버튼을 클릭합니다.
위의명령을 해석하자면 내 피를 채우는동안에는 H=1 이되기떄문에 동시에 인식2가 발생하더라도 H값떄문에 작동을 하지않겠죠?
이런경우라면변수가 필요합니다. 후에모를 오류처리를 대비함이되죠.
이제 이런 기본틀(?)에 좀더 뼈와살을 붙여보죠.
추가조건 : 내피와 파티원1의 피를 확인하고 60초마다(즉 60초를 넘어간다면) 마나물약(단축키 Z 라고 가정함)을 먹도록?
추가설명 : T1(T는 타이머이며 기계가 작동하는 시점에서 1초마다 +1이 증거한다고 생각하면 됩니다 - 틀리면 태클환영
(저역시 많이 보지못한관계로 ^^)
인식1 : 내피위치 이 빨간색이 아니다
인식1(1) : H = 1
인식1(2) : 키보드1을 눌른다
인식1(3) : H = 0
인식2 : 조건 H=0 일떄만 작동하게한다.
인식2(1) : R = 1
인식2(2) : 키보드3을 눌른다
인식2(3) : 마우스위치를 파트1로 이동
인식2(4) : 마우스우측버튼을 클릭한다. >> 3~4의 명령을 위치파트1에 마우스 우클릭을한다와 동일합니다.
인식2(5) : R = 0
인식3 : T1 >= 60
(여기서 크거나 같다던 같다던 상관이없지만 혹시 모를 오류로인해서 60이라는 숫자가 사라졋을경우를 대비함으로 >=를 사용했다.
왜 >= 인지 왜 = 인지는 조금더 생각해보시길 바랍니다.(사실 차이가 거의 없다고보심됩니다만 >= 가 더 오류에 강할거라고 에측합니다)
인식3(1) : 키보드 Z를 눌릅니다
단 여기서도 각 명령의 동기화를 해줘야겠죠? 중복으로 일어날경우의 대비죠. 인식3은 다음과같이 변경해줘야 아름다울것 같습니다.
인식3 : H=0 이고 R=0 이고 T1 >= 60
인식3(1) : 키보드 Z를 눌릅니다
인식3(2) : T1 = 0 으로 설정.
위의명령으로 마나를 먹는타임은 60초를 경과한후에 계속 인식이 되는데 H = 0 (피를 안먹는상황) ,
R=0(파티1피를 안채우는상황) 에서만 작동합니다.
만약 T1=60이라고가정을 했다면 60초순간에 피를 먹거나 파티1을 피를 채우게된다면 이 마나는 절대 못먹고 다시
60초후를 기다려야하지만 >= 이므로
61초가되도 62초가되고 피, 파티1를 채우고잇지만않으면 기다리고(?) 있다가 작동하게됩니다. 여기서보면 >= 를 써야 더 말이되겟죠?
그리고 마지막에 T1=0을 설정을 해줘야 T1 의 값이 0이되고 다시 +1씩 갈테니.. 60초후에 또 인식3이 작동할 조건이 작동되겠죠.
에궁 급히 쓰느라 글 상태가 말이 아니군요 ^^;
실제테스트해본 로직이아니므로 오류가 있을수있습니다. 어디까지나 설명용입니다.
'잡동사니' 카테고리의 다른 글
Horus Bennu(호루스벤누) 747x 구입~ (0) | 2010.03.14 |
---|---|
(네이버가계부) 네이버에 가계부가 있군요. (0) | 2010.01.31 |
웹호스팅업체를 www.Cafe24.com 로 변경했습니다. (0) | 2010.01.15 |
흐미..포럼이 설치가안되는 사태가 발생 ㅠ_ㅠ (0) | 2010.01.11 |
Win7 옵션을 한화면에서 보기(GodMode) (0) | 2010.01.11 |