2017년 8월 11일 금요일

2017년 8월 10일 목요일

cross Platform framwork

angula2
ionic2
cordova



ng new my-app

cd my-app
ng serve --open

http://localhost:4200/

조건문typescript

 조건문


조건문이란?

조건문은 주어진 조건에 따라 각각 다른 실행이 발생하도록 하는 것인데 조건이 참인지 거짓인지를 파악할 때 비교연산자가 이용됩니다.

사실 비교연산자를 배운이유는 바로 지금부터 배울 조건문을 쓰기 위함입니다.



조건문은 if와 else, else if, switch, case 가 있다. 이 중 if,else,else if가 같이 쓰이며 switch,case가 같이 쓰입니다.


if-else

if(true){

    alert(1);

}

alert(2);


다음과 같은 문장이 실행되면 if의 조건값이 true이기 때문에 if안의 내용이 실행되어 1이 나오지만 2는 실행되지 않습니다.

하지만 만약 true가 아닌 false가 조건값이라면 if안의 내용이 실행되지 않으므로 2가 나타날 것입니다.


하지만 위 문장을 다음과 같이도 표현할 수 있습니다.


if(true){

    alert(1);

} else {

    alert(2);

}


다음 조건값이 true경우 1이 출력이 되고 false인 경우 2가 출력되라는 문장입니다.


다음은 else if가 포함된 경우입니다.

if-else if-else

if(false){

    alert(1);

} else if(true){

    alert(2);

} else if(true){

    alert(3);

} else {

    alert(4);

}


위 문장 의 결과는 2입니다.

왜냐하면 이미 true인 값일 때 가장 먼저 적혀있는것이 2이므로 2가 출력이 되고 조건문의 실행은 종료되기 때문입니다.


만약

if(false){

    alert(1);

} else if(false){

    alert(2);

} else if(true){

    alert(3);

} else {

    alert(4);

}


로 나타날 경우 3이 출력됩니다.



다음은 switch-case문입니다.


switch-case문은 switch문에 조건을 주어 switch문안에 case를 주어 해당 조건에 맡는 경우에 따라 다른 결과가 나타나도록 실행시키는 것이다.


switch-case

var a = 1;


switch (a) {

    case 10: alert("no"); break;

    case 20: alert("yes"); break;

    default: alert("hmm"); break;

}


위 결과는 변수 a의 값이 1이므로 switch문 안의 case가 1인것에 해당하는 값을 찾지만 없으므로 default가 실행되어 hmm이 출력됩니다.


var a = 10;


switch (a) {

    case 10: alert("no"); break;

    case 20: alert("yes"); break;

    default: alert("hmm"); break;

}


위 결과는 변수 a의 값이 10이므로 switch문 안의 case가 10인것에 해당하는 yes가 실행됩니다.


** break란? break를 적어준다면 현재 실행되고 있는 문(가장 안쪽 중괄호)을 벗어 난다는 뜻입니다.

   continue란? continue를 적어준다면 현재 실행되고 있는 문을 continue가 적힌위치에서 끊고 다시 처음부터 실행한다는 뜻                     입니다.



물론 조건문 안에 논리 연산자도 사용가능 합니다.



if(false || !true){

    alert(3);

}


boolean값을 따른 조건문도 가능합니다.

0은 false로 0이 아닌 다른 값은 모두 true로 간주됩니다.


if(0){

    alert(1)

}

if(1){

    alert(2)

}

다음과 같은 문장에서는 2가 출력됩니다.


출처: http://sisir.tistory.com/41 [시실의 IT이야기]

함수 typescript

함수


함수란?

하나의 로직을 재실행 할 수 있도록 하는 것으로 코드의 재사용성을 높여주는 것입니다.


함수는 다음과 같은 형식으로 작성됩니다.


function 함수명( [인자...[,인자]] ){

   코드

   return 반환값

}


함수는 function 뒤에 함수의 이름이 오고, 소괄호가 따라옵니다. 소괄호에 인자라는 값이 차례로 들어오는데 이 값은 함수를 호출할 때 함수의 로직으로 전달될 변수입니다.

인자는 생략 할 수 있다. 함수를 호출 했을 때 실행하게 될 부분이 중괄호 안쪽에 옵니다.


function abc(){

    i = 0;

    while(i < 10){

        document.write(i);

        i += 1;

    } 

}

abc();


위의 예제 제일 하단에 아래 구문(abc();)에 의해서 abc라는 이름의 함수가 호출되고 있는 것입니다.

결과는 0123456789와 같습니다.


