공투 말 RPG 코토하만
소개
여러분은 코토다만이라는 게임을 아십니까?
코토다만이란 iOS/Android용으로 전달되고 있는 공투 말 RPG 게임입니다
규칙으로서는 빈 테두리에 문자를 메워 가서 콤보를 짜서 적을 쓰러뜨린다는 느낌의 것이 되어 있습니다
공투 말 RPG 코토다만 호평 전달중! !
iOS
htps: //언제나 s. 아 ぇ. 이 m/jp/아니 p/아니 d1298368256
안드로이드
htps : // p ぁ y. 오, ぇ. 이 m / s 취해 / 아 ps /에서 원하는 ls? 이 d = 코 m. 세가. 코다만
무엇을 하는가?
그런데, 최음을 매진 한 곳에서 본제에 들어가려고 생각합니다.
이번에 해 나가는 것은 COTOHA API를 사용해 코토다만과 같은 것을 만들어 보자는 것입니다
(코토다만 같은 것이라고 해도 단어마다 나누어 콤보수를 세는 것만입니다만)
프로그램 본체
코토하만.py
cotohaman.py# -*- coding: utf-8 -*-
import os
import urllib.request
import json
class CotohaApi:
def __init__(self,client_id, client_secret, developer_api_base_url, access_token_publish_url):
self.client_id = client_id
self.client_secret = client_secret
self.developer_api_base_url = developer_api_base_url
self.access_token_publish_url = access_token_publish_url
self.getAccessToken()
def getAccessToken(self):
url = self.access_token_publish_url
headers={
"Content-Type": "application/json;charset=UTF-8"
}
data = {
"grantType": "client_credentials",
"clientId": self.client_id,
"clientSecret": self.client_secret
}
data = json.dumps(data).encode()
req = urllib.request.Request(url, data, headers)
res = urllib.request.urlopen(req)
res_body = res.read()
res_body = json.loads(res_body)
self.access_token = res_body["access_token"]
def callCotohaApiCommon(self, url, data):
headers= {
"Authorization": "Bearer " + self.access_token,
"Content-type":"application/json;charset=UTF-8",
}
data = json.dumps(data).encode()
req = urllib.request.Request(url, data, headers)
CONNECTION_RETRY_COUNT = 2
for counter in range(1, CONNECTION_RETRY_COUNT + 1):
try:
res = urllib.request.urlopen(req)
break
except urllib.request.HTTPError as e:
if e.code == 401:
print("Please retry.")
self.access_token = self.getAccessToken()
headers["Authorization"] = "Bearer " + self.access_token
req = urllib.request.Request(url, data, headers)
else:
print ("<Error> " + e.reason)
return ""
except Exception as e:
print(e)
return ""
res_body = res.read()
res_body = json.loads(res_body)
return res_body["result"][0]["tokens"]
def cotodama(self,coto):
url = self.developer_api_base_url + "nlp/v1/parse"
data = {
"sentence": coto
}
coto = self.callCotohaApiCommon(url, data)
if len(coto) == 1 and coto[0]["pos"] == "名詞":
return coto
return ""
def cut(self):
word_lis = []
result_lis = []
coto = input("文字を入力してください(7文字)")
for i in range(0,6,1):
for j in range(7,0,-1):
if i+1 == j: break
word_lis.append(coto[i:j])
for tex in word_lis:
if tex[0] == "ん":
continue
result_lis.append(self.cotodama(tex))
result_lis = list(filter(lambda a: a!="",result_lis))
return result_lis
if __name__ == "__main__":
f = open('token.txt')
lines = f.readlines()
for i in range(len(lines)):
lines[i] = lines[i].replace("\n",'')
inst = CotohaApi(lines[0], lines[1], lines[2], lines[3])
result = inst.cut()
for res in result:
print(res[0]["lemma"])
print("{}COMBO!".format(len(result)))
조금 해설
초반의 API 설정 and 호출 부분은
↓이 기사인가 공식 참조를 읽어주세요
「멘토스와 바둑의 추억」을 COTOHA씨에게 요약해 준 결과. COTOHA 가장 빠른 자습서 포함
이 템플릿에 주는 데이터를 가공하는 부분의 해설을 합니다
일곱 글자의 히라가나를 입력으로 받고 왼쪽에서 긴 순서로 입력을 분할하여 목록에 저장합니다.
그 후 분할한 단어마다 API에 던져 갑니다만, "응"이 단어의 처음에 있다고 왠지 명사 판정되어 버리므로 제거하고 있습니다
그리고 돌아온 결과가 나뉘지 않고, 단어만이면서 명사였을 경우에 결과의 리스트에 저장하고 있습니다
마지막으로 순서대로 출력하고 종료
결과
入力>>さいかくあいま
才覚
さいか
際
いかくあ
威嚇
いか
くあいま
くあい
くあ
合間
あい
今
12COMBO!
적당히 이미지 검색에서 찾아 온 단어를 넣었습니다만, 인간에게는 이해할 수 없는 단어도 나오고 있어요
요약
이번에 만든 것의 문제점으로는
· 여러 번 API 호출해야합니다.
· 조금 인간에게는 이해할 수없는 단어가 나옵니다.
수정안이 있으면 댓글을 달면 도움이됩니다.
사이고에게
이 문서는 【Qiita x COTOHA API 선물 기획】에 참여했습니다.
좋아요
참고 페이지
・ COTOHA API
・ 공식 참조
・ 「멘토스와 바둑의 추억」을 COTOHA씨에게 요약해 준 결과. COTOHA 가장 빠른 자습서 포함
・ 자연 언어 처리를 쉽게 다룰 수 있다면 소문의 COTOHA API를 Python에서 사용해 보았습니다.
Reference
이 문제에 관하여(공투 말 RPG 코토하만), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/surai_uni/items/ed4b4c143bee4b5c4d21
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
그런데, 최음을 매진 한 곳에서 본제에 들어가려고 생각합니다.
이번에 해 나가는 것은 COTOHA API를 사용해 코토다만과 같은 것을 만들어 보자는 것입니다
(코토다만 같은 것이라고 해도 단어마다 나누어 콤보수를 세는 것만입니다만)
프로그램 본체
코토하만.py
cotohaman.py# -*- coding: utf-8 -*-
import os
import urllib.request
import json
class CotohaApi:
def __init__(self,client_id, client_secret, developer_api_base_url, access_token_publish_url):
self.client_id = client_id
self.client_secret = client_secret
self.developer_api_base_url = developer_api_base_url
self.access_token_publish_url = access_token_publish_url
self.getAccessToken()
def getAccessToken(self):
url = self.access_token_publish_url
headers={
"Content-Type": "application/json;charset=UTF-8"
}
data = {
"grantType": "client_credentials",
"clientId": self.client_id,
"clientSecret": self.client_secret
}
data = json.dumps(data).encode()
req = urllib.request.Request(url, data, headers)
res = urllib.request.urlopen(req)
res_body = res.read()
res_body = json.loads(res_body)
self.access_token = res_body["access_token"]
def callCotohaApiCommon(self, url, data):
headers= {
"Authorization": "Bearer " + self.access_token,
"Content-type":"application/json;charset=UTF-8",
}
data = json.dumps(data).encode()
req = urllib.request.Request(url, data, headers)
CONNECTION_RETRY_COUNT = 2
for counter in range(1, CONNECTION_RETRY_COUNT + 1):
try:
res = urllib.request.urlopen(req)
break
except urllib.request.HTTPError as e:
if e.code == 401:
print("Please retry.")
self.access_token = self.getAccessToken()
headers["Authorization"] = "Bearer " + self.access_token
req = urllib.request.Request(url, data, headers)
else:
print ("<Error> " + e.reason)
return ""
except Exception as e:
print(e)
return ""
res_body = res.read()
res_body = json.loads(res_body)
return res_body["result"][0]["tokens"]
def cotodama(self,coto):
url = self.developer_api_base_url + "nlp/v1/parse"
data = {
"sentence": coto
}
coto = self.callCotohaApiCommon(url, data)
if len(coto) == 1 and coto[0]["pos"] == "名詞":
return coto
return ""
def cut(self):
word_lis = []
result_lis = []
coto = input("文字を入力してください(7文字)")
for i in range(0,6,1):
for j in range(7,0,-1):
if i+1 == j: break
word_lis.append(coto[i:j])
for tex in word_lis:
if tex[0] == "ん":
continue
result_lis.append(self.cotodama(tex))
result_lis = list(filter(lambda a: a!="",result_lis))
return result_lis
if __name__ == "__main__":
f = open('token.txt')
lines = f.readlines()
for i in range(len(lines)):
lines[i] = lines[i].replace("\n",'')
inst = CotohaApi(lines[0], lines[1], lines[2], lines[3])
result = inst.cut()
for res in result:
print(res[0]["lemma"])
print("{}COMBO!".format(len(result)))
조금 해설
초반의 API 설정 and 호출 부분은
↓이 기사인가 공식 참조를 읽어주세요
「멘토스와 바둑의 추억」을 COTOHA씨에게 요약해 준 결과. COTOHA 가장 빠른 자습서 포함
이 템플릿에 주는 데이터를 가공하는 부분의 해설을 합니다
일곱 글자의 히라가나를 입력으로 받고 왼쪽에서 긴 순서로 입력을 분할하여 목록에 저장합니다.
그 후 분할한 단어마다 API에 던져 갑니다만, "응"이 단어의 처음에 있다고 왠지 명사 판정되어 버리므로 제거하고 있습니다
그리고 돌아온 결과가 나뉘지 않고, 단어만이면서 명사였을 경우에 결과의 리스트에 저장하고 있습니다
마지막으로 순서대로 출력하고 종료
결과
入力>>さいかくあいま
才覚
さいか
際
いかくあ
威嚇
いか
くあいま
くあい
くあ
合間
あい
今
12COMBO!
적당히 이미지 검색에서 찾아 온 단어를 넣었습니다만, 인간에게는 이해할 수 없는 단어도 나오고 있어요
요약
이번에 만든 것의 문제점으로는
· 여러 번 API 호출해야합니다.
· 조금 인간에게는 이해할 수없는 단어가 나옵니다.
수정안이 있으면 댓글을 달면 도움이됩니다.
사이고에게
이 문서는 【Qiita x COTOHA API 선물 기획】에 참여했습니다.
좋아요
참고 페이지
・ COTOHA API
・ 공식 참조
・ 「멘토스와 바둑의 추억」을 COTOHA씨에게 요약해 준 결과. COTOHA 가장 빠른 자습서 포함
・ 자연 언어 처리를 쉽게 다룰 수 있다면 소문의 COTOHA API를 Python에서 사용해 보았습니다.
Reference
이 문제에 관하여(공투 말 RPG 코토하만), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/surai_uni/items/ed4b4c143bee4b5c4d21
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
# -*- coding: utf-8 -*-
import os
import urllib.request
import json
class CotohaApi:
def __init__(self,client_id, client_secret, developer_api_base_url, access_token_publish_url):
self.client_id = client_id
self.client_secret = client_secret
self.developer_api_base_url = developer_api_base_url
self.access_token_publish_url = access_token_publish_url
self.getAccessToken()
def getAccessToken(self):
url = self.access_token_publish_url
headers={
"Content-Type": "application/json;charset=UTF-8"
}
data = {
"grantType": "client_credentials",
"clientId": self.client_id,
"clientSecret": self.client_secret
}
data = json.dumps(data).encode()
req = urllib.request.Request(url, data, headers)
res = urllib.request.urlopen(req)
res_body = res.read()
res_body = json.loads(res_body)
self.access_token = res_body["access_token"]
def callCotohaApiCommon(self, url, data):
headers= {
"Authorization": "Bearer " + self.access_token,
"Content-type":"application/json;charset=UTF-8",
}
data = json.dumps(data).encode()
req = urllib.request.Request(url, data, headers)
CONNECTION_RETRY_COUNT = 2
for counter in range(1, CONNECTION_RETRY_COUNT + 1):
try:
res = urllib.request.urlopen(req)
break
except urllib.request.HTTPError as e:
if e.code == 401:
print("Please retry.")
self.access_token = self.getAccessToken()
headers["Authorization"] = "Bearer " + self.access_token
req = urllib.request.Request(url, data, headers)
else:
print ("<Error> " + e.reason)
return ""
except Exception as e:
print(e)
return ""
res_body = res.read()
res_body = json.loads(res_body)
return res_body["result"][0]["tokens"]
def cotodama(self,coto):
url = self.developer_api_base_url + "nlp/v1/parse"
data = {
"sentence": coto
}
coto = self.callCotohaApiCommon(url, data)
if len(coto) == 1 and coto[0]["pos"] == "名詞":
return coto
return ""
def cut(self):
word_lis = []
result_lis = []
coto = input("文字を入力してください(7文字)")
for i in range(0,6,1):
for j in range(7,0,-1):
if i+1 == j: break
word_lis.append(coto[i:j])
for tex in word_lis:
if tex[0] == "ん":
continue
result_lis.append(self.cotodama(tex))
result_lis = list(filter(lambda a: a!="",result_lis))
return result_lis
if __name__ == "__main__":
f = open('token.txt')
lines = f.readlines()
for i in range(len(lines)):
lines[i] = lines[i].replace("\n",'')
inst = CotohaApi(lines[0], lines[1], lines[2], lines[3])
result = inst.cut()
for res in result:
print(res[0]["lemma"])
print("{}COMBO!".format(len(result)))
초반의 API 설정 and 호출 부분은
↓이 기사인가 공식 참조를 읽어주세요
「멘토스와 바둑의 추억」을 COTOHA씨에게 요약해 준 결과. COTOHA 가장 빠른 자습서 포함
이 템플릿에 주는 데이터를 가공하는 부분의 해설을 합니다
일곱 글자의 히라가나를 입력으로 받고 왼쪽에서 긴 순서로 입력을 분할하여 목록에 저장합니다.
그 후 분할한 단어마다 API에 던져 갑니다만, "응"이 단어의 처음에 있다고 왠지 명사 판정되어 버리므로 제거하고 있습니다
그리고 돌아온 결과가 나뉘지 않고, 단어만이면서 명사였을 경우에 결과의 리스트에 저장하고 있습니다
마지막으로 순서대로 출력하고 종료
결과
入力>>さいかくあいま
才覚
さいか
際
いかくあ
威嚇
いか
くあいま
くあい
くあ
合間
あい
今
12COMBO!
적당히 이미지 검색에서 찾아 온 단어를 넣었습니다만, 인간에게는 이해할 수 없는 단어도 나오고 있어요
요약
이번에 만든 것의 문제점으로는
· 여러 번 API 호출해야합니다.
· 조금 인간에게는 이해할 수없는 단어가 나옵니다.
수정안이 있으면 댓글을 달면 도움이됩니다.
사이고에게
이 문서는 【Qiita x COTOHA API 선물 기획】에 참여했습니다.
좋아요
참고 페이지
・ COTOHA API
・ 공식 참조
・ 「멘토스와 바둑의 추억」을 COTOHA씨에게 요약해 준 결과. COTOHA 가장 빠른 자습서 포함
・ 자연 언어 처리를 쉽게 다룰 수 있다면 소문의 COTOHA API를 Python에서 사용해 보았습니다.
Reference
이 문제에 관하여(공투 말 RPG 코토하만), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/surai_uni/items/ed4b4c143bee4b5c4d21
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
入力>>さいかくあいま
才覚
さいか
際
いかくあ
威嚇
いか
くあいま
くあい
くあ
合間
あい
今
12COMBO!
이번에 만든 것의 문제점으로는
· 여러 번 API 호출해야합니다.
· 조금 인간에게는 이해할 수없는 단어가 나옵니다.
수정안이 있으면 댓글을 달면 도움이됩니다.
사이고에게
이 문서는 【Qiita x COTOHA API 선물 기획】에 참여했습니다.
좋아요
참고 페이지
・ COTOHA API
・ 공식 참조
・ 「멘토스와 바둑의 추억」을 COTOHA씨에게 요약해 준 결과. COTOHA 가장 빠른 자습서 포함
・ 자연 언어 처리를 쉽게 다룰 수 있다면 소문의 COTOHA API를 Python에서 사용해 보았습니다.
Reference
이 문제에 관하여(공투 말 RPG 코토하만), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/surai_uni/items/ed4b4c143bee4b5c4d21
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
・ COTOHA API
・ 공식 참조
・ 「멘토스와 바둑의 추억」을 COTOHA씨에게 요약해 준 결과. COTOHA 가장 빠른 자습서 포함
・ 자연 언어 처리를 쉽게 다룰 수 있다면 소문의 COTOHA API를 Python에서 사용해 보았습니다.
Reference
이 문제에 관하여(공투 말 RPG 코토하만), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/surai_uni/items/ed4b4c143bee4b5c4d21텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)