본문 바로가기
IT/JAVASCRIPT

카카오톡 메신저봇 랜덤포인트 자바스크립트 소스

by 쫄보에서고수까지 2020. 10. 16.
반응형


카카오톡 메신저봇을 켠 상태에서 유저를 등록하고 

대화를 하다보면 랜덤으로 포인트 쌓이는 스크립트 소스를 공개 합니다.


카카오톡에서 받은 메세지를 통해 실행되는 함수는

이부분에서 시작하게 됩니다.

주로 사용하게 되는 변수는 다음과 같이 3개가 되겠습니다.


단톡방 혹은 특정 사람이 온걸 감지하려면

if(room == "홍길동")  {

이 안에서 코딩

}


메세지가 안녕? 을 감지하려면

if(msg == "안녕?") {

이 안에서 코딩

}

하면 됩니다.

기초적인 이러한 문구를 응용하여 

친구들 <- 이라는 카톡방에서 랜덤으로 포인트 

"당첨되었습니다" 라는 문구는 아래와 같습니다.


var eNum = parseInt(Math.random()*10);

console.log("eNum :: " + eNum);

으로 찍어보면

parseInt(Math.random()*10) 중에 10이라는 숫자는 0~9까지 랜덤으로 출력된다고 볼 수 있습니다.

따라서, 0~9까지 숫자 중 하나가 일치한다고 처리하면 10% 확률로 포인트가 당첨 된다고 

말할 수도 있습니다.


기본적으로 틀이 완성된 소스 코드는

이며 , replier.reply(); 를 이용한 답변이 가능한걸 알 수 있습니다.

1. 정리

랜덤난수 발생 -> 랜덤숫자가 1 이면 당첨되었다고 답장 메세지 전송.


모바일에서 친구들이라는 단톡방 안에 유저 데이터를 저는 이런식으로 txt 파일을 생성 하였습니다.

ex 샘플 

[    { user: "1번친구" , point : 0 }

,    { user: "2번친구" , point : 0 }

,    { user: "3번친구" , point : 0 }

]


만들어진 txt 파일은 휴대폰 내장메모리 > chatbot > database 안에 넣어줍니다.


제 친구들 단톡방 이름은 무지개 여서 무지개사용자별포인트 라를 txt 파일로 데이터를 관리 하고 있고

이 데이터베이스 안에서 꺼내오려면 

DataBase.getDataBase("txt이름.txt"); 를 활용 해야 합니다.

그냥 가져오게되면 String 형태로 가져오게되면서 사용하기가 힘들 수 있으니 

eval 로 감싸서 가져오시면 됩니다.


- 최종 소스 

핵심.

eval 로 JSON 형태의 데이터로 변환하고 보낸사람의 이름과 데이터들 중 

보낸사람의 이름이 같은 point를 찾아서 point 값 + 100 해준다.


실행결과. 


다음과 같이 표현 할 수 있습니다.

설명이 이해 안되시거나 부족한 내용 문의 주시면 

최대한 답변해드리도록 하겠습니다.


다음엔 포인트 적립을 통한 다양한 게임들을 만드는 포스팅 해보도록 하겠습니다.


감사합니다.

반응형
LIST

댓글