サンプルプログラム
jqueryを使用しています。ヘッダーにjQueryを組み込む宣言をしておきましょう。
jQueryの宣言
<script type="text/javascript" src="../js/jquery-1.4.2.min.js"></script>
問題を作成する処理
$("button.make-mondai").click(function() {
var humax = eval($("select.humax").val()); //符の最高値をリストから取得
var humin = eval($("select.humin").val()); //符の最低値をリストから取得
var huhani = Math.random()*(humax-humin)+humin;//符を算出
var hu = Math.round(huhani/10)*10; ////10未満を丸める
var hanmax = eval($("select.hanmax").val()); //翻数の最高値をリストから取得
var hanmin = eval($("select.hanmin").val()); //翻数の最低値をリストから取得
var hanhani = Math.random()*(hanmax-hanmin)+hanmin;//翻数を算出
var han = Math.round(hanhani); //1未満を丸める
$("input.hu-mondai").val(hu);
$("input.han-mondai").val(han);
//alert(hu); //求めた符をダイアログボックスに表示する
//alert(han); //求めた翻数をダイアログボックスに表示する
/* 通常計算 */
suten = hu * Math.pow(2,han) * 4 * 4;
ten1 = Math.ceil(suten*1.5/100) * 100;
ten2 = Math.ceil(suten/100) * 100;
/* 13翻以上 */
if (han>=13) {
ten1 = 48000;
ten2 = 32000;
}
/* 11翻以上 */
if ( han >= 11 && han <=12) {
ten1 = 36000;
ten2 = 24000;
}
/* 8翻以上 */
if ( han >= 8 && han <=10) {
ten1 = 24000;
ten2 = 16000;
}
/* 6翻以上 */
if ( han >= 6 && han <=7) {
ten1 = 18000;
ten2 = 12000;
}
/* 5翻 */
if ( han == 5 ) {
ten1 = 12000;
ten2 = 8000;
}
/* 130符以上かつ2翻 */
if ( hu >= 130 && han ==2) {
ten1 = 12000;
ten2 = 8000;
}
/* 70符以上かつ3翻 */
if ( hu >= 70 && han ==3) {
ten1 = 12000;
ten2 = 8000;
}
/* 40符以上かつ4翻 */
if ( hu >= 40 && han ==4) {
ten1 = 12000;
ten2 = 8000;
}
//親と子を算出して、条件にあった値を出力する
var oyako = Math.ceil( Math.random()*2 );//親が「1」、子が「2」
if (oyako == "1"){
oyako = "親";
tensu = ten1;
} else if (oyako == "2"){
oyako = "子";
tensu = ten2;
}
$("input.oyako-mondai").val(oyako);
$("input.tensu-kekka").val(tensu);
});
回答をチェックする処理
// 回答チェック
$("button.tensu-kaiou").click(function() {
var a = eval($("input.tensu-kekka").val());
var b = eval($("input.tensu-kaitou").val());
if (a==b){
alert("正解です^^");
}else{
alert("不正解です。正解は " + a + " です^^;");
}
});
例:問題の作成と回答チェック
操作例
符の設定 最低値: 最高値:翻数の設定 最低値: 最高値:
■問題
符 翻 ←答えです。稼動時はhidden属性で隠しましょう。
■答え
点数を入力してください:
