코딩을 해보자 09

in #kr8 years ago

오랜만의 코딩 시리즈+_+/
아마도 다 까먹었다는데 한표겁니다..
요번에 감기걸려서 진짜 오진장 고생하고 있습니다. ㅡㅠㅡ
모두들 감기 조심하시길..


오늘은 요 게임을 이용해서 다시 저번 내용을 복습해보고 다시 의욕을 고취시켜봅시다


생소한 프로그래밍을 이해해보자

저번까지 배운것만해도 이제 어느정도 실용단계에 들어섰다고 할 수 있다
하지만 배운 것을 코딩할려고 하는 순간 막힐 것이다
첫번째는 프로그래밍이라는 것이 워낙 저수준부터 만들어가는 것이라
일상에서 숨쉬듯이 하던 것들을 그런식으로 '계획'부터 하기엔 너무 생소해서이다
예를들어 달리는 것을 우리는 아무렇지도 않게하지만 실제론 뇌에 오토영역이 있어서
자동으로 처리해주니까 그렇게 할 수 있는거다
만약 자신의 근육들을 수동으로 처음부터 하나씩 움직이게 '계획' 하려면
먼저 발바닥 앞부분을 사용해서 몸을 들어올리는 동시에 허벅지와 종아리를 적절히
수축 팽창을 반복하여 ... 에라 모르겠다..ㅡ,.ㅡ;;;
여하튼 우리몸은 뇌가 불법으로 사용하는 오토가 아니면 진짜 개노가다로
프로그래밍해야한다. 현재 선보이는 로봇들이 웃기게 생긴 다리를 가진 것은
인간형태로 만들어선 단순히 균형을 잡게하는 것조차 거지 같기 때문이다

마침 그런 거지 같은 기분을 맛보게 해줄 게임이 있다

https://www.foddy.net/Athletics.html

이걸 처음부터 잘하면 그 사람은 아마 프로그래밍에 소질이 있는 사람일 것이다
어떤 것을 어떻게 움직일지를 논리적으로 '계획'하는 사람일 것이니까..

여하튼 프로그래밍과 컴퓨터를 연결하기 전에
초보는 프로그래밍 자체의 본질을 제대로 경험해보지 못했기에 뭔가를 할려고
에디터를 키면 막상 뭘 적어야할지 난감하게 된다

오토를 알아보자

그래서 프로그래밍을 할려면 분명한 목적성을 갖는 것이 중요하다
세속적인 목적이면 더욱 좋다
고로 게임오토를 하나 만들어보자

오토란건 뭘까
그냥 나의 노예다. 내가 할일을 대신해주는 노예
얼마나 좋은가..
하지만 문제가 좀 있는데 노예를 직접 창조해야된다는 것
이파트에서 대부분 나가떨어진다
노예는 좋지만 만들줄을 모르니까

그런점에서 오토핫키 같은 스크립트 언어들은 지식이 적어도
부려먹을 수 있을만한 것을 만들 수 있다는 장점이 있다

오토란게 작동할려면
일단

인식 -> 판단 -> 행동

의 3단계가 이루어져야한다.
그리고 오토핫키는 인식파트에서 강력한 기능을 제공한다
그것이 바로 ImageSearch 한국말로 그림찾기 기능이다

스샷을 찍어서 저 명령어로 그 스샷을 지정해주면 그 그림이 어디 있는지
좌표를 알려준다. 그럼 이제 판단을 할 차례인데 이 경우는 그림을 찾았는가
못찾았는가에 대해서 판단한다

여기에 유용한 명령어가 if 이다
if 만약에.. 라는 명령어는 진짜 프로그래밍의 만능의 열쇠라고 할 수 있다
단지 이것만 열나게 나열해도 프로그래밍이 가능하다

if를 사용해서 두가지 경우를 상정한다 '찾았을 때' '못찾았을때'
이걸로 판단은 끝났다
이제 각각의 판단에 대해서 행동하기만 하면된다
못찾았다면 찾을때까지 뺑뺑이 돌라고 할 수 있다
이것이 바로 if와 쌍벽을 이루는 루프, 즉 뺑뺑이 명령어다

그럼 좌표를 찾으면 뭐할건가 다시 궁금해할 사람도 있을것이다
이것도 위에서처럼 개념이 생소해서 좌표라 하니 생뚱생뚱거리겠지만
그 좌표를 알아내서 여행을 떠나는게 아니라
화면상의 위치를 좌표라고 한다 이제 그 위치에 마우스 포인터를 옮긴후
클릭을 명령하면 되는 것이다

MouseClick, left, 55, 233

이런 식으로 말이다. 명령어만 봐도 대충 그 뜻을 유추할 수 있다
(55,233) 좌표로 가서 왼쪽 마우스를 클릭하는 뜻이다
위에 것을 아예 코드로 정리면

loop            ;괄호안을 무한으로 뺑뺑이돌아라
{
    ImageSearch, x좌표결과, y좌표결과, 시작x좌표, 시작y좌표, 끝x, 끝y, 찾을거.png

    if ( ErrorLevel == 0)       ; 만약 에러난것이 하나도 없으면, 즉 찾았으면 
    {
        MouseClick, left, %x좌표결과%, %y좌표결과%
    } 
    else            ; 그렇지 않으면(에러난게 있으면), 즉 못찾았다면
     {
        continue   ; 계~~~속 반복해라
    }
}

