• 2018. 9. 17.

    by. 별머루

      
      

    오토핫키(Autohotkey) 강좌 #6 -Ramdom 함수

      

    이번 시간엔 오토핫키의 Random 함수에 대해 알아보도록 하겠습니다. 

    오토핫키의 random 함수는 여러상황에서 쓰이는데요.. 주로 무작위 클릭이나 무작위 값을 대입해서 결과값을 다르게 할때 많이 사용되는 함수 입니다. 어떻게 사용하느냐에 따라 사용방법이 무궁무진한 함수가 바로 Random 함수 입니다. Autohotkey random 함수 그럼 어떻게 사용하는지 한번 보시죠^^

    [다른 오토핫키 강좌 보러가기]

    우선 오토핫키 공식 홈페이지에서의 Random함수 사용 방법 입니다.

     

    Random, Outputvar [, min , max]

    Random, Newseed

    이렇게 보면 잘 모르시겠죠? 솔직히 별거 없습니다. random함수를 불러와서 변수 지정하고 지정한 변수의 최저값과 최대값을 정해주는 것이죠. 

    그럼 이 Random 함수를 통해 할 수 있는게 무엇이 있느냐.. 결론적으론 Random 함수로는 자신이 선택한 범위내의 숫자값을 무작위로 생성하는 기능 밖에는 없습니다. 

    1부터 9999까지의 숫자중 무작위 숫자를 만들어내서 그 값을 지정한 변수내에 저장하는 것이죠.간단한 예제를 하나 적어 보겠습니다. 

    예제 1)

    f1:: 

    Random, a, 1, 100

    msgbox , %a%번째 클릭입니다.

    return

    결과)

    // ramdom함수로 a 라는 변수에 1~100 사이의 수를 생성에 저장후 메세지 박스로 출력 //

     

     

     

    Random 함수의응용은 간단합니다.

     

     

     

    메세지박스 부분에 마우스클릭을 넣는다는지.. 저장된 값을 다른 변수와 대입해 또 다른 함수를 불러 올수도 있구요. Random함수는 그만큼 어떻게 쓰느냐에 따라 활용방법이 무궁무진한 함수 중 하나 입니다. 여기서 제가 실제 사용하는 간단한 Random 함수 스크립트 하나를 예로 들자면..저도 어느분이 완성해놓은 스크립트를 살짝 수정한 것입니다..어느분 껀지는 기억이 잘 안나네요. 

    하지만 이렇게 오토핫키의 random 함수로 숫자가 아닌 무작위 문자도 출력이 가능합니다. 이걸 조금 응용하면 게임메크로에서 상대방이 나에게 말을걸면 자동으로 대답을 할 수 있는 스크립트를 짤수 있겠죠?? (물론 말도 안되는 무작위 배열 문자겠지만.. 조금만 더 응용하면 다른 결과를 만나실수도 있습니다)

     

     

    예제 2) Random 함수를 통해 랜덤 문자생성

    F1::

    Function()

    {

        Result = 

        Loop,3

        {

            Random,English,97,122

            English:=Chr(English)

            IfnotInString, Result, English

            {

                Result = %Result%%English%

            }

        }

    msgbox, %Result%

    return Result

    return

    }

    F2::reload

     

    결과) 

    // 아스키코드값을 이용해 숫자를 문자열로 바꿔주는 스크립트 loop의 횟수에 따라 문자열이 늘어나고 줄어듭니다.

     

    지금까지 오토핫키의 Random 함수에 대한 설명을 두개의 예제로 설명드렸습니다. 더 자세한 내용이나 파라메터를 원하시는 분들은 https://lexikos.github.io/v2/docs/commands/Random.htm 로 가시면 보다 자세하게 설명되 있습니다 (영문)