LoginSignup
2
3

More than 5 years have passed since last update.

「主にひらがなで答えるネット対戦ゲーム」の辞書形式

Last updated at Posted at 2015-11-06

仕様書を作成しました【2015-12-02】

主に単語で答えるゲームにおける汎用的な辞書形式
https://github.com/esperecyan/dictionary/blob/master/dictionary.md

今後の議論は、同リポジトリへのPull RequestやIssueの投稿などでお願いいたします。


概要

次のセクションにリストアップしているゲームは、いずれも独自の辞書形式を用いており互換性がありません。汎用的 (標準的) な辞書形式の仕様を作る場合、適切な形式がどういうものかを考えます。コメントや編集リクエストで意見をいただけるとありがたいです。

当記事の初版は、私が一例として個人的にざっくりと書いたものです。これを叩き台としてある程度かたちになったら、仕様書としての原案を作成したいと考えています。

既存の辞書形式

お題に設定できるもの 複数の回答 1 本来の表記 2 解説 その他の制限
キャッチフィーリング (*.cfq) 文字 ひらがな・カタカナを同一視
Drawing Catch (*.cfq) 文字
きゃっちま (*.dat) 文字 辞書全体の文字数が多すぎるものは不可
ピクトセンス 文字 (ひらがな 3) お題の数は5〜500
1つのお題は32文字以下
辞書全体の文字数は5〜5000文字
Inteligenceω (*.txt) 文字 (ひらがな 4)
画像
音声
(おえかきの森) 文字 (ひらがな)

