本文へスキップ

Clamini library

計算1分勝負

 HSPでプログラムを組む練習用に作った、脳トレ計算ゲームです。 答えが1桁になる足し算と引き算を、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