위의 함수를 반복문과 합치면 함수가 여러번 호출하도록 작성이 가능합니다.


사실 함수의 핵심은 입력과 출력입니다. 입력된 값을 연산해서 출력하는 것이 함수의 기본적인 역할입니다.

즉, 인자값을 받아 입력을 하고 return을 이용하여 출력을 합니다. return이 발생하면 해당 함수는 종료됩니다.


function get_arguments(arg1, arg2){

    return arg1 + arg2

}



alert(get_arguments(10, 20));  -> arg1에 10, arg2에 20이 인자값으로 들어가 arg1+arg2한 값 30이 return 됩니다.


출처: http://sisir.tistory.com/43 [시실의 IT이야기]
함수

함수란?
하나의 로직을 재실행 할 수 있도록 하는 것으로 코드의 재사용성을 높여주는 것입니다.

함수는 다음과 같은 형식으로 작성됩니다.

function 함수명( [인자...[,인자]] ){
   코드
   return 반환값
}

함수는 function 뒤에 함수의 이름이 오고, 소괄호가 따라옵니다. 소괄호에 인자라는 값이 차례로 들어오는데 이 값은 함수를 호출할 때 함수의 로직으로 전달될 변수입니다.
인자는 생략 할 수 있다. 함수를 호출 했을 때 실행하게 될 부분이 중괄호 안쪽에 옵니다.

function abc(){
    i = 0;
    while(i < 10){
        document.write(i);
        i += 1;
    }
}
abc();

위의 예제 제일 하단에 아래 구문(abc();)에 의해서 abc라는 이름의 함수가 호출되고 있는 것입니다.
결과는 0123456789와 같습니다.

위의 함수를 반복문과 합치면 함수가 여러번 호출하도록 작성이 가능합니다.

사실 함수의 핵심은 입력과 출력입니다. 입력된 값을 연산해서 출력하는 것이 함수의 기본적인 역할입니다.
즉, 인자값을 받아 입력을 하고 return을 이용하여 출력을 합니다. return이 발생하면 해당 함수는 종료됩니다.

function get_arguments(arg1, arg2){
    return arg1 + arg2
}

alert(get_arguments(10, 20));  -> arg1에 10, arg2에 20이 인자값으로 들어가 arg1+arg2한 값 30이 return 됩니다.


출처: http://sisir.tistory.com/43 [시실의 IT이야기]
7. 함수

함수란?
하나의 로직을 재실행 할 수 있도록 하는 것으로 코드의 재사용성을 높여주는 것입니다.

함수는 다음과 같은 형식으로 작성됩니다.

function 함수명( [인자...[,인자]] ){
   코드
   return 반환값
}

함수는 function 뒤에 함수의 이름이 오고, 소괄호가 따라옵니다. 소괄호에 인자라는 값이 차례로 들어오는데 이 값은 함수를 호출할 때 함수의 로직으로 전달될 변수입니다.
인자는 생략 할 수 있다. 함수를 호출 했을 때 실행하게 될 부분이 중괄호 안쪽에 옵니다.

function abc(){
    i = 0;
    while(i < 10){
        document.write(i);
        i += 1;
    }
}
abc();

위의 예제 제일 하단에 아래 구문(abc();)에 의해서 abc라는 이름의 함수가 호출되고 있는 것입니다.
결과는 0123456789와 같습니다.

위의 함수를 반복문과 합치면 함수가 여러번 호출하도록 작성이 가능합니다.

사실 함수의 핵심은 입력과 출력입니다. 입력된 값을 연산해서 출력하는 것이 함수의 기본적인 역할입니다.
즉, 인자값을 받아 입력을 하고 return을 이용하여 출력을 합니다. return이 발생하면 해당 함수는 종료됩니다.

function get_arguments(arg1, arg2){
    return arg1 + arg2
}

alert(get_arguments(10, 20));  -> arg1에 10, arg2에 20이 인자값으로 들어가 arg1+arg2한 값 30이 return 됩니다.


출처: http://sisir.tistory.com/43 [시실의 IT이야기]
7. 함수

함수란?
하나의 로직을 재실행 할 수 있도록 하는 것으로 코드의 재사용성을 높여주는 것입니다.

함수는 다음과 같은 형식으로 작성됩니다.

function 함수명( [인자...[,인자]] ){
   코드
   return 반환값
}

함수는 function 뒤에 함수의 이름이 오고, 소괄호가 따라옵니다. 소괄호에 인자라는 값이 차례로 들어오는데 이 값은 함수를 호출할 때 함수의 로직으로 전달될 변수입니다.
인자는 생략 할 수 있다. 함수를 호출 했을 때 실행하게 될 부분이 중괄호 안쪽에 옵니다.