汎用的な辞書形式の要件

  • 日本語以外を主体とした辞書を作成できるように、お題をひらがなに制限しない
  • 複数の回答、本来の表記、解説を設定できる
  • お題や解説で利用できるようにするため、画像、音声を含むことができる形式
    • 動画も扱うか否か【2015-11-10】
    • トリミング位置や表示位置などの細かな属性を指定しやすい形式【2015-11-10】
  • ひらがな・カタカナ、大文字・小文字、半角・全角【2015-11-10】の同一視
  • 人が読み書きしやすいように、text/* なMIMEタイプをもつ形式
  • 既存のサービスで管理しやすいように、標準で 表計算ソフト が付属する Google ドライブ などの オンラインストレージ で扱える形式【2015-11-09】
  • コンピューターが読み書きしやすいように、標準化されている、または広く使われている形式
  • お題の出題頻度の設定【2015-11-07】
  • 文字数制限をどうするか【2015-11-08】
  • 選択問題や並べ替え問題用の辞書を区別するための、辞書自体の種類の指定【2015-11-10】
    • 辞書単位ではなく問題単位で指定するか【2015-11-12】
  • 回答が複数ある場合の一括指定 (正規表現やワイルドカード)【2015-11-10】
    • その際のエスケープシーケンス

汎用的な辞書形式の提案



テキストファイルの形式
(案A) YAML
(案B) CSV
書き方を覚えなくても辞書の作成・編集ができるように、オンラインエディタを用意する

画像、音声を含む場合の形式
ZIP
テキストファイルを1つと、1つ以上の画像・音声ファイルを含む

解説の形式
CommonMark 5

画像ファイルの形式
PNGJPEGGIFSVG

音声ファイルの形式
MP4 (AAC)、MP3
上記は <audio> で広くサポートされている形式 6 【2015-11-08】

動画ファイルの形式【2015-11-14】
MP4 (H.264+AAC)
上記は <video> で広くサポートされている形式 6

仕様の公開場所
GitHub
リポジトリ名: dictionary 【2015-11-14】
仕様の名前: 主に単語で答えるゲームにおける汎用的な辞書形式 【2015-11-14】

仕様書のライセンス
CC BY 4.0

YAML採用の例【2015-11-07】

簡単な形

案A

title: 天体
words:
- たいよう
- ちきゅう
- カロン

案B

$title: 天体
たいよう:
ちきゅう:
カロン:

「ルートオブジェクトのキー」をこのように「本来の表記」とする場合、「$ + アルファベット」を前方互換性のために予約語のような扱いにしなければならないかもしれません。

画像や解説などを含む形

$title: 天体
$description: 恒星、惑星、衛星などのリスト。
太陽:
  image: sun.png
  answer: [たいよう, おひさま]
  description: 恒星。
地球:
  image: earth.png
  answer: ちきゅう
  description: 惑星。
カロン:
  image: charon.png
  description: |
    冥王星の衛星。

    > カロンは1978年6月22日にアメリカの天文学者ジェームズ・クリスティーによって発見された。
    > その後、冥王星が冥府の王プルートーの名に因むことから、
    > この衛星はギリシア神話の冥府の川・アケローンの渡し守カローンにちなんで「カロン」と命名された。
    > なおクリスティーは当初から一貫してCharonの「char」を
    > 妻シャーリーン(Charlene) のニックネーム「シャー(Char)」と同じように発音していたため、
    > これが英語圏で定着して「シャーロン」と呼ばれるようになった。
    引用元: [カロン (衛星) - Wikipedia](https://ja.wikipedia.org/wiki/%E3%82%AB%E3%83%AD%E3%83%B3_(%E8%A1%9B%E6%98%9F))

image で指定された画像ファイルを使って、キャラ当てクイズをしたり、お絵描きクイズの解説の一部としたりすることができるでしょう。

answer を含むお題の場合、ルートオブジェクトのキー (上の例では 太陽 地球) を答えるときに使えるか否か、またどれをヒントとして扱うかがわかりません。場合によっては冗長になりますが、answer を含むお題の場合、ルートオブジェクトのキーを答えとして使えないように取り決める必要があるかと思います。【2015-11-08】

音声ファイルを含む形

$title: クラシック音楽
四季:
  audio: four-seasons.mp4
  answer: [しき, はる]
魔王:
  audio: erlking.mp4
  answer: まおう
ラデツキー行進曲:
  audio: radetzky-march.mp4
  answer: らでつきーこうしんきょく

audio はイントロ当てクイズに使ったり、もしくはお絵描きクイズの解説の一部として用いることもできるかもしれません。

オプションの指定案A【2015-11-12】

$title: クラシック音楽
四季:
  audio: four-seasons.mp4
  start: 50
  length: 3
  answer: [しき, はる]

オプションの指定案B【2015-11-12】

$title: クラシック音楽
四季:
  audio: four-seasons.mp4
  specifics:
    start: 50
    length: 3
  answer: [しき, はる]

オプションの指定案C【2015-11-12】

$title: クラシック音楽
四季:
  audio:
    file: four-seasons.mp4
    start: 50
    length: 3
  answer: [しき, はる]

start に再生開始位置の秒数、length に再生秒数を指定する例。

お題の出題頻度 (重み付け)

$title: ポケモン
よめ:
  weight: 3
  description: このお題は他のお題の3倍出題されやすい。
ピカチュウ:
カイリュー:
ヤドラン:
ミュウ:
  weight: 0.5
  description: このお題は他のお題より出題されにくい。

キャッチフィーリング等の辞書で、出題頻度を上げるために同じお題を繰り返す場合がありましたが、その代替として。

選択・並べ替え問題【2015-11-12】

案A

$title: 選択・並べ替え問題
林檎:
  question: 仲間外れはどれでしょう
  option: [リンゴ, ゴリラ, ラクダ, ダチョウ]
  answer: 1
林檎かパン:
  question: 食べ物はどれでしょう (答えが複数ある場合はどれが1つだけ選択)
  option: [リンゴ, ゴリラ, ラッパ, パン]
  answer: [1, 4]
食べ物:
  question: 同じ種類のものを選びましょう
  option: [リンゴ, ゴリラ, ラッパ, パン]
  answer: "14"
リンゴ→ゴリラ→ラクダ→ダチョウ:
  question: しりとりが成立するように並べ替えてください
  option: [リンゴ, ゴリラ, ラクダ, ダチョウ]
  answer: "1234"

案B

$title: 選択・並べ替え問題
太陽:
  image: sun.png
  option: [太陽, 地球, カロン]
  answer: たいよう
  description: 最初の選択肢 (ここでは「太陽」) を答えとして扱う。
林檎:
  question: 仲間外れはどれでしょう
  option: [リンゴ, ゴリラ, ラクダ, ダチョウ]
  answer: リンゴ
  type: selection
  description: 選択肢を表示しなければ問題が成立しない場合。
林檎かパン:
  question: 食べ物はどれでしょう (答えが複数ある場合はどれが1つだけ選択)
  option: [リンゴ, ゴリラ, ラッパ, パン]
  answer: [リンゴ, パン]
  type: selection
食べ物:
  question: 同じ種類のものを選びましょう
  option: [リンゴ, ゴリラ, ラッパ, パン]
  answer: [リンゴ, パン]
  specifics:
    require-all-right: true
  type: selection
リンゴ→ゴリラ→ラクダ→ダチョウ:
  question: しりとりが成立するように並べ替えてください
  option: [リンゴ, ゴリラ, ラクダ, ダチョウ]
  type: selection
  description: answerが存在しなければ並べ替え問題として扱う。

こちらの案では、ゲームの種類や難易度設定などに応じて、選択肢を表示したりしなかったりする問題 (上の「太陽」の例) が作成できます。

ひらがな以外で答える辞書・正規表現を含む辞書【2015-11-12】

$title: 英単語
$regard: !regexp /[a-z]+/
title:
  answer: [たいとる]
description:
text:
  answer: [text, !regexp /て[くき]すと/]

正規表現は HTMLのpattern属性 のように、全体に一致するものとして扱うのが良いと思います。answer に正規表現を指定する場合、ヒント生成・お手付き判定のため、必ず文字列も指定しておかなければなりません。また、プログラミング言語間の互換性のため、構文を制限する必要があるでしょう。

ひらがな以外で答える辞書の場合、お手付き判定のため、以上の例の $regard のように、追加の文字の指定が必要になってくるかと思います。

CSV採用の例【2015-11-09】

簡単な形

たいよう
ちきゅう
カロン

画像や解説などを含む形

text,image,answer,answer,description,title,summary
太陽,sun.png,たいよう,おひさま,恒星。,天体,恒星、惑星、衛星などのリスト。
地球,earth.png,ちきゅう,,惑星。,,
カロン,charon.png,,,"冥王星の衛星。

> カロンは1978年6月22日にアメリカの天文学者ジェームズ・クリスティーによって発見された。
> その後、冥王星が冥府の王プルートーの名に因むことから、
> この衛星はギリシア神話の冥府の川・アケローンの渡し守カローンにちなんで「カロン」と命名された。
> なおクリスティーは当初から一貫してCharonの「char」を
> 妻シャーリーン(Charlene) のニックネーム「シャー(Char)」と同じように発音していたため、
> これが英語圏で定着して「シャーロン」と呼ばれるようになった。
引用元: [カロン (衛星) - Wikipedia](https://ja.wikipedia.org/wiki/%E3%82%AB%E3%83%AD%E3%83%B3_(%E8%A1%9B%E6%98%9F))",,
text image answer answer description title summary
太陽 sun.png たいよう おひさま 恒星。 天体 恒星、惑星、衛星などのリスト。
地球 earth.png ちきゅう 惑星。
カロン charon.png "冥王星の衛星。

> カロンは1978年6月22日にアメリカの天文学者ジェームズ・クリスティーによって発見された。
> その後、冥王星が冥府の王プルートーの名に因むことから、
> この衛星はギリシア神話の冥府の川・アケローンの渡し守カローンにちなんで「カロン」と命名された。
> なおクリスティーは当初から一貫してCharonの「char」を
> 妻シャーリーン(Charlene) のニックネーム「シャー(Char)」と同じように発音していたため、
> これが英語圏で定着して「シャーロン」と呼ばれるようになった。
引用元: [カロン (衛星) - Wikipedia](https://ja.wikipedia.org/wiki/%E3%82%AB%E3%83%AD%E3%83%B3_(%E8%A1%9B%E6%98%9F))"

音声ファイルを含む形

text,audio,answer,answer,title
四季,four-seasons.mp4,しき,はる,クラシック音楽
魔王,erlking.mp4,まおう,,,
ラデツキー行進曲,radetzky-march.mp4,らでつきーこうしんきょく,,,
text audio answer answer title
四季 four-seasons.mp4 しき はる クラシック音楽
魔王 erlking.mp4 まおう
ラデツキー行進曲 radetzky-march.mp4 らでつきーこうしんきょく

オプションの指定案A【2015-11-12】

text audio start length answer answer title
四季 four-seasons.mp4 50 3 しき はる クラシック音楽

オプションの指定案B【2015-11-12】

text audio specifics answer answer title
四季 four-seasons.mp4 start=50&length=3 しき はる クラシック音楽

specificsapplication/x-www-form-urlencoded 形式で埋め込む例。

お題の出題頻度 (重み付け)

text,weight,description,title
よめ,3,このお題は他のお題の3倍出題されやすい。,ポケモン
ピカチュウ,,,
カイリュー,,,
ヤドラン,,,
ミュウ,0.5,このお題は他のお題より出題されにくい。,
text weight description title
よめ 3 このお題は他のお題の3倍出題されやすい。 ポケモン
ピカチュウ
カイリュー
ヤドラン
ミュウ 0.5 このお題は他のお題より出題されにくい。

選択・並べ替え問題【2015-11-12】

案A

text question option option option option answer answer title
林檎 仲間外れはどれでしょう リンゴ ゴリラ ラクダ ダチョウ 1 選択・並べ替え問題
林檎かパン 食べ物はどれでしょう (答えが複数ある場合はどれが1つだけ選択) リンゴ ゴリラ ラッパ パン 1 4
食べ物 同じ種類のものを選びましょう リンゴ ゴリラ ラッパ パン 14
リンゴ→ゴリラ→ラクダ→ダチョウ しりとりが成立するように並べ替えてください リンゴ ゴリラ ラクダ ダチョウ 1234

案B

text image question option option option option answer answer specifics type description title
太陽 sun.png 太陽 地球 カロン たいよう 最初の選択肢 (ここでは「太陽」) を答えとして扱う。 選択・並べ替え問題
林檎 仲間外れはどれでしょう リンゴ ゴリラ ラクダ ダチョウ リンゴ selection 選択肢を表示しなければ問題が成立しない場合。
林檎かパン 食べ物はどれでしょう (答えが複数ある場合はどれが1つだけ選択) リンゴ ゴリラ ラッパ パン リンゴ パン selection
食べ物 同じ種類のものを選びましょう リンゴ ゴリラ ラッパ パン リンゴ パン require-all-right=on selection
リンゴ→ゴリラ→ラクダ→ダチョウ しりとりが成立するように並べ替えてください リンゴ ゴリラ ラクダ ダチョウ selection answerが存在しなければ並べ替え問題として扱う。

ひらがな以外で答える辞書・正規表現を含む辞書【2015-11-12】

text answer answer title regard
title たいとる 英単語 /[a-z]+/
description
text text /て[くき]すと/

脚注


  1. 1つのお題に対し、複数の回答を設定できること。たとえば、「玉子焼き」に対して「たまごやき」、「だしまきたまご」、「あつやきたまご」など 

  2. ひらがなではない漢字やカタカナの表記を設定できること。たとえば、「たいよう」に対して「太陽」など 

  3. は不可 

  4. は不可 

  5. Markdown の方言の一つ。 

  6. HTML5 の audio 要素と video 要素でサポートされているメディアフォーマット - HTML | MDN 

2
3
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3