プログラミングで飯を食え。腕をあげたきゃ備忘録!

PHP、JavaScript、HTML5、CSS3などWEB系言語を中心に基本テク、備忘録をまとめます。Android、Iphoneアプリ開発についても!

jsWaffleでAndroidアプリを作ろう!クイズアプリ編⑨

サクウェブTVはコチラ↓↓↓
サクウェブTV

では実行してみます。Youtube動画を貼り付けますのでご覧ください。

これで、回答のキャンセルが何度でもできるようになりました。

少しずつクイズアプリらしくなってきましたでしょうか?

でも、クイズアプリなら自動採点機能も必要でしょう。

次は採点機能を入れてみましょう。

採点機能の実装は非常に簡単です。

まず、正解数をカウントする変数を用意し、正解の場合のみ1ずつプラスします。

そして、その変数を必要に応じて表示すればいいだけです。

では、正解数をカウントする変数を用意しましょう。

for文の前に以下を記述して下さい。

var score = 0;

初めは正解数は0ですから、初期値として0を代入しておきます。

そして以下のソースの赤い部分を書きかえていきます。

for(var i=0;i<list.length;i++){
	var quiz = list[i];
	var title = "第" + (i+1) + "問:" + quiz["question"];
	var ok = false;
	while(ok==false){
		var a = droid.dialogList(title,quiz["selection"]);
		ok = droid.dialogYesNo("回答の確認","回答は「" + a + "」でよろしいですか?");
		if(ok){
			if(a == quiz["answer"]){
				alert("正解です!");
			}else{
				alert("残念!不正解です。正解は「" + quiz["answer"] + "」でした。");
			}
		}
	}
}

上記赤い部分は正解だった時に実行される処理です。

ですので、そこに

score++;

と書き込み、正解だった時のみscoreは1プラスされるようにします。

更に、せっかくなので問題で正解するたびに、現在の正解数がわかるようにしましょう。

score++;のあとに以下を記述して下さい。

alert("正解です!現在のスコア:" + score + "点!");

これで正解するたびに、現在の正解数がわかります。

ここまでの全文を表示しておきます。

$(function(){
	var list = [
	            {
	            	"question":"日本一高い山は?",
	            	"selection":["父山","富士山","高山","下山"],
	            	"answer":"富士山"
	            },
	            {
	            	"question":"世界一小さい国は?",
	            	"selection":["日本","アメリカ","ロシア","バチカン市国"],
	            	"answer":"バチカン市国"
	            },
	            {
	            	"question":"日本の初代総理大臣は?",
	            	"selection":["森鴎外","伊藤博文","日下部陽一","坂本竜馬","斉藤一"],
	            	"answer":"伊藤博文"
	            },
	           ];
	list = shaffle(list);
	var score = 0;
	for(var i=0;i<list.length;i++){
		var quiz = list[i];
		var title = "第" + (i+1) + "問:" + quiz["question"];
		var ok = false;
		while(ok==false){
			var a = droid.dialogList(title,quiz["selection"]);
			ok = droid.dialogYesNo("回答の確認","回答は「" + a + "」でよろしいですか?");
			if(ok){
				if(a == quiz["answer"]){
					score++;
					alert("正解です!現在のスコア:" + score + "点!");
				}else{
					alert("残念!不正解です。正解は「" + quiz["answer"] + "」でした。");
				}
			}
		}
	}
function shaffle(arr){ for(var i=0;i<arr.length;i++){ /* * 配列の全要素から2つを取り出し、 * その二つを入れ替える処理を配列の要素の個数回 * 繰り返すことでシャッフルする。 */ var num = Math.floor(Math.random()*arr.length); var temp = arr[num]; arr[num] = arr[i]; arr[i] = temp; } return arr; } });

はい。これで採点機能を追加できました。

次の記事で実行結果を確認し、またさらに拡張を模索します。

>>jsWaffleでAndroidアプリを作ろう!クイズアプリ編⑩<<