오토핫키 강좌 #1 - 변수 (오토핫키 붙여넣기)




안녕하세요~ 킴영감입니다.


오토핫키 기초강좌를 마무리하고 여름 휴가를 다녀왔습니다.


원래 까만 피부였는데 돌이킬수 없을만큼 타서 돌아왔네요...ㅠ


충분히 쉬었으니 오늘부터 쪼~금 깊이있는 내용을 다뤄볼까 합니다. (초보자 분들에게만 해당됩니다...^^)


우선 게시판 이름은 "오토핫키 붙여넣기"인데요~ 이렇게 정한 이유는 원하는 부분에 붙여넣듯이 똑같이 적어서 사용할 수 있도록 강좌를 진행할 것이기 때문입니다.


기초강좌를 보시고 프로그래밍에 대해서 조금은 알겠다고 느끼신 분은 붙여넣는다는 것이 와닿을 것이라 생각합니다. (와닫지 않으신 분들은 다시 기초강좌를 보시면서 실습을 하시다보면 분명 그 순같이 올 것입니다.)


그럼 오토핫키 붙여넣기 첫번째 강좌를 시작하겠습니다.


오늘 강좌의 주제는 "변수"입니다.


"이제와서 변수를 왜?"라고 생각하시는 분도 계실 것 같습니다.


하지만!! 단순히 변수사용방법만 알려드린다면 킴영감이 아니겠죠??^^ 변수의 개념과 사용방법, 그리고 응용까지 제가 가진 노하우를 알려드릴 것입니다.



1. 변수의 의미


"변수"라는 단어는 중학교 수학시간에 처음 들었던 것으로 기억합니다. (아닐수도 있지만요...ㅋ)


변수는 문자로 표기하며 특정한 값을 가질 수 있는 것을 의미합니다.


수학공식에서 항상 쓰이는 x와 같은 개념입니다. x에는 어떠한 숫자이든지 들어갈 수 있습니다. 이 개념을 똑같이 적용해서 프로그램에서 어떠한 값이든지 넣을 수 있는 공간변수라고 합니다. 더 깊게 생각할 필요없이 "어떤 값을 저장할 수 있는 공간"이라고만 생각하시면 됩니다.


그럼 "어떤 값"은 무엇일까요?? 다들 알고 계시는 "숫자", "문자", "문자열"과 함께 "참", "거짓"을 나타내는 "true"와 "false"등이 있습니다. (이후부터는 참 거짓 값을 bool값이라고 하겠습니다.)


이처럼 값은 여러 형태가 있으며, 다른 프로그래밍 언어에서는 값의 형태에 따라 변수를 구분해서 사용합니다. 하지만!! 고맙게도 오토핫키에서는 형태의 구분없이 사용하도록 만들어 놓았습니다. (이것은 아래에서 설명드리겠습니다.)


2. 변수 사용방법


"변수"의 사용방법은 간단합니다.


우선 변수에 값을 대입하는 방법은 아래와 같습니다.


 변수이름 := 값 


변수 이름은 사용하고 싶은 이름을 공백없이 적으시면 됩니다. 영어와 한글 모두 사용 가능합니다.

":="는 대입 연산자로 기호의 오른쪽에 있는 값을 왼쪽에 있는 변수에 저장하겠다는 뜻입니다.

""을 적을 때는 값의 형태에 따라 정해진 규칙이 있습니다. 


먼저 숫자는 그냥 적으시면 됩니다. (ex. 변수1 := 1)

문자는 작은 따옴표 안에 적으셔야 합니다. (ex. 변수2 := 'a')

문자열은 큰 따옴표 한에 적으셔야 합니다. (ex. 변수3 := "킴영감")

bool값은 그냥 적으시면 됩니다. (ex. 변수4 := true(또는 false))


기본적인 사용방법을 배웠으니 여기서 한가지 응용 들어갑니다.


어떤 변수가 값을 가지고 있을 때 이 값을 다른 변수에 복사하듯이 똑같이 저장할 수 있습니다. 방법은 아래와 같습니다.


 변수 := 변수 


값이 들어갈 자리에 변수를 적어주는 것입니다. 이렇게 적으면 오른쪽에 있는 변수의 값을 왼쪽에 있는 변수에 복사하듯 저장하게 되는 것입니다.


이처럼 변수에 어떤 값을 저장할 때에는 ":="를 사용할 수 있습니다.


다음으로 기초강좌의 "if"에서 배웠던 "변수의 값을 비교하는 방법"에 대해 알려드리겠습니다.

사용 방법은 아래와 같습니다.


 변수와 값 또는 변수와 같은지 비교

 변수 = 값 (변수 = 변수)

 변수가 값 또는 변수의 값 보다 큰지 비교

 변수 > 값 (변수 > 변수)

 변수가 값 또는 변수의 값 보다 작은지 비교

 변수 < 값 (변수 < 변수)


이처럼 왼쪽과 오른쪽의 값이 같은지 비교할 때는 "="를 사용합니다. 나머지 기호는 무슨의미인지 아실테니 넘어가겠습니다.


마지막으로 Gui에서 배운 Text와 같이 숫자나 문자를 표시하는 부분에 변수를 사용하는 방법을 알려드리겠습니다.


오토핫키에서는 고유의 방법으로 변수 내부의 값을 다른 기능에 바로 사용할 수 있도록 해 놓았습니다.


사용 방법은 아래와 같습니다.


 %변수이름% 


위와 같이 변수의 이름 양 옆에 "%"기호를 넣어주시면 변수 내부의 값을 의미하게 됩니다. (비교하는 부분에서는 예외입니다.)


바로 사용하실 수 있게 예를 들어드리겠습니다.


