// 足し算か引き算をひとつ生成
// 引数  -- kotaeNoSaidaiChi 答えの最大値（正数）
// 戻り値　-- 生成した問題。例 "1+1"
function mondaiSeisei(kotaeNoSaidaiChi) {
    var no1;
    var no2;
    var mondai;
    var seikai; 
    var kotae;
    var enzan;  // "+" か "-" 

    do {
        no1 = randomInt(kotaeNoSaidaiChi-1);
        if (randomInt(2) == 1) { //足し算の場合
            enzan = " + ";
            no2 = randomInt(kotaeNoSaidaiChi-no1);
            seikai = no1 + no2;
        }
        else {  // 引き算の場合
            enzan = " - ";
            if (no1 > 10) {
                no2 = randomInt(no1-10);
            }
            else {
                no2 = randomInt(no1);
            }
            seikai = no1 - no2;
        }
        mondai = no1 + enzan + no2;
    }
    while (mondaiChofuku(mondai));
    return(mondai);
}

var KeisanSubMondaiKioku = new Array(); //これまでに出した問題を記憶
var KeisanSubMondaiBangou = 0; //これまでに出した問題の数を記憶

//これまでに生成した問題と重複があるかをチェックする
//引数   mondai -- チェック対象の問題。たとえば"1+1="
//戻り値 true  -- すでに生成した問題と重複していた
//       false -- 重複はなかった
function mondaiChofuku(mondai) {
    for (var i=0; i<KeisanSubMondaiBangou; i++) {
        if (KeisanSubMondaiKioku[i] == mondai) {
            return(true);
        }
    }
    KeisanSubMondaiKioku[KeisanSubMondaiBangou] = mondai;
    KeisanSubMondaiBangou++;
    return(false);
}

// 1以上i以下の整数を返す
function randomInt(i) {
    return( Math.floor(Math.random()*i) + 1 );
 }
