2011年05月03日投稿 / 投稿者 : 名無しさん / タグ : 投稿プログラム 実用ツール 初代対応 QRコード
これは99分59秒まで測れるキッチンタイマーです。
表示が大きいので、制限時間を設けて(アナログな)ゲームをする時などに、全員が見えるタイマーとして使うこともできます。
というか、そういう目的で作りました。
実行すると時間設定状態になります。カーソルは1分の位に合っています。
十字キーの左右でカーソル移動、上下でタイマー設定の変更が可能です。
Aボタンを押すとカウントダウンを開始します。
Bボタンを押すとリセット(カーソル位置と時間のリセット)が行われます。
STARTボタンで終了です。
時間設定中の操作 | |
---|---|
↑↓ | 時間の変更 |
←→ | カーソルの移動 |
А | カウントダウン開始 |
Б | 時間・カーソル位置のリセット |
START | プログラムの終了 |
カウントダウン中は、Bボタンを0.5秒程度押しているとカウントダウンを停止できます。
カウントダウン中の操作 | |
---|---|
Б | カウントダウンの停止 |
カウントダウン中は以下の時にBEEP音がします。
残り時間が0になるとBGMが流れます。
BGMの再生が終わるか、BGMが流れている間にAボタンを押すと、時間設定状態になります。
プチコンでTRPG便利ツールを作ってみた ‐ ニコニコ動画(原宿)
上記リンク先で紹介されているタイマーツールと似たものを作りました。
プログラムリスト部分は潰れてて読めなかったため、自分で組みました。
プチコンmkII 向けの QR コードです。
PRG:KTIMER |
---|
- CLEAR:CLS
- DIM NUM$(10,8)
- RESTORE @C0
- FOR I=0 TO 9
- FOR J=0 TO 7
- READ NUM$(I,J)
- NEXT
- NEXT
- TIM=0
- @SETTING
- CUR=1
- COLOR 0
- COLON=1
- @SETLP
- GOSUB @DTIMER
- GOSUB @DCUR
- NOK=NOT K:K=BUTTON():NOK=NOK AND K
- IF(NOK AND 4)THEN BEEP 2:CUR=(CUR+3)AND 3
- IF(NOK AND 8)THEN BEEP 2:CUR=(CUR+1)AND 3
- IF(NOK AND 1)THEN BEEP 9:GOSUB @UP
- IF(NOK AND 2)THEN BEEP 9:GOSUB @DOWN
- IF(NOK AND 16)THEN CLS:GOTO @CD
- IF(NOK AND 32)THEN CUR=1:TIM=0
- IF(NOK AND 1024)THEN LOCATE 0,20:GOTO @LAST
- GOTO @SETLP
- @UP
- GOSUB @TIM2C
- C(CUR)=(C(CUR)+1)%(6+(CUR!=2)*4)
- GOSUB @C2TIM
- RETURN
- @DOWN
- GOSUB @TIM2C
- TMP=(6+(CUR!=2)*4)
- C(CUR)=(C(CUR)+TMP−1)%TMP
- GOSUB @C2TIM
- RETURN
- @CD
- OTIM=TIM
- COLOR 0
- IF TIM<=10 THEN COLOR 13:BEEP 3:GOTO @CEIF
- IF TIM<=30 THEN COLOR 7:BEEP 2:GOTO @CEIF
- IF TIM<60 THEN BEEP 9:GOTO @CEIF
- IF (TIM%60)==0 THEN BEEP 38:GOTO @CEIF
- GOSUB @DTIMER
- @CLP
- VSYNC 35
- NOK=NOT K:K=BUTTON():NOK=NOK AND K
- IF(NOK AND 32)GOTO @SETTING
- COLON=1−COLON
- GOSUB @DTIMER
- VSYNC 25
- NOK=NOT K:K=BUTTON():NOK=NOK AND K
- IF(NOK AND 32)GOTO @SETTING
- COLON=1−COLON
- TIM=TIM−1
- IF TIM==0 THEN BGMPLAY 4:GOSUB @DTIMER:GOTO @CDEND
- IF TIM<=10 THEN COLOR 13:BEEP 3:GOTO @CEIF
- IF TIM<=30 THEN COLOR 7:BEEP 2:GOTO @CEIF
- IF TIM<60 THEN BEEP 9:GOTO @CEIF
- IF (TIM%60)==0 THEN BEEP 38:GOTO @CEIF
- @CEIF
- GOSUB @DTIMER
- IF TIM>0 GOTO @CLP
- @CDEND
- NOK=NOT K:K=BUTTON():NOK=NOK AND K
- IF(NOK AND 16)THEN BGMSTOP
- IF BGMCHK() GOTO @CDEND
- TIM=OTIM
- GOTO @SETTING
- @LAST
- END
- @TIM2C
- C(3)=TIM%10
- C(2)=FLOOR((TIM%60)/10)
- C(1)=FLOOR(TIM/60)%10
- C(0)=FLOOR(TIM/600)
- RETURN
- @C2TIM
- TIM=C(3)+C(2)*10+C(1)*60+C(0)*600
- RETURN
- @DTIMER
- GOSUB @TIM2C
- IF COLON GOTO @DCOLON
- LOCATE 15,6:?” ”
- LOCATE 15,9:?” ”
- GOTO @DCEND
- @DCOLON
- LOCATE 15,6:?”*”
- LOCATE 15,9:?”*”
- @DCEND
- FOR I=0 TO 3
- TX=1+I*7+(I AND 2)
- FOR J=0 TO 7
- LOCATE TX,4+J
- ?NUM$(C(I),J)
- NEXT
- NEXT
- RETURN
- @DCUR
- FOR I=0 TO 3
- LOCATE 1+I*7+(I AND 2),13
- IF I==CUR GOTO @CURB
- ?” ”
- GOTO @CURN
- @CURB
- ?”−−−−−−”
- @CURN
- NEXT
- RETURN
- @C0
- DATA” 0000 ”
- DATA”0 0”
- DATA”0 0”
- DATA”0 0”
- DATA”0 0”
- DATA”0 0”
- DATA”0 0”
- DATA” 0000 ”
- DATA” ”
- DATA” 1”
- DATA” 1”
- DATA” 1”
- DATA” 1”
- DATA” 1”
- DATA” 1”
- DATA” ”
- DATA” 2222 ”
- DATA” 2”
- DATA” 2”
- DATA” 2222 ”
- DATA”2 ”
- DATA”2 ”
- DATA”2 ”
- DATA” 2222 ”
- DATA” 3333 ”
- DATA” 3”
- DATA” 3”
- DATA” 3333 ”
- DATA” 3”
- DATA” 3”
- DATA” 3”
- DATA” 3333 ”
- DATA” ”
- DATA”4 4”
- DATA”4 4”
- DATA” 44444”
- DATA” 4”
- DATA” 4”
- DATA” 4”
- DATA” ”
- DATA” 5555 ”
- DATA”5 ”
- DATA”5 ”
- DATA” 5555 ”
- DATA” 5”
- DATA” 5”
- DATA” 5”
- DATA” 5555 ”
- DATA” 6666 ”
- DATA”6 ”
- DATA”6 ”
- DATA”66666 ”
- DATA”6 6”
- DATA”6 6”
- DATA”6 6”
- DATA” 6666 ”
- DATA” 7777 ”
- DATA” 7”
- DATA” 7”
- DATA” 7”
- DATA” 7”
- DATA” 7”
- DATA” 7”
- DATA” ”
- DATA” 8888 ”
- DATA”8 8”
- DATA”8 8”
- DATA” 8888 ”
- DATA”8 8”
- DATA”8 8”
- DATA”8 8”
- DATA” 8888 ”
- DATA” 9999 ”
- DATA”9 9”
- DATA”9 9”
- DATA” 99999”
- DATA” 9”
- DATA” 9”
- DATA” 9”
- DATA” ”
00:00の状態でAボタンを押すと、何も置きませんが、以下のように改造することで、カウントアップするようにできます。 カウントダウン中と同様Bボタンを押すとカウントアップを停止して、時間設定状態に戻ります。 カウントアップの再開はできません。
26行目を以下のように変更
- IF(NOK AND 16)THEN GOSUB @A
適当な箇所に以下の記述を追加
- @A
- IF TIM==0 GOTO @ACU
- CLS:GOTO@CD
- RETURN
- @ACU
- CLS:GOTO@CU
- RETURN
- @CU
- COLOR 0
- GOSUB@DTIMER
- @CULP
- VSYNC 35
- NOK=NOT K:K=BUTTON():NOK=NOK AND K
- IF(NOK AND 32)GOTO @SETTING
- COLON=1−COLON
- GOSUB@DTIMER
- VSYNC 25
- NOK=NOT K:K=BUTTON():NOK=NOK AND K
- IF(NOK AND 32)GOTO @SETTING
- COLON=1−COLON
- TIM=(TIM+1)%6000
- GOSUB@DTIMER
- GOTO@CULP
※3行目と6行目のGOSUB@CDおよびGOSUB@CDを、GOTO文に修正しました。
※サブルーチン @TIM2Cと、DATAの「6」の一部を修正しました。
この作品に対するコメントがあれば一言どうぞ。(作品に直接関係ない質問や雑談は掲示板へ)
表示モード : [ スマホ・3DS対応表示 | クラシック表示 ]
PukiWiki 1.4.7 Copyright © 2001-2006 PukiWiki Developers Team. License is GPL. Based on "PukiWiki" 1.3 by yu-ji
ページの処理時間 : 0.125 秒 | このページの最終更新 : 2022/09/20 (火) 12:44:06 (565d) | ログイン
Copyright(C) 2011-2014 プチコンまとめWiki ◆1sxkymI8ji30