|
|
2015/4/28(Tue) 20:25:58|NO.68848
この記事は投稿者により削除されました。
2015/8/13(Thu) 01:23:15
|
|
2015/4/28(Tue) 20:34:16|NO.68852
秒数を60で割った整数部分が「分」で、余りが「秒」です。
|
|
2015/4/28(Tue) 21:25:54|NO.68858
*got
#define zlkan int(zikan/(double(60*2)/4.0))
#include "kernel32.as"
#define byoo zikan\32
title "タイマー 現在入力中"
font "",40
pos 10,10
mes "タイマー"
color 158,123,68
pos 11,11
mes "タイマー"
pos 50,50
input zikan,80,20,4
pos 130,48
button goto "スタート" , *kakunin
stop
*kakunin
zikan+
repeat zikan
cls
fun = zlkan
byou = byoo
title "タイマー 現在動作中 残り "+fun+"分"+byou+"秒"
zikan-
mes "残り時間= "+zikan
wait 100
loop
dialog "Time up"
repeat 4
beep 900,80
beep 900,80
beep 900,80
beep 900,80
wait 75
loop
cls ;次のための準備
goto *got
|
|
2015/4/28(Tue) 21:34:56|NO.68859
算数をもっと勉強してください。
プログラムを書くには必要ですから。
|
|
2015/4/29(Wed) 21:49:21|NO.68892
答えそのものよりもまずは算数とそれをスクリプト上に表現する方法が必要なようなのでサンプルぺたり。
#include "d3m.hsp"
timeStart = d3timer()
*main
redraw 1 : await 16 : redraw 0 : color 255, 255, 255 : boxf : color : pos 0,0
;経過時間抽出
timeKeika = d3timer() - timeStart
mes "経過時間:" + timeKeika + " [msec]"
;ミリ秒
timeMsec = timeKeika \ 1000
;秒から時分秒へ
time = timeKeika / 1000
timeHour = time / 3600 ;時
time = time - timeHour * 3600
timeMinute = time / 60 ;分
timeSecond = time - timeMinute * 60 ;秒
mes "" + timeHour + ":" + timeMinute + ":" + timeSecond + "." + strf("%03d", timeMsec)
goto *main
プログラミング上の注意点としては…
・HSPの場合、整数を/で割ると小数点以下切り捨てになります。
・d3timer使うとウィンドウを移動したりしててもタイマーが停止しません。あとはマニュアル記載。
理解できれば実装は簡単です。
あ、それと、repeat〜loopの間とかインデントを入れるとソースが見やすくなりますよ。
|
|
2015/4/30(Thu) 12:21:41|NO.68902
objsize 60,30
objmode 2
font msgothic,20
randomize
h=rnd(4)+1
m=rnd(59)+1
s=rnd(59)+1
q1=h*3600+m*60+s
q2=h*60+m
*ques1
pos 0,0
mes "問題1:\n"+str(q1)+"秒は何分何秒ですか?\n下の式に数字を入れて求めなさい。"
a1=0 : a2=0 : a3=0 : a4=0
pos 0,70 : input a1
pos 60,75 : mes "÷"
pos 80,70 : input a2
pos 140,75 : mes "="
pos 160,70 : input a3
pos 220,75 : mes "あまり"
pos 280,70 : input a4
flag=0
pos 400,70 : button gosub "答える",*ans1
repeat
if flag=1 : break
await 1
loop
goto *ques2
*ans1
if (a1=q1)&(a2=60)&(a3=q2)&(a4=s) {
flag=1
} else {
dialog "違います"
}
return
*ques2
cls
font msgothic,20
pos 0,0
mes "正解です。"+str(q1)+"秒は"+str(q2)+"分"+str(s)+"秒であることがわかりました。"
mes "問題2:\n"+str(q2)+"分は何時間何分ですか?\n下の式に数字を入れて求めなさい。"
a1=0 : a2=0 : a3=0 : a4=0
pos 0,90 : input a1
pos 60,95 : mes "÷"
pos 80,90 : input a2
pos 140,95 : mes "="
pos 160,90 : input a3
pos 220,95 : mes "あまり"
pos 280,90 : input a4
flag=0
pos 400,90 : button gosub "答える",*ans2
repeat
if flag=1 : break
await 1
loop
goto *finish
*ans2
if (a1=q2)&(a2=60)&(a3=h)&(a4=m) {
flag=1
} else {
dialog "違います"
}
return
*finish
cls
font msgothic,20
mes "よくできました。\n"
mes "これで"+str(q1)+"秒は"+str(h)+"時間"+str(m)+"分"+str(s)+"秒であることがわかりました。"
stop

| |
|
2015/4/30(Thu) 12:29:20|NO.68903
preタグで囲むの忘れてしまいました。見づらくてすみません。
|
|
2015/4/30(Thu) 16:59:03|NO.68905
GENKIさんのサンプルと同じようになってしまいましたが、作ったサンプル置いておきます。
time=12345678 ;時間(秒)
s=time\60 ;秒
n=time/60\60 ;分
h=time/(60*60)\24 ;時間
d=time/(60*60*24) ;日
mes ""+d+"日 "+strf("%02d",h)+":"+strf("%02d",n)+":"+strf("%02d",s)
ちなみに、タイマー機能をつけた場合、以下のようになります。
//----初期化
#include "d3m.hsp" ;タイマー用
#include "kernel32.as" ;ビープ音用
#const endot 900 ;音
//----変数初期化
time_s=d3timer() ;初期タイム
time_e=180 ;時間
//----ループ開始
repeat
time=time_e-(d3timer()-time_s)/1000 ;時間の取得
//----時間計測
s=time\60 ;秒
s=time\60 ;秒
n=time/60\60 ;分
h=time/(60*60)\24 ;時間
d=time/(60*60*24) ;日
//----画面表示
redraw 0
color 255,255,255 :boxf
pos 0,0 :color :mes ""+d+"日 "+strf("%02d",h)+":"+strf("%02d",n)+":"+strf("%02d",s)
redraw 1
await 10 ;(必要に応じて変更)
//----時間が0になったらループを抜ける
if time<=0 :break
loop
//----時間がたったら音を鳴らす
mes "Time up!!"
repeat 4
repeat 4
beep endot,80
loop
wait 75
loop
|
|