목록 project (8)
KEEP GOING
스킬 서버없이 시나리오를 사용하여 사용자 입력에 반응하는 챗봇을 구현하였습니다. 시나리오는 학습한 내용만 응답하지만 스킬은 현재 날씨 같은 변화하는 데이터에 반응하며 응답이 가능합니다. 스킬은 스킬 서버를 구축해야 하기에 별도의 코딩이 요구됩니다. [폴백등록 설정하기] 폴백 블록에 들어가서 봇응답을 설정합니다. 응답할 수 없는 데이터를 사용자가 입력한 경우, 디폴트 값으로 '제가 할 수 있는 일이 아니에요.' 라는 메시지를 리턴합니다. 야! 라고 입력하였더니 폴백 블록에서 등록한 메시지가 리턴되는 것을 확인했습니다. [제너릭 메뉴 사용하기] 제너릭 메뉴란 하단에 슬라이드 메뉴 형태로 보이는 유저 인터페이스를 의미합니다. 저는 '독서실 이용 정보', '헬스장 이용정보', '골프장 이용 정보', '문의/건의..
버튼 파일을 꾸미기 위한 stylesheet 파일이나 게임 결과 text를 담아두는 파일을 gameText.py로 따로 분리하였다. 그리고나서 메인 로직이 구현된 secondWindow.py의 코드를 개선해보았다. 추가적으로 내부 동작 알고리즘을 구현한 innerCode.py에 대한 unittest를 진행하였는데 unitTest.py에 기록해두었다. 1. button.py from PyQt5.QtWidgets import * class Button(QToolButton): def __init__(self, text, callback): super().__init__() self.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Preferred) self.setTex..
수업에서 배운 PyQt5 패키지를 이용하여 블랙잭 GUI를 구현해봤다. 게임 시작 창인 firstWindow 클래스와 메인 윈도우인 secondWindow를 구현하여 Controller를 통해 두 창을 연결시켜주었다. 즉, secondWindow가 게임 중요 로직이 동작하는 메인 윈도우이고 firstWindow는 서브윈도우가 된다. 1. mainGame.py from firstWindow import FirstWindow from secondWindow import SecondWindow from PyQt5.QtWidgets import QApplication import sys class MyController: def __init__(self): self.first_window = FirstWindo..
1. innerCode.py import random marks = ['spades', 'diamonds', 'hearts', 'clubs'] card_english = ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K'] # 파일 입출력 def load(): try: f = open("money.dat", 'r') return int(f.readline()) except FileNotFoundError: f = open("money.dat", 'w') f.write('100000') return 100000 def write(money): f = open("money.dat", 'w') f.write(money) f.close() # 결..
1. 게임 설명 카드의 합이 21점 또는 21점에 가장 가깝게 만들면 승리하고, 21을 초과하면 패배하는 베팅 게임이다. 플레이어는 매 승부마다 원하는 만큼 돈을 베팅할 수 있다. 1)플레이어는 시작 전 원하는 만큼 베팅한 후 카드 두 장을 받는다, 2)이때 두 카드의 합이 21를 초과할 경우 승부 없이 Bust가 되어 패배한다. 카드 합이 21일 경우, 플레이어의 승리로 Black Jack이 되어 배팅한 금액의 2.5배를 지급 받는다. 3)플레이어는 Hit(카드 추가)또는 Stay(승부)를 할 수 있다, Hit를 하는 경우, 카드의 합이 21를 초과할 경우 승부 없이 Bust가 되어 패배한다. 4)승부 시 플레이어의 카드 합이 딜러의 카드 합보다 높다면 승리하며 배팅한 금액의 두배를 얻는다. 만약 플레..
다행히도 챗봇 승인검사에 통과되었다 ... !! ㅋㅋㅋ (휴...리젝당할거라고 예상했는데) 쨌든, 그래서 본격적인 구현에 앞서 시나리오를 작성해보았다. 사실 챗봇 구현에 있어서 가장 중요한 것은 '스킬'이라는 기능을 사용하는 것인데 이건 다음 챕터에서 다룰 예정이다. 스킬을 사용하면 노가다 노동작업 없이 코드를 이용하여 쉽게 구현할 수 있다. (대신에 javascipt를 다룰줄 알아야한다! :> ) 지금은 넘어가기로 하자 파란색 버튼을 느르면 시나리오를 작성할 수 있다. 기본예제로 사용자와 인사를 나누는 시나리오를 작성해봤다. 그래서 블록이름을 hello 라고 작성했음 사용자 발화란 사용자가 입력할 수 있는 input값들을 의미한다. 이런식으로 작성해 봤다. 이에 해당하는 응답을 아래와 같이 임의대로 작..
언어를 제대로 배워야 한다는 생각에 사로잡혀 거진 1년을 주구장창 이론 공부만 하고 있었다... 무엇이든 서둘러서 만들어 봐야겠다는 생각을 했다. 그래서 선택한 것이 바로 카카오톡 챗봇 만들기 이다. 앱 개발을 먼저 시작하려고 했으나 css, javascript는 눈으로 직접적인 확인이 바로 되고 진입장벽이 낮아서 첫시작으로 괜찮다는 생각에 챗봇을 선정하게 됐다. (앱개발을 찾아보는데 첫프로젝트로 시작하기엔 내용이 너무 hard했다는....''';;) 이 프로젝트를 성공적으로 마치면 이후 공부해놓은 java언어를 기반으로 앱을 개발해볼 생각이다. 챗봇을 만들어야겠다고 생각한 '또 다른 이유'도 있었다. 시작하기에 앞서 유튜브, 웹사이트를 돌며 여러 개발자님들의 조언을 들었는데 간추려보면 내용의 핵심은 이..