Gui의 Text를 업데이트할 때 GuiControl을 사용합니다. (기초강좌에서는 그냥 따라서 적으셨을 것입니다. GuiControl의 사용방법은 다음에 자세하게 알려드리겠습니다.)

Text를 GuiControl을 사용해서 업데이트할 때 아래와 같이 사용했었습니다.


 Gui, Submit, nohide

 GuiControl, , Text에 할당된 변수이름, 표시하고싶은 숫자나 문자 또는 문자열


두번째 줄에 있는 "표시하고 싶은 숫자나 문자 또는 문자열"부분에 아래와 같이 바로 원하는 문자열을 적어서 표시할 수 있습니다.


 GuiControl, , Text에 할당된 변수이름, 킴영감


하지만 스크립트를 작성하다보면 프로그램을 실행해서 돌아가는 중에 계속 변하는 값을 표시하고 싶을 때가 있죠? 기초 강좌에서는 클리어횟수를 나타내는 변수가 그것이었구요^^ 이처럼 변하는 값을 Text에 표시하고 싶을 때는 변수를 이용하면 편리하며 아래와 같이 사용할 수 있습니다.


GuiControl, , Text에 할당된 변수이름, %변수이름% 



3. 변수 응용방법


이제 기본적인 사용방법을 모두 배웠으니 응용을 해봐야겠죠?


제가 이번 강좌 주제를 변수로 정한 이유는 지금부터 알려드릴 응용 방법이 제 강좌를 보시는 모든 분들께서 아주 유용하게 사용할 수 있을 것이라는 확신이 있어서 입니다. 거창하게 시작하지만 엄청 쉬운 내용이며 단지 경험 부족으로 생각을 못해서 저처럼 사용 못하시는 분들께 도움을 드리고자 하는 것입니다.


저는 스크립트를 작성할 때 특정 기능을 구현해 놓고 이 기능이 동작을 했는지 안했는지를 체크하기위해 변수를 사용합니다. 쉽게 설명하면 우리가 어떤 이미지를 찾아서 클릭을 하는 프로그램을 만들었을 경우 클릭을 했는지 안했는지 체크하는 것입니다. 이같이 동작 상태를 체크하는 변수를 사용했을 때 프로그램은 더욱더 고급지게 바뀔 수 있습니다.


기초강좌에서 1번 이미지를 클릭 했을 때 2번 이미지를 클릭하도록 스크립트를 작성했던 것 기억나시죠?? 그때 작성했던 코드는 아래와 같습니다.


오토핫키 변수


위 코드를 변수를 응용해서 바꿔보겠습니다.


우선 루프 밖에 "클릭상태 := false" 라고 적습니다. 그 다음 위 코드를 아래와 같이 수정합니다.


오토핫키 if


위에서 부터 찬찬히 살펴보면 While 밖에 "클릭상태"라는 변수를 추가하고 "false"값을 저장했습니다.


그 다음 1번 이미지를 찾고 클릭하는 부분에 "클릭상태 := true"를 넣음으로써 1번이미지가 클릭 되어야만 "클릭상태"변수에 "true"값이 저장되도록 하였으며, 이는 1번이미지가 클릭되었다는 것을 "클릭상태"변수를 통해 알 수 있게 된 것입니다.


"클릭상태"변수에 "true"값을 넣고 if의 중괄호를 빠져나가 아래로 내려가면 빨간 박스안에 있는 if를 만나게 됩니다. if의 조건으로 "클릭상태"변수 안에 있는 값이 "true"와 같을 경우를 주었고, if 중괄호 내부에 2번이미지를 찾고 클릭하는 코드가 있기때문에 결과적으로 원래의 코드와 똑같은 동작을 하게 되는 것입니다. 


마지막으로 맨 아래에 있는 "클릭상태 := false"를 추가 함으로써 다음번에 1번 이미지를 다시 클릭하기 전까지 "클릭상태"변수에 "false"가 들어가 있게 되어 1번 이미지 클릭한번당 2번이미지 클릭 한번을 하게 되는 것입니다.


위와 같이 어떤 동작을 했는지를 판단하는 용도로 변수를 사용할 수 있으며, 특정 조건을 만족할경우 다른 특정 동작을 하게 하도록 프로그램을 만드는데 활용할 수 있습니다.


이제 여러가지 조건을 만들어 가면서 실습을 해 보시면서 응용 능력을 기르시면 됩니다.



오늘은 오토핫키에서 변수를 사용하는 방법과 변수를 응용하여 프로그램을 작성하는 방법에 대해서 알려드렸습니다. 마지막 내용은 처음 강좌를 보셨을 때와 같이 와닫지 않을 수 있습니다. 하지만 그때와 마찬가지로 반복적으로 생각하고 바꿔가면서 실습하시다보면 내것이 되는 순간이 반드시 올 것이라 생각합니다.


앞으로 진행될 오토핫키 붙여넣기 강좌에서는 기본적으로 그날 주제가 되는 명령어 또는 함수들의 사용방법을 그대로 사용하시면 되게끔 알려드리는 것을 기본으로 할 것이며, 필요하다고 생각되는 부분에서 오늘처럼 응용방법까지 알려드리려고 합니다.


제 강좌를 보시는 모든분들이 얻는 것이 있도록 킴영감의 오토핫키 강좌는 꾸준히 이어나가겠습니다. 그러니 제 강좌를 보시는 모든분들이 포기하지 마시고 꾸준히 따라오시기를 바랍니다.


이것으로 오토핫키 붙여넣기 첫번째 강좌를 마치겠습니다.

블로그 이미지

킴영감

프로그래밍과 게임공략, 게임과 관련된 프로그램에 대한 내용을 다룹니다.

,