鉄道オープンデータ使ってクイズゲーム作りました

鉄道に関するさまざまなデータを集めて、Linked Data という形でオープンデータを提供するサイト「鉄道駅LOD」を作りました。

鉄道駅LOD
https://uedayou.net/jrslod/

「鉄道駅LOD」については、別のQiitaの記事を書きましたので、見てもらいえると嬉しいです。

緯度経度付き鉄道オープンデータ提供サイト公開しました
https://qiita.com/uedayou/items/b5131b5ca930fe0bef69


さて、鉄道駅LODのデータを使えば普通に駅の位置を地図上に表示したりできるわけですが、たとえば

鉄道駅LOD GeoJSON ダウンローダー
https://github.com/uedayou/jrslod-geojson-downloader

のような事例はあるのですが少しありきたりなので、何か変わった活用法ないかなと思っていました。

そこで、以下のようなクイズゲームを作ってみました。

路線王 ～駅名だけで鉄道路線を当てるクイズゲーム～
https://rosenoh.uedayou.net/

## 路線王

[路線王](https://rosenoh.uedayou.net/)は、鉄道駅LODのデータのみを使った路線当てゲームです。
日本全国の鉄道路線の多くが出題候補(400近く)で、各路線自体をあらかじめ知っておく必要があるので、結構むずかしいです。

![トップページ](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62575/cf177fdf-99b7-92c5-f20d-dd674b22b5c3.jpeg)


### ルール

ルールは簡単です。
問題ページに表示される駅名から、鉄道路線を推測して解答します。
各問題には制限時間があります。解答にかかった時間は解答結果をまとめたページで確認できます。

表示される駅数と制限時間は、難易度により異なります。

| 難易度 | 駅数 | 制限時間 |
| ---- | ---- | ---- |
| かんたん | 8 | 60秒 |
| ふつう | 6 | 45秒 |
| むずかしい | 4 | 30秒 |

問題数は 3、5、10から選択できます。

### 問題ページ

![問題ページ](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62575/e375f988-ff62-bd64-b15a-68e40d5d3601.jpeg)

問題ページでは、ある鉄道路線に含まれる駅名が表示されます。
最初は1つだけで、5秒ごとに新たな駅名が表示されます。

駅名の下のカウンターが 0 になるまでに解答してください。
0 になったら強制的に正解ページへ遷移させるモーダルが表示されます。

8つの路線名から一つクリックして、「解答する」ボタンを押して解答してください。

![クイズに解答](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62575/fe6400b5-6306-35f5-2c7c-b095939daecf.jpeg)


### 正解ページ

![正解ページ](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62575/725ba537-d415-853c-46de-71374178fd6c.jpeg)


正解ページでは、問題に対する正解が表示されます。
実際に候補に表示された駅が含まれるかを確認することもできます。

![路線確認](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62575/fb89b0de-8682-4308-a7f7-74d25413e00e.jpeg)


### 結果ページ

![結果ページ](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62575/02959511-eaee-f107-e7b9-362646e1a5db.jpeg)


全ての問題に解答し終えると、上記のようなこれまでの解答結果をまとめたページが表示されます。
解答数や解答時間を是非競ってみてください。


### 鉄道駅LODの利用データ

[路線王](http://rosenoh.uedayou.net/)は[鉄道駅LOD](https://uedayou.net/jrslod/)のデータを使用しています。鉄道駅LODは、駅以外に鉄道路線、鉄道会社のデータもあります。路線王は、鉄道路線を当てるゲームなので、鉄道路線のデータを利用しています。

<https://uedayou.net/jrslod/東海旅客鉄道/東海道新幹線>
<https://uedayou.net/jrslod/阪急電鉄/阪急京都本線>
<https://uedayou.net/jrslod/西日本旅客鉄道/大阪環状線>
<https://uedayou.net/jrslod/東京地下鉄/丸ノ内線>
<https://uedayou.net/jrslod/名古屋市交通局/東山線>

上記をブラウザで開くとWebページが表示されますが、拡張子`.json`をつけて開くとJSONファイルがダウンロードできます。路線王でも jsonファイルをダウンロードして使用しています。

### 路線王の可能性

路線王を作り始めたときは鉄道路線以外への活用は考えていなかったのですが、路線以外でもいろんなデータで利用できる可能性がありそうに思いました。

例えば、

- 出演者の候補で映画、テレビ番組当てクイズ(逆に、出演作品から出演者当てクイズ)
- 曲名からアーティストやアルバム当てクイズ
- 特産物の候補で国や都道府県当てクイズ
- 食材から料理当てクイズ

テレビ番組や映画の出演者であれば、Wikipedia や Wikidata 等のデータが使えるかもしれません

<https://ja.wikipedia.org/>

<https://www.wikidata.org/>

音楽データであれば、MusicBrainz があります。

<https://musicbrainz.org/>

たぶん特産物は国から公表されているはずです。

<https://www.data.go.jp/>

例の一つとして、小倉百人一首にデータでクイズゲームを作りました。

**小倉百人一首クイズ**
<https://hyakunin-isshu.uedayou.net/>

使用したデータは以下になります。

**小倉百人一首LOD**
<http://karutalod.web.fc2.com/ogura.html>

[路線王](https://rosenoh.uedayou.net/)は「駅名」を元にしたクイズゲームでしたが、[小倉百人一首クイズ](https://hyakunin-isshu.uedayou.net/)は、読み札のテキストを元に該当する画像を当てるゲームになっています。

![小倉百人一首クイズ](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62575/f55603d5-01ff-3d9b-2471-dda6abf1a261.jpeg)

![小倉百人一首クイズ](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62575/e8946bff-008f-44f6-8c44-b36435e4cbd7.jpeg)


### ソースコード

上記のようにいろいろ活用できそうに思ったので、ソースコードを公開しました。
路線王は Vue.js で作っているので改変はしやすいと思います。

https://github.com/uedayou/rosenoh

やってることは単純ですし、データの取得部分を書き換えれば一部を除き路線以外でもそのまま使えると思いますので、興味のある人はあなたの考える「〇〇王」を作ってみてください。

小倉百人一首クイズも GitHub でコード公開しています。

https://github.com/uedayou/quiz-hyakunin-isshu