推しアイデア
・Flash世代が懐かしいと思うようなUI/UX ・ストレスのない画面遷移 ・純粋なタイピングの楽しさを押し出す ・徐々に難しくすることでプレイヤーの意欲を刺激する ・阿弥打というタイトルのネーミング
・Flash世代が懐かしいと思うようなUI/UX ・ストレスのない画面遷移 ・純粋なタイピングの楽しさを押し出す ・徐々に難しくすることでプレイヤーの意欲を刺激する ・阿弥打というタイトルのネーミング
・元々タイピングゲームを作ってみたかった ・テーマからの連想で最終的に阿弥陀如来が妖怪を倒すことになった
・HTMLのCanvasを用いたゲーム制作 ・タイピングのアルゴリズムを1から作り、様々な入力方法に対応 ・オンラインのランキングに対応
妖怪が迫ってくるのでタイピングで倒そう!文字を打ち終わると阿弥陀如来が妖怪を攻撃するぞ!
倒した敵の数が増えるごとに難易度が上がるぞ!時間制限がないので自分のタイピング力の限界を試せるぞ! オンラインでのランキングにも対応しています。
HTML CSS JavaScript
Firebase
Figma
色々な入力のパターンに対応しています。 一言で言うなら、ひらがなの塊について独立に打つ文字の候補を考えることができるので、その性質を用いて考えていけば良いです。「っ」や「ん」に関しては独自の処理を施しています。また、計算量やメモリのため、適切に探索範囲を狭めています。以下はアルゴリズムのお気持ちです。
例:「いっしゅん」の場合
イメージ↓
⚪︎ い→っしゅ→ん (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)通りの入力方法に対応しています。
*イメージは有向グラフですが、今回用いたアルゴリズムはグラフ理論のものとは異なります。詳しい実装はこちらをご覧ください。
柔軟に機能を追加できるようにクラスなどを設計しました。