대화봇을 만들어보자 - C / C++

오늘은 대화봇을 만드는것에 대해서 조금 글을 써보려고 합니다.

대화봇에서 제일 중요한것은 DataBase (이하 'DB')입니다.

이 DB에는 봇이 어떤 말에 어떤 응답을 한다, 이런 내용이 들어가있는데,

이거 구축하기가 만만치가 않죠, 그래서 외부에 있는 DB를 불러다 쓸겁니다.


http://barosl.com 에서는 인클봇에서 쓰는 대화 DB를 제공합니다.

그 대화 DB를 API 형식으로 제공하는데 그것을 프로그램으로 구현해보았습니다.


옛날에 짰던 프로그램이라 내놓기 좀 그렇군여


Inkl Bot Script.txt 


cpp 파일이 안올라가는군요,

그렇다고 소스강조도 없고요 ㅠㅠ,


이게 인클봇 API가 리턴값이 텍스트만 나오는게 아니고 조금 특이하게 나옵니다.

그래서 직접 체크하는 코드를 짜야하는데,

본문소스의 핵심부분만 참조해보자면


        gets(talk); -> talk에 입력을 받습니다


---------------------------------------------------


        FILE * output = fopen("Buf.dll","w");
        fprintf(output,"http://barosl.com/inklbot/api/talk.php?enc=cp949&q=");
        fputs(talk,output);
        fclose(output);


이 부분은 다운로드 받을 주소를 만드는 부분인데,

심히 부끄럽군요,

지금은 strcpy, strcat로 처리합니다,

띄어쓰기가 없다는 가정이 있다면 sscanf로 처리해주셔도 좋습니다.


---------------------------------------------------

        URLDownloadToFile(0,link,"talk.dll",0,0); -> 대화 내용을 요청합니다

---------------------------------------------------
        if(data[0]=='n'&&data[1]=='o'){
            printf("모르는 말이에요.\n\n");
        }

이부분에서 출력을 하는데,

no이면 그냥 글러먹은겁니다

그래서 빼줍니다.

---------------------------------------------------
        else{
            buf=strlen(data);
            for(i=4;i<buf;i++){
                if(data[i]=='$'){
                    i=i+4;
                    continue;
                }
                printf("%c",data[i]);
            }
            printf("\n\n");
        }

아마 $가 특수치환자라 저렇게 +4로 건너띈걸거에요

---------------------------------------------------


대충 이럽니다 ㅋㅋ

그럼 소스 파일 한번 받아서 분석해보시길!


Inkl Bot Script.txt

Share
이 글과 관련된 글
  1. [2011/10/28] 작은 로봇 하나 by 나요 Max (3468)
  2. [2011/10/21] 완전 멋진 로봇 by 나요 Max (1531)
  3. [2011/09/07] [아이씨엔]식음료 솔루션 및 기계제작을 위한 로크웰오토메이션 로드쇼 개최 by 오:세암 (2514)
  4. [2011/08/01] 8월 1일 추천글감: 로봇이 아이폰 만드는 시대 오나? by thoth starter (2141)
  5. [2011/06/29] 따뜻한 포옹이 필요해? 이제 혼자서도 가능하다 by 이종민 (1875)
TAG

Leave Comments


profileHMR의 블로그HMR의 자그마한 블로그입니다 

Select Language

Recent Trackback

Chat

ETC



T-NAVI