function abc(){
    i = 0;
    while(i < 10){
        document.write(i);
        i += 1;
    }
}
abc();

위의 예제 제일 하단에 아래 구문(abc();)에 의해서 abc라는 이름의 함수가 호출되고 있는 것입니다.
결과는 0123456789와 같습니다.

위의 함수를 반복문과 합치면 함수가 여러번 호출하도록 작성이 가능합니다.

사실 함수의 핵심은 입력과 출력입니다. 입력된 값을 연산해서 출력하는 것이 함수의 기본적인 역할입니다.
즉, 인자값을 받아 입력을 하고 return을 이용하여 출력을 합니다. return이 발생하면 해당 함수는 종료됩니다.

function get_arguments(arg1, arg2){
    return arg1 + arg2
}

alert(get_arguments(10, 20));  -> arg1에 10, arg2에 20이 인자값으로 들어가 arg1+arg2한 값 30이 return 됩니다.


출처: http://sisir.tistory.com/43 [시실의 IT이야기]

nox android studio connect command


nox android studio connect command

path = C:\Program Files (x86)\Nox\bin


nox_adb.exe connect 127.0.0.1:62001



alias nxcon = ' C:\Program Files (x86)\Nox\bin\nox_adb.exe connect 127.0.0.1:62001'

2017년 8월 8일 화요일

도타2 자동 매치 승인( STEAM DOTA2 MATCH AUTO ACCEPT)


묵이 말라 물을 마신다 , 담배 한대 핀다, 화장실에 갈때 매치 실행 해놓으면 매치가 잡혀 있지 않을 까요?



도타의 특성상 매치 잡기 좀 힘들지요 그리고 기다리며 쓸데 없는 잡담이나하는 채팅창 처다 보기도 답답하고요
그래서 이리 저리 찾아 해매다 간단한 좋은 팁을 발견하여 직접 해보 았지만 제데로 작동 하지 않는것을 확인하고

끈기를 가지고 수정 하다 보니 잘되는 것을 확인 하여 공유 하게 됐습니다.
사용하시다 편리하다 느끼시면 댓 글 부탁 드립고요

이제부터 설명 드리 겠습니다.

xdotool  을 활용한   bash 스크립트 이며 리눅스 는 잘되는것 확인 했습니다.
윈도즈도 활용할 방법은 있는데 잘기억이 안나서 패스

일단 소스 공유


#!/bin/bash
echo "Listening for Game pop."

interface=org.freedesktop.Notifications
member=Notify
game="Your game is ready"

# listen for DBus events,
# each time we enter the loop, we just got an event
# a positive match will be when the event message correspond to $game

dbus-monitor "interface='$interface',member='$member'" |
while read -r line; do
  if [[ $line == *"$game"* ]]
  then
    now=$(date +"%T")
    echo "$now Matchmaking is ready !";

    #Auto-Accept Code
    xdotool search "Dota 2" windowactivate # Bring Dota2 to the front
    sleep 2 # wait 2 sec
    xdotool mousemove 701 528 click 1 #마우스 클릭이 들어 가나 딜레이가 없어 안먹히는듯
    sleep 0.3
    xdotool click 1 # 다시한번 클릭
    sleep 0.3
    xdotool mousemove 701 528 click 1 # 마지막으로 확인 사살
  fi
done

위의 불은색 부분이 핵심 입니다.
701 528 부분이 마우스 포인트 위치 인데 그곳에서 클릭 해줘라 입니다.
위의 좌표는 저의 모니터 해상도 죄표이며 사용자 마다 약간 차이가 있어 직접 좌표를 얻어 오는 것이 좋습니다.

현재의 마우스 좌표값을 확인 하는 것은
다음과 같이 하면  x y 좌표 값을 확인 할 수 있습니다.
일단 매치 매이킹 하셔서  매치가 잡피면 accept(승인) 버튼 위에 마우스를 올려 놓고 아래 명령을 미리 준비하고 있다. 실행 해주면 좌표 값을 얻을 수 있습니다.

$ xdotool getmouselocation
x:2713 y:363 screen:0 window:4208753

그래서 위의 소스에서 좌표 부분만 수정 하셔서 쓰시면 됩니다.

즐거은 도타2 되세요




[참고] xdotool 설치 방법
debian,ubunto : apt-get install xdotool

archlinux : pacman -S xdotool

redhat 계열은 yum 이나 rpm 패키지 찾아 보세요