이로써 오토의 요건인 인식,판단,행동을 모두 할 수 있는 프로그램을
단 13줄로 만들었다. 것도 대부분 괄호와 빈줄 빼면 6줄정도다

그럼 한번 스맛폰 게임으로 저 짓의 위력을 체험해보자

이게임은 요즘 게임답게 이미 오토가 내장된 게임이라 자동전투를 하지만
정작 진행에 가장 중요한 필살기에 대해선 게임내 재화를 소모해야 자동으로
수행한다.


중요한건 아래에 뽈록하게 나온 버튼이다 저걸 누르면 필살기가 발동한다
고로

요렇게 잘라놓고 이름을 궁극기.png로 하자

loop        
{
    ImageSearch, x, y, sx, sy, ex, ey, 궁극기.png

    if ( ErrorLevel == 0)       
    {
        MouseClick, left, %x%, %y%
    } 
    else        
     {
        continue  
    }
}

짜잔..-ㅅ-!
저 이미지가 발견되는 순간 바로 버튼을 누르게 되고 궁극기가 발동한다

궁극기가 발동하면 타이밍 맞춰서 게이지가 저 원안에 들어가는 순간 눌러줘야한다
그래야 제대로 된 위력이 나온다.
이것도 저기 이미지 캡쳐한후 하면되겠지만
이경우는 단순히 대략 1.2초정도에 클릭하면 되니
위의 코드를 실행해서 궁극기를 발동한 후 버튼이 나오는 좌표는
xxx, yyy로 이미 알고 있다고 가정하면

Sleep 1200          
MouseClick, left, %xxx%, %yyy%

위와 같이 짤 수 있다
1200은 밀리세컨드로써 1.2초다. 1.2초간 자면서 대기하다 일어나서 클릭하라는 얘기다

자 그럼 어떻게 작동하는지 한번 구경해보자

저 동영상에서 내가 지정한 이미지는 두번째랑 마지막 케릭의 이미지다
그래서 그 해당케릭의 궁극기 버튼 이미지가 뜨자마자 발동->타이밍버튼 클릭까지
자동으로 처리하는 것을 볼 수 있다

코드가 몇가지 추가되는 것은 있지만
위 프로그램의 핵심인 오토기능은 위에 언급한 코드를 더 많이 복사해 붙인것에
불과하다.

그래서 이런 오토핫키의 편리함에 메이플을 즐기는 초딩들이 코딩에 참여할 정도다
당장 보상이 주어지는 공부를 찾자면 이세상에서 코딩만한 것이 없을 것이다
그 중에서 스크립트언어는 더욱더 빨리 결과물을 접할 수 있으니
굳이 게임오토 생각할 것 없이
업무라던가에서 매일 컴터로 반복하는 부분
예를들면
파일이름 일괄바꾸기나 문서 작성시 단축키 누르면
매번 쓰던 양식이 바로 적혀지게 하거나
문서파일을 여러군데 동일하게 복사해야한다면 단축키 한방에
지정한 경로들로 여러개가 동시에 저장되게 할 수도 있다

이런 것들을 검색한방에 이미 선구자들이 다 일궈놓은 터전(코드)가 있으니
원하는 것을 잘 생각해보고 한번 직접 만들어보길 바란다

그리고.. 감기 조심하세요.. 요번 독감 장난 아닌게.. 죽을거 같음..

Sort:  

ㅎ 주말에 천천히 다시 해보겠습니다.

감사히 보고 있습니다. 부탁좀 드려도 될까요?
https://github.com/xeroc/piston

이것이 스팀블럭체인에서 데이타를 가저다 쓸수있는 무엇인거 같습니다.
이것을 컴퓨터에 설치하고 특정테이타를 가져오는방법을 프로그램 강의 를 해주시면 도움이 많이 될거 같습니다.

this.piston.rocks 라는 서버가 steem block chain 을 갖고 있는 public server 인듯합니다.
이 서버에 API 를 붙여서 이 API 를 이용해서 Steem 을 건드리는 구조입니다.
시간될 때 좀 더 살펴보겠습니다.

음.. 저도 파이썬을 해보질 않아써..ㅠㅠ
저건 단순한 유틸인거 같은데도 파이썬 설치하고 커맨드창에서 실행해도 오류가 나더군요
그래서 찾아보니
http://yellowtopaz.tistory.com/191
C++ 유틸리티가 없다는둥.. 그래서 그걸 설치했더니
이번엔 다른 에러가..;;
사실 설치만 되면 사용법은 다 적혀있으니 문제 없을겁니다 제 컴 문제일수도 있죠..ㅠㅠ
https://www.python.org/downloads/release/python-352/
여기서 파이썬 설치하시고
윈도키 + R 해서 cmd 엔터 하시면 커맨드 창 뜨는데
거기서 사용법대로
pip3 install --user steem-piston
쳐서 설치해보세요 설치되면 그후엔 usage 따라서 그대로 치면 값들 나올겁니다

여하튼 저도 시간날때마다 배워서 알아보겠습니다

코딩 한 번 따라해볼게요ㅎ 잘 할 수 있을지는 미지수지만ㅎㅎ

더 쉬운걸로는 스크래치가 있습니다 ㅎㅎ

Coin Marketplace

STEEM 0.19
TRX 0.16
JST 0.029
BTC 63396.97
ETH 2619.18
USDT 1.00
SBD 2.80