0.6.0 • Published 8 months ago

@shsk002/nano-type-jp v0.6.0

Weekly downloads
-
License
MIT
Repository
github
Last release
8 months ago

NanoType-Jp - 日本語タイピングライブラリ

概要

NanoType-Jp は、日本語タイピングゲーム作成のための JavaScript ライブラリです。ひらがなをローマ字入力に変換し、タイピングの正誤判定を行うことができます。

特徴

  • ひらがなの文章をローマ字入力パターンに変換
  • 複数の入力パターンに対応(例:「し」→ "si"/"shi"/"ci")
  • 記号入力に対応
  • タイピング成功・失敗のカウント機能
  • ノーミスで文章を入力完了した場合のカウント機能

インストール方法

npm に公開しているため、npm install でインストールできます。

npm i @shsk002/nano-type-jp

umd 形式でも公開しているため、HTML から直接ライブラリを読み込むことも可能です。

https://www.jsdelivr.com/package/npm/@shsk002/nano-type-jp

<script
  type="text/javascript"
  src="https://cdn.jsdelivr.net/npm/@shsk002/nano-type-jp/dist/nano-type-jp.umd.js"
></script>

基本的な使い方

import NanoTypeJp from "nano-type-jp";
// インスタンスの作成
// メモ:umd形式のscriptを読み込んだ場合はwindowにNanoTypeJpクラスが挿入されています
const game = new NanoTypeJp();
// ひらがなの登録
const result = game.registerNewHiragana("こんにちは");
// タイピング判定
const answer = game.answerAlphabet("k");
if (answer.result === "correct") {
  console.log("正解!");
} else if (answer.result === "fail") {
  console.log("不正解...");
} else if (answer.result === "complete") {
  console.log("入力完了!");
}

入力結果の型定義

answerAlphabet メソッドを実行した際、下記データが返却されます。 データに合わせてゲーム画面を更新してください。

type AnswerResult = {
  result: "correct" | "fail" | "complete";
  failCount: number; // 失敗回数
  correctCount: number; // 成功回数
  completedCount: number; // 完了した回数
  perfectStreakCount: number; // ノーミスで文章を入力完了した回数
  inputAlphabet: {
    completedInputAlphabet: string; // 入力済みアルファベット
    remainedAlphabet: string; // 残りの入力アルファベット
  };
};

対応している入力パターン

基本的なひらがな

  • 清音(あ、い、う、え、お...)
  • 濁音(が、ぎ、ぐ、げ、ご...)
  • 半濁音(ぱ、ぴ、ぷ、ぺ、ぽ)
  • 促音(っ)

拗音

  • きゃ、しゅ、ちょ など
  • ゔぁ、ゔぃ、ゔぇ、ゔぉ

記号

  • 句読点
  • かっこ
  • スペース
  • その他の一般的な記号

開発者向け情報

プロジェクト構造

  • /src/typing/ - メインのタイピング機能
  • /src/japaneseSounds/ - 日本語音声クラス(Other、Youon、Sokuon)
  • /src/romaji/ - ローマ字変換関連
  • /src/parseHiragana/ - ひらがな解析

class diagram

ライセンス

MIT

バグ報告・機能要望

GitHub の Issue にて受け付けています。

0.6.0

8 months ago

0.5.0

8 months ago

0.4.0

8 months ago

0.3.2

8 months ago

0.3.1

8 months ago

0.3.0

8 months ago

0.2.5

8 months ago

0.2.3

8 months ago

0.2.2

8 months ago

0.2.1

8 months ago

0.2.0

8 months ago

0.1.7

8 months ago

0.1.6

8 months ago