Skip to main content

タイピングゲーム用のモジュール

Project description

typehandler

typehandler は、タイピングゲーム用のPythonモジュールです。このモジュールは、ひらがなをローマ字に変換し、タイピングゲームの入力パターンを生成します。また、pygameやtkinterなどでキーイベントを検知し、入力されたキーを渡すことで、正誤判定などができます。これにより、タイピングゲームに必要な処理を行うことができます。

インストール

pip install typehandler

使用方法

基本的な使い方

まず、typehandler モジュールをインポートし、Process クラスを使用します。Processクラスは、お題とそのフリガナの辞書を受け取ります。

import typehandler

# お題とフリガナの辞書
words = {
    "西瓜": "すいか",
    "いちご": "いちご",
    "バナナ": "ばなな"
}

# Processクラスのインスタンスを作成
game_process = typehandler.Process(words)

辞書を設定するためのメソッドもあるので、必ずしもインスタンス作成のタイミングで辞書を渡す必要はありません。

1. 新しい文章の設定

新しい文章を設定するには、set_new_sentence メソッドを使用します。このメソッドが呼び出されると、辞書からランダムに文章を選び、正誤判定に必要な準備まで行います。このメソッドを呼び出す以外に、文章の更新に必要な手順はありません。文章を打ち終わったときや、制限時間を過ぎたときに呼び出すことを想定しています。

game_process.set_new_sentence()

通常は引数を受け取らずに使用することを想定しています。しかし、このメソッドは辞書を受け取ることができ、その場合、一度だけその辞書から文章を選びます。このモジュールでは完全ランダム以外に文章を選ぶ機能は実装していない関係で、一部のプロジェクトには使用できない場合があり、それを解決するための機能です。自分で文章を選んだあと、このメソッドに要素が1つの辞書を渡すことで、疑似的に文章を選ぶ機能を入れ替えることができます。

2. 別の辞書を設定

別の辞書を設定するには、set_new_words メソッドを使用します。このメソッドを呼び出すと、set_new_sentenceが呼び出され、次に表示する文章を選ぶところまで実行します。

new_words = {
    "林檎": "りんご",
    "ぶどう": "ぶどう",
    "レモン": "れもん"
}
game_process.set_new_words(new_words)

3. 入力の判定

入力が正しいかどうかを判定するには、check_correct_input メソッドを使用します。このメソッドは引数にキーの名前を受け取り、TrueFalseを返します。基本的にif文の条件に使うことを想定しています。

key = 'k'
is_correct = game_process.check_correct_input(key)
print(is_correct)  # True または False

4. ひらがなの完了判定

ひらがなが完了したかどうかを判定するにはcheck_chunk_completionメソッドを使用します。check_correct_inputTrueを返した後のif文の条件に使う事を想定しています。

is_completed = game_process.check_chunk_completion()
print(is_completed)  #True または False

5. 文章の完了判定

文章が完了したかどうかを判定するには、check_sentence_completion メソッドを使用します。check_chunk_completionTrueを返した後のif文の条件に使うことを想定しています。

is_completed = game_process.check_sentence_completion()
print(is_completed)  # True または False

6. 画面に表示するローマ字の更新

 このモジュールでは、画面に描画するための、入力パターンの一例としてshow_romanというものを用意しています。直接このインスタンス変数にアクセスしていただくだけで利用できますが、あくまで一例を表示するだけなので、適宜更新しないとずれが生じてきます。  画面に表示するローマ字を更新するには、update_show_roman メソッドを使用します。リアルタイムに反映させるために、ゲームループの中で、適切に更新することが求められます。毎フレーム呼び出すか、入力を検知するたびに呼び出すか、都合の良い方を選んで使ってください。このメソッドは、戻り値に入力パターンの一例を返しますが、必ずしも受け取る必要はありません。

show_roman = game_process.update_show_roman()
print(show_roman)

7. 全てこれで完結

上記の正誤判定から文章の更新までのメソッドを全てまとめたmainというメソッドを用意してあります。これはキーの名前を受け取り、正誤判定から、文章の更新までの全てを行います。音声などの処理をそれぞれ追加する需要に応えるため、上記のメソッドを用意しています。しかし、音声も何もいらないという人は、これだけを呼び出せば、ゲームシステムは完成します。

key = 'k'
game_process.main(key)

8.利用可能なインスタンス変数

画面に描画するための文字列など、自由にご使用いただけます。(描画機能自体はこのモジュールには実装していません。)

self.input              #入力済みのローマ字
self.show_roman         #入力パターンの一例
self.sentence           #現在の文章
self.words              #文章のフリガナの辞書

9.ローマ字の生成だけ使いたい場合

メインの使用方法からは逸れますが、ひらがなからローマ字の生成を行う部分だけを使いたい人もいると思うので、divideというメソッドを用意しておきました。

game_process.divide('あいうえお')

ライセンス

このプロジェクトはMITライセンスの下で公開されています。詳細はLICENSEファイルを参照してください。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

typehandler-0.1.tar.gz (12.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

typehandler-0.1-py3-none-any.whl (10.7 kB view details)

Uploaded Python 3

File details

Details for the file typehandler-0.1.tar.gz.

File metadata

  • Download URL: typehandler-0.1.tar.gz
  • Upload date:
  • Size: 12.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.7

File hashes

Hashes for typehandler-0.1.tar.gz
Algorithm Hash digest
SHA256 b4bc5081c36ebc8de8b585038318a52af21589ab4b6bd0b9069fd4898041fb3a
MD5 c148056d848de3e72d0a7c745222915d
BLAKE2b-256 34b74e3cd90871515c41e8db268f86db063dd24bb48f3ab67dd2086ca86c3f93

See more details on using hashes here.

File details

Details for the file typehandler-0.1-py3-none-any.whl.

File metadata

  • Download URL: typehandler-0.1-py3-none-any.whl
  • Upload date:
  • Size: 10.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.7

File hashes

Hashes for typehandler-0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c9b9aa18b4b7692e46ba1bac0a16a8542752a7c0995a3a1b0555224b0f84d57d
MD5 936956527a3da154f8c79dfffed8f3c4
BLAKE2b-256 aa8ee4c3b0c24bfe7837ca042928f56d5b2a38c41a9638ef3e23b973c871c911

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page