ロボット研究開発、ソフトウェア開発、コンテンツ制作配信

Androidアプリ開発奮闘記 漢字ゲームを作る②

こんにちは、koheiです。
Androidアプリで漢字ゲームを作ろうということで、前回の記事では、文字入力まで作成しました。
Androidアプリ開発奮闘記 漢字ゲームを作る①

前回記事の続きで、今回はゲームの完成形まで作成していきたいと思います。
※前回の記事で作成したソースをベースに処理を追加していきます。

スポンサーリンク

1. 仕様

前回の記事では、文字入力画面まで作成していました。今回の記事では、
・問題表示
・問題スキップボタン
・完了ボタンで文字判定
・正解で報酬機能
などを作っていきたいと思います。

2. レイアウトの対応

まずは、今回追加するボタン等を追加していきます。
activity_draw.xmlに以下のコードを追加します。

activity_draw.xml

3. 問題表示、スキップの対応

次に、問題の表示、スキップ処理の対応を実装していきます。

まずは、問題用のテーブル、スキップボタン用の変数をDrawActivityクラス内に宣言します。

DrawActivity.java

onCreateメソッド内に、問題の設定と表示処理を投入します。

DrawActivity.java

onClickメソッドにスキップボタンの処理を実装します。

DrawActivity.java

4.文字判定処理を組み込む

今回漢字ゲームで手書きで書いた漢字を判定するため、「tess-two」というライブラリを使うことにします。

4-1. ライブラリの設定

まずは、bulid.gradleに以下を追加します。

以下のサイトから文字を判定するための学習データ「jpn.traineddata」をダウンロードします。
tessdata

次に、プロジェクトのassetsフォルダーにtessdataというディレクトリを作り、その中にダウンロードした「jpn.traineddata」を格納します。(以下に手順記載します)

まずは、assetsフォルダーを作ります。appフォルダで右クリック→[New]→[Folder]→[Assets Folder]を選択し、assetsフォルダーを作ります。

assetsフォルダーで右クリック→[New]→[Directory]で、tessdataというディレクトリをつくります。

作成したtessdata内に、ダウンロードした「jpn.traineddata」をドラッグして格納します。以下のような構成にしましょう。

4-2. 文字判定処理実装

まずは、正解判定用のテーブル、完了ボタン、tess-two用の変数などをDrawActivityに追加します。

次に、onCreateメソッド内に、正解判定テーブル、完了ボタンのリスナー登録などを実装します。

DrawActivity.java

文字の判定処理はすごく時間がかかる処理なので、AsyncTaskという仕組みを使ってバックグラウンドで処理させたいと思います。
以下のように、DrawActivityクラス内にAsyncTaskを継承したOCRchecktaskを実装します。

DrawActivity.java

最後に、完了ボタンを実装します。完了ボタンが押されたら、さっき作成した「OCRchecktask」を起動するようにします。

DrawActivity.java

5.報酬機能の追加

子どもたちのテンションを上げるため、正解したら、難易度に応じて報酬がもらえるようにしてみました。

まずは、もらえた報酬額を表示するテキストビューと報酬額用テーブルを宣言します。

DrawActivity.java

獲得した報酬は、ゲームが終わってもAndroid上に保存しておくようにします。
SharedPreferencesという仕組みを使えば、データを保存することができます。
まずは、報酬額を保存する処理と取得する処理を作成します。DrawActivity内に以下の処理を実装しましょう。

DrawActivity.java

onCreate処理に、報酬額のテーブルと、テキスト表示処理を実装します。

DrawActivity.java

正解した時の処理(onPostExecute)に報酬額を取得する処理を実装します。

DrawActivity.java

以上で実装が完了しました。
試しにシミュレータで動かしてみましょう!
ちゃんと動作しました!

最後に

以上、Androidアプリの漢字ゲームを作ってみました。
今回文字判定は、「tess-two」というライブラリを使いました。結構丁寧に文字を書かないとなかなか正解してくれなかったり、文字判定に時間かかったりとイマイチな部分もありますが、とりあえず完成したのでよかったです。
他にもいろんなAndroidアプリ制作に挑戦してみたいと思います!

それでは!!

スポンサーリンク

いいね!を押すと、
最新記事をお届けします。

Twitter で
関連記事(一部広告含む)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


ページトップボタン