無限計算トレーニング(無料アプリ)

  • このエントリーをはてなブックマークに追加

スポンサーリンク

※サイト運営にサーバーは必須です※
~このサイトもエックスサーバーを使用しています~

目次

はじめに

「無限計算トレーニング」というAndroidアプリをリリースした。

Google Playのダウンロードページ:https://play.google.com/store/apps/details?id=com.kaen.calculation_app

アプリ概要

足し算、引き算、掛け算、割り算の問題を出してくれる。いわゆる、四則算の問題がでる。

選択肢は2つだけ。

子供の教育用の計算アプリや脳トレアプリとして使用できる。

時間制限が存在しており、正解数(スコア)が増えるにつれて、制限時間が短くなっていく。また、問題の難易度もあがる。

(アプリの画面は以下のような感じ)

1問でも間違えると、そこでGameOver。

GameOverした際、正しい答えに対応するボタンは青色に、間違った答えに対応するボタンは赤色になって表示される。

Resetボタンを押すと、スコアが0になり、ゲームが再開される。

 

もしも、ベストスコアが出た場合は、「High Score!!」と表示される。

ちなみに、このアプリを作った中の人のベストスコアは56

……56……なんだか微妙……

作った当初は、100ぐらい頑張ればいけるだろうと思ってはいたのだが……

計算力に自信のある人はぜひ挑戦してみてください

※ちなみに、このアプリは英語版の説明もある。Google翻訳を駆使して作成した説明文なので、文法的に間違っている可能性は否定できない。アプリの中身は、日本語版と英語版で差はない。

計算のアルゴリズム

誤答作成の手順

このアプリを作る当初は、選択肢を4択にしたいなー、とか思っていた。

でも、いざ作ると、4択って2択と比べると、少し手間がかかることに気づいた。

例えば「4+3=□」みたいな問題を生成した時

x=4
y=3
z=x+y

という感じで、答え(z=7)を用意する。

ネックになるのが、誤答の作り方だ。

このアプリでは、1~(正解の数-1)を正解の数(ここでは7)に足し算(あるいは、引き算)して誤答を生成している。

※誤答の数を負の数にしたくなかったので

3択以上のものを作りたい場合は、正解の数に加える乱数が重複しているとマズいので、重複しない乱数を生成する必要がある。

あと、この誤答の作り方だと、小さな数だと4択作れず、破綻する。

例えば、1×1=□の場合。

上のやり方だと、誤答は1に1足した「2」または1から1引いた「0」しか作れない。4択目を作成できない。

以上のように、4択にする場合は、誤答を作るアルゴリズムを少し考え直す必要があったため、結局2択にした。

余りのでない割り算の問題の作成

これは簡単。あらかじめ掛け算を作った後、割り算を作り直せばよい。

例えば、xとyに適当な乱数をふる。

x×y=z

このときのzの値を覚えておく。

z÷x=y

x、y、zのどれかを空欄にすれば、余りの出ない割り算の問題は生成できる。

この考え方は、引き算の問題を作るときにも、使用していている。引き算の最終的な答えが負にならないようにしたい場合は、足し算を作ってから、上と似た要領で引き算をつくればよい。

スコアに応じた難易度変更

正解の数(score)が増えるにしたがって扱う数字を大きくすることで、難易度を上げている。
※もしかしたら、あとで難易度を調整するかも?

以下はリリース当初の難易度

<足し算、引き算の場合>

生成する乱数は1~(10 * score)

scoreが10を超えると3桁の足し算引き算が現れてくる可能性がある

<掛け算、割り算の場合>

生成する乱数は1~ [7+ (int)(score / 5)]

scoreが15を超えると2桁の掛け算、割り算が現れてくる可能性がある。

<制限時間>

1 + (100 / score)秒

最低で1秒は確保されている。
scoreが0の時は、例外処理で、制限時間は120(秒)
scoreが10の時の制限時間は、11(秒)
scoreが50の時の制限時間は、3(秒)

個人的な体感では、scoreが30~40ぐらいから、まじめに計算する余裕がなくなってくる。

クレジットのような何か

フォントは、Droid Serifを使用した。

アイコンは、icooon-monoからダウンロードしたものを加工した。

あとがき的な何か

今年の抱負の一つとして、そこそこやりがいのあるRPGのゲームを作りたいなと思っている。

このアプリは、RPGに必要なセーブ機能の実装(このアプリの場合はHigh Score)や時間ゲージの作成の練習的な側面もあった。

※時間ゲージはHPゲージなどに応用が可能

このアプリを通して、二つの機能のコードの書き方がある程度わかった。

とはいえ、まだ、RPGを作るために必要なパーツをきちんと実装できるか自信がない。

もう少し、手ごろなアプリを作成して、経験を積みたい。

関連記事

アプリのダウンロード(Google Play):https://play.google.com/store/apps/details?id=com.kaen.calculation_app

~プログラミングを勉強してみませんか?~

TechAcademy [テックアカデミー] 無料の体験講座が用意されているので、気軽に体験できます。

※私(サイト主)も無料体験講座を実際に受けてみました(→感想)

     

コメントを残す

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)