오랜만에 카카오톡봇 글이네요
const scriptName = "야구게임";
let answer = [];
let is_start = 0;
let count = 0;
function response(room,msg,sender,isGroupChat,replier,imageDB,packageName) {
if (msg.startsWith("숫자야구시작") && is_start === 0) {
answer = setNumber();
replier.reply("숫자야구게임을 시작합니다.");
is_start = 1;
count = 10;
}
if (is_start === 1) {
if (!isNaN(Number(msg)) && msg.length == 4) {
let result = compare(msg);
count -= 1;
if (result[0] == 4) {
replier.reply(sender + "님, 정답입니다!\n게임을 종료합니다.");
is_start = 0;
count = 10;
} else if (result[0] == 0 && result[1] == 0) {
replier.reply("아웃!\n\n남은기회 " + count + "번");
} else {
replier.reply(result[0] +" 스트라이크\n" +result[1] +" 볼\n\n남은기회 " +count +"번");
}
}
if (count == 0) {
replier.reply("기회를 모두 사용했습니다\n패배! \n정답 : " +String(answer[0]) +String(answer[1]) +String(answer[2]) +String(answer[3]));
is_start = 0;
count = 10;
}
if (msg == "/포기") {
replier.reply("정답 : " +String(answer[0]) +String(answer[1]) +String(answer[2]) +String(answer[3]));
is_start = 0;
count = 10;
}
}
}
function setNumber() {
let answer = [];
let check = true;
while (answer.length < 4) {
let randomNumber = Math.floor(Math.random() * 10);
for (let data of answer) {
if (data == randomNumber) {
check = false;
break;
}
}
if (check) {
answer.push(randomNumber);
}
check = true;
}
return answer;
}
function compare(msg) {
let SB = [0, 0];
for (let i = 0; i < 4; i++) {
for (let j = 0; j < 4; j++) {
if (answer[i] == msg[j]) {
if (i == j) {
SB[0] += 1;
} else {
SB[1] += 1;
}
}
}
}
return SB;
}
선코드공개
업무시간 지난후 회사에 남아 잠깐 시간투자해서 만든 소스입니다
생각없이 막짜서 코드퀄리티가 많이 낮습니다 그야말로 되긴하는 코드 입니다
나중에 적절한 코드로 수정할수도있긴한데 아마 안할거같습니다
하다보니 제 JS 실력의 한계와 알고리즘의 중요성을 느꼈습니다
어쨌든 일단 작동은 하니까 그냥 쓰실분들은 쓰시고
코드수준 도저히 못봐주겠다싶은분들은 고쳐서 쓰시면됩니다

봇은 기존시리즈에서 쓰던앱이 아닌 "메신저봇" 이라는 앱을 사용했습니다 자유도가 훨씬높더라구요
이미 사용하시던분은 야구게임 이라는 봇하나만들고 전체다 지우고 소스코드 복붙하면됩니다

작동은 이런식으로하고

/포기 하면 답알려줍니다
너무 쉬우면 재미없으니까 10번이내로 맞춰야 승리하게 설정했습니다
'개발 > 카카오톡 봇' 카테고리의 다른 글
카카오톡 공식봇(?) 팬다 jr 등장 (13) | 2020.07.22 |
---|---|
카카오톡 봇 만들기 - 8 - 실시간 지하철 도착정보 받아오기 (14) | 2019.10.29 |
카카오톡 봇 만들기 - 7 - 네이버 실검 가져오기 (8) | 2019.10.28 |
지하철 실시간 도착 정보 받아오기 하는중 (0) | 2019.10.20 |
카카오톡 봇 만들기 - 6 - 봇 기능 만들기 2 (0) | 2019.10.09 |