ランダムで選ばれた2つの整数a,b、この2つを足した数goukei。
SpeedButtonクリックでeditに答えを入れ、goukeiとイコールかどうかを判断しようとしてます。
goukei<10のときは、
if goukei<10 then begin
if Inttostr(goukei)=tenkeynumber then {tenkeynumber・・・Speedbuttonでクリックした値}
seikai:=seikai+1 //正解数+1
else
Fuseikai:=Fuseikai+1; //不正解数+1
としたのですが、10を超えた場合はどう判断したらよいのか困惑しています。どなたかお教え願いないでしょうか。
>if goukei<10 then begin
> if Inttostr(goukei)=tenkeynumber then {tenkeynumber・・・Speedbuttonでクリックした値}
> seikai:=seikai+1 //正解数+1
> else
> Fuseikai:=Fuseikai+1; //不正解数+1
end else
if goukei>10 then begin //10を超える
そうなんです。そうなんですけど、(すいません。私の説明が足りなさ過ぎました。)
Speedbuttonは0..9で、goukeiが9以下であれば、Speedbuttonをどれか1回押したらイコールかどうか判断しますよね。
goukeiが10以上であれば、Speedbuttonを最低でも2回押しますよね。そのときに、1回目を押したら
end
else if goukei>10 then begin
if Inttostr(goukei)=tenkeynumber then {tenkeynumber・・・Speedbuttonでクリックした値}
seikai:=seikai+1 //正解数+1
else
Fuseikai:=Fuseikai+1; //不正解数+1
ここを通って、2回目を押す前に不正解として判断されてしまうわけです。
(例えばgoukei=50のとき、1回目に”5”と押したらそのまま判断されてしまって不正解となる)ので、どういう方法をとれば2桁入力したあとに判断してもらえるのかということをお教え願いたかったのです。
Hotaさんせっかく答えてもらったのにすいません。
そのままですね。
答えが1桁の場合は、一回目で判断して、2桁目の場合は、2回目で判断するしかないでしょう。
電卓プログラムなどのサンプルが、よくありますよ。
・「正解かどうか判定する」ボタンを作って、それを押したら判定する
・goukeiを0〜9の整数に制限する
・goukeiの桁数に合わせてSpeedbuttonの入力回数を変える(例えばgoukei=50のときはSpeedbuttonを2回押すまで判定しない)
電卓みたいにスピードボタンが配列されていて、ランダムな数を何の情報も与えられない情況で当てるわけですよね?
ものすごい鬼仕様なゲームですな。
1.判断を実行するボタンを作る。
(これはいわんでもわかるね?)
2.タイマを使う。
(タイマのインターバルは適当に設定する。1秒すると、最後にボタンが押されてから1秒後に判断処理に行くので、一秒以内に押せば連続入力が可能)
ボタンのクリックイベントにて
Timer1.Enabled := False;
Edit1.Text := ランダムで選ばれた数値;
Timer1.Enabled := True;
タイマのタイマイベントにて
Timer1.Enabled := False;
判断処理;
ツイート | ![]() |