0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

「し」を shi でも si でも受け付ける日本語タイピングゲームを作った

0
Last updated at Posted at 2026-04-29

なぜ作ったか

日本語タイピング練習で「し」を "shi" と入力したら正解だが "si" だと不正解、というアプリがある。でも si は有効なローマ字入力で、IME でも受け付ける。どちらも正解にしたい

し/si/shi、ち/ti/chi、つ/tu/tsu、ふ/hu/fu ... 全部のバリエーションを網羅するローマ字マッピングを作り、タイピングゲームに仕上げました。

作ったもの

Typing JPhttps://sen.ltd/portfolio/typing-jp/

スクリーンショット

  • 全有効ローマ字バリエーション受付
  • 3 モード: 練習 / タイムアタック(60秒) / 耐久(ミス3回)
  • 3 ワードセット: 基本ひらがな / 単語(30) / 文章(10)
  • っ の子音重複、ん の曖昧性解消
  • リアルタイム文字ハイライト
  • WPM / 正確性表示

vanilla JS、ゼロ依存、ビルド不要node --test で 39 ケース。

ローマ字マップ

'': ['si', 'shi'],
'ちゃ': ['tya', 'cha'],
'じゃ': ['zya', 'ja', 'jya'],

80+ エントリ。基本ひらがな(46) + 濁音/半濁音(25) + 拗音(33)。

トークナイズ: 拗音は 2 文字先読み

きゃ は 1 トークン(kya)であって き+や(ki+ya) ではない。2 文字の組み合わせを先にチェック:

const pair = str[i] + str[i + 1];
if (ROMAJI_MAP[pair]) { tokens.push(...); i += 2; continue; }

っ の子音重複

っか = "kka"、っし = "sshi" or "ssi"。次のトークンのローマ字から先頭子音を取って重複。

ん の曖昧性

母音(あいうえお)や や/ゆ/よ の前では "nn" 必須。かんい = ka + nn + i。"n" だけだと かに と区別できない。

テスト

39 ケース: マップの網羅性、トークナイズ、っ、ん、入力バリデーション、WPM/正確性計算。

シリーズ

100+ 公開ポートフォリオ シリーズの #38 です。

0
0
2

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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?