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.2.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.2-py3-none-any.whl (10.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: typehandler-0.2.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.2.tar.gz
Algorithm Hash digest
SHA256 19db1473800d5e67dc70e83dfdeeb2096acb81587640a7e6e9904f5d7b40e736
MD5 4e057af062651d3eb69ced60441c0bee
BLAKE2b-256 7d7ff54ae3b74513b8baffd053045ab5512d2b9acb6487f81a2199ed3adefdc5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: typehandler-0.2-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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 04a93de62415004fa6b016f2cf717c1e05650b8f88701a27f67cf63e0cdb272d
MD5 2656900ed7081d579d9f1e640677ef7d
BLAKE2b-256 b833d5deb72cac0ea6fd5bb5ac748e78492919ed6e498651511f5bca723fb821

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