HSPでプログラムを組む練習用に作った、脳トレ計算ゲームです。 答えが1桁になる足し算と引き算を、1分間解いていくゲームです。
タイトル | 計算1分勝負 |
---|---|
ジャンル | 脳トレ計算 |
プレイ人数 | 1人 |
1から9キー | 解答する |
---|
以下のリンクをクリックすると、ファイルをダウンロードすることができます。
ファイルは圧縮されているので、解凍が必要です。
keisan.zip
実行すると、タイトル画面が表示されます。エンターキーを押すと、始まります。
答えが1桁になる足し算か引き算が表示されるので、答えの数字キーを押していきましょう。
テンキーを使用する場合は、NumLockキーをオンにする必要があります。
制限時間の1分以内に、できるだけ多く正解しましょう。時間が無くなると終了し、
タイトル画面に戻ります。
#packopt name "keisan" title "計算1分勝負" randomize ;初期化 *start color 255, 255, 255 boxf font msgothic, 32,1 pos 200, 200 color 255, 0, 0 mes "計算1分勝負" mes " PUSH ENTER" mode = 0 score = 0 number = 0 flag = 0 siki = "" onkey 0 gosub *waitenter onkey 1 t = gettime(6) ;キー割込み *game onkey *typein ;メインルーチン *main if gettime(6) >= t && flag = 0 { time = 60 - gettime(6) + t } else { time = t - gettime(6) flag = 1 } if time < 1 : goto *gameover if mode = 0 : gosub *sikisakusei redraw 0 gosub *tokuten redraw 1 wait 50 goto *main ;得点表示 *tokuten color 255, 255, 255 boxf font msgothic, 50,1 pos 80, 100 color 0, 155, 0 mes "正答:" + score + " 時間:" + time if mode = 1 { font msgothic, 100,1 pos 200, 200 color 0, 155, 0 mes siki pos 198, 198 color 0, 180, 0 mes siki } return ;キー入力判定 *typein if number = 0 : goto *main onkey 0 a = 0 switch iparam case 49 : a = 1 : swbreak case 50 : a = 2 : swbreak case 51 : a = 3 : swbreak case 52 : a = 4 : swbreak case 53 : a = 5 : swbreak case 54 : a = 6 : swbreak case 55 : a = 7 : swbreak case 56 : a = 8 : swbreak case 57 : a = 9 : swbreak swend if a = 0 { onkey 1 goto *main } if a != number { goto *huseikai } else { goto *seikai } stop ;計算式の作成 *sikisakusei number = rnd(9) + 1 x = rnd(9) + 1 y = number - x if y >= 0 { siki = str(x) + "+" + str(y) + "=" } else { siki = str(x) + str(y) + "=" } mode = 1 return ;不正解時 *huseikai mode = 0 pos 400, 200 mes a font msgothic, 200,1 pos 220, 150 color 255, 0, 0 mes "×" wait 100 onkey 1 goto *main stop ;正解時 *seikai mode = 0 score = score + 1 pos 400, 200 mes number font msgothic, 200,1 pos 220, 150 color 255, 0, 0 mes "〇" wait 100 onkey 1 goto *main stop ;エンターが押されるまで待つ *waitenter repeat stick i if i = 32 : break wait 5 loop return ;ゲームオーバー時 *gameover onkey 0 mode = 1 siki = "終了" gosub *tokuten wait 300 onkey 1 goto *start stop