HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2015
0428
mituki2015 (投稿者削除)7未解決


mituki2015

リンク

2015/4/28(Tue) 20:25:58|NO.68848

この記事は投稿者により削除されました。
2015/8/13(Thu) 01:23:15



この記事に返信する


KA

リンク

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

算数をもっと勉強してください。
プログラムを書くには必要ですから。



GENKI

リンク

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タグで囲むの忘れてしまいました。見づらくてすみません。



end

リンク

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



ONION software Copyright 1997-2023(c) All rights reserved.