ブラキオカップ

タイピングゲーム: 阿弥打 (下書き段階)

https://github.com/ri136/salmon-team

GitHub

Figma

JavaScript

Firebase

HTML

自分のタイピング力の限界を超えろ!

himarupi

福島宰

推しアイデア

・Flash世代が懐かしいと思うようなUI/UX ・ストレスのない画面遷移 ・純粋なタイピングの楽しさを押し出す ・徐々に難しくすることでプレイヤーの意欲を刺激する ・阿弥打というタイトルのネーミング

作った背景

・元々タイピングゲームを作ってみたかった ・テーマからの連想で最終的に阿弥陀如来が妖怪を倒すことになった

推し技術

・HTMLのCanvasを用いたゲーム制作 ・タイピングのアルゴリズムを1から作り、様々な入力方法に対応 ・オンラインのランキングに対応

プロジェクト詳細

ゲームの概要

ゲーム設定

妖怪が迫ってくるのでタイピングで倒そう!文字を打ち終わると阿弥陀如来が妖怪を攻撃するぞ!

ゲームシステム

倒した敵の数が増えるごとに難易度が上がるぞ!時間制限がないので自分のタイピング力の限界を試せるぞ! オンラインでのランキングにも対応しています。

使用した技術・ソフト

フロントエンド

HTML CSS JavaScript

バックエンド

Firebase

デザイン

Figma

こだわりポイント

タイピングのアルゴリズム

色々な入力のパターンに対応しています。 一言で言うなら、ひらがなの塊について独立に打つ文字の候補を考えることができるので、その性質を用いて考えていけば良いです。「っ」や「ん」に関しては独自の処理を施しています。また、計算量やメモリのため、適切に探索範囲を狭めています。以下はアルゴリズムのお気持ちです。

例:「いっしゅん」の場合

イメージ↓ image

⚪︎ い→っしゅ→ん (4通り) い: i <1> っしゅ: ssyu, sshu <2> ん: nn, xn <2> 例: issyunn, isshunn, issyuxn, isshuxn <4> 1×2×2 = 4通り

⚪︎ い→っし→ゅ→ん (12通り) い: i <1> っし: ssi, sshi, cci <3> ゅ: lyu, xyu <2> ん: nn, xn <2> 1×3×2×2 = 12通り

⚪︎ い→っ→しゅ→ん (16通り) い: i <1> っ: ltu, ltsu, xtu, xtsu <4> しゅ: syu, shu <2> ん: nn, xn <2> 1×4×2×2 = 16通り

⚪︎ い→っ→し→ゅ→ん (48通り) い: i <1> っ: ltu, ltsu, xtu, xtsu <4> し: si, shi, ci <3> ゅ: lyu, xyu <2> ん: nn, xn <2> 1×4×3×2×2 = 48通り

この文章の場合、合計で80(4+12+16+48)通りの入力方法に対応しています。

*イメージは有向グラフですが、今回用いたアルゴリズムはグラフ理論のものとは異なります。詳しい実装はこちらをご覧ください。

機能拡張性

柔軟に機能を追加できるようにクラスなどを設計しました。

himarupi

@himarupi