プチコンまとめWiki (初代/mkII)

投稿プログラム : キッチンタイマー

パンくずリスト

2011年05月03日投稿 / 投稿者 : 名無しさん / タグ : 投稿プログラム 実用ツール 初代対応 QRコード

概要

これは99分59秒まで測れるキッチンタイマーです。
表示が大きいので、制限時間を設けて(アナログな)ゲームをする時などに、全員が見えるタイマーとして使うこともできます。 というか、そういう目的で作りました。

使い方

実行すると時間設定状態になります。カーソルは1分の位に合っています。
十字キーの左右でカーソル移動、上下でタイマー設定の変更が可能です。
Aボタンを押すとカウントダウンを開始します。
Bボタンを押すとリセット(カーソル位置と時間のリセット)が行われます。
STARTボタンで終了です。

時間設定中の操作
↑↓時間の変更
←→カーソルの移動
Аカウントダウン開始
Б時間・カーソル位置のリセット
STARTプログラムの終了

カウントダウン中は、Bボタンを0.5秒程度押しているとカウントダウンを停止できます。

カウントダウン中の操作
Бカウントダウンの停止

カウントダウン中は以下の時にBEEP音がします。

  • 残りが1分の倍数ちょうど(秒表示が00)
  • 残りが60秒以下(30秒以下、10秒以下で変化) また、30秒以下、10秒以下になると画面表示の色も変化します。

残り時間が0になるとBGMが流れます。
BGMの再生が終わるか、BGMが流れている間にAボタンを押すと、時間設定状態になります。

参考にしたもの

プチコンでTRPG便利ツールを作ってみた ‐ ニコニコ動画(原宿)

上記リンク先で紹介されているタイマーツールと似たものを作りました。
プログラムリスト部分は潰れてて読めなかったため、自分で組みました。

QR コード

プチコンmkII 向けの QR コードです。

PRG:KTIMER
1/22/2
qr001.pngqr002.png

プログラムリスト

  1. CLEAR:CLS
  2. DIM NUM$(10,8)
  3. RESTORE @C0
  4. FOR I=0 TO 9
  5.  FOR J=0 TO 7
  6.   READ NUM$(I,J)
  7.  NEXT
  8. NEXT
  9. TIM=0
  10. @SETTING
  11. CUR=1
  12. COLOR 0
  13. COLON=1
  14. @SETLP
  15. GOSUB @DTIMER
  16. GOSUB @DCUR
  17. NOK=NOT K:K=BUTTON():NOK=NOK AND K
  18. IF(NOK AND 4)THEN BEEP 2:CUR=(CUR+3)AND 3
  19. IF(NOK AND 8)THEN BEEP 2:CUR=(CUR+1)AND 3
  20. IF(NOK AND 1)THEN BEEP 9:GOSUB @UP
  21. IF(NOK AND 2)THEN BEEP 9:GOSUB @DOWN
  22. IF(NOK AND 16)THEN CLS:GOTO @CD
  23. IF(NOK AND 32)THEN CUR=1:TIM=0
  24. IF(NOK AND 1024)THEN LOCATE 0,20:GOTO @LAST
  25. GOTO @SETLP
  26. @UP
  27. GOSUB @TIM2C
  28. C(CUR)=(C(CUR)+1)%(6+(CUR!=2)*4)
  29. GOSUB @C2TIM
  30. RETURN
  31. @DOWN
  32. GOSUB @TIM2C
  33. TMP=(6+(CUR!=2)*4)
  34. C(CUR)=(C(CUR)+TMP−1)%TMP
  35. GOSUB @C2TIM
  36. RETURN
  37. @CD
  38. OTIM=TIM
  39. COLOR 0
  40. IF TIM<=10 THEN COLOR 13:BEEP 3:GOTO @CEIF
  41. IF TIM<=30 THEN COLOR 7:BEEP 2:GOTO @CEIF
  42. IF TIM<60 THEN BEEP 9:GOTO @CEIF
  43. IF (TIM%60)==0 THEN BEEP 38:GOTO @CEIF
  44. GOSUB @DTIMER
  45. @CLP
  46. VSYNC 35
  47. NOK=NOT K:K=BUTTON():NOK=NOK AND K
  48. IF(NOK AND 32)GOTO @SETTING
  49. COLON=1−COLON
  50. GOSUB @DTIMER
  51. VSYNC 25
  52. NOK=NOT K:K=BUTTON():NOK=NOK AND K
  53. IF(NOK AND 32)GOTO @SETTING
  54. COLON=1−COLON
  55. TIM=TIM−1
  56. IF TIM==0 THEN BGMPLAY 4:GOSUB @DTIMER:GOTO @CDEND
  57. IF TIM<=10 THEN COLOR 13:BEEP 3:GOTO @CEIF
  58. IF TIM<=30 THEN COLOR 7:BEEP 2:GOTO @CEIF
  59. IF TIM<60 THEN BEEP 9:GOTO @CEIF
  60. IF (TIM%60)==0 THEN BEEP 38:GOTO @CEIF
  61. @CEIF
  62. GOSUB @DTIMER
  63. IF TIM>0 GOTO @CLP
  64. @CDEND
  65. NOK=NOT K:K=BUTTON():NOK=NOK AND K
  66. IF(NOK AND 16)THEN BGMSTOP
  67. IF BGMCHK() GOTO @CDEND
  68. TIM=OTIM
  69. GOTO @SETTING
  70. @LAST
  71. END
  72. @TIM2C
  73. C(3)=TIM%10
  74. C(2)=FLOOR((TIM%60)/10)
  75. C(1)=FLOOR(TIM/60)%10
  76. C(0)=FLOOR(TIM/600)
  77. RETURN
  78. @C2TIM
  79. TIM=C(3)+C(2)*10+C(1)*60+C(0)*600
  80. RETURN
  81. @DTIMER
  82. GOSUB @TIM2C
  83. IF COLON GOTO @DCOLON
  84.  LOCATE 15,6:?” ”
  85.  LOCATE 15,9:?” ”
  86.  GOTO @DCEND
  87. @DCOLON
  88.  LOCATE 15,6:?”*”
  89.  LOCATE 15,9:?”*”
  90. @DCEND
  91. FOR I=0 TO 3
  92.  TX=1+I*7+(I AND 2)
  93.  FOR J=0 TO 7
  94.   LOCATE TX,4+J
  95.   ?NUM$(C(I),J)
  96.  NEXT
  97. NEXT
  98. RETURN
  99. @DCUR
  100. FOR I=0 TO 3
  101.  LOCATE 1+I*7+(I AND 2),13
  102.  IF I==CUR GOTO @CURB
  103.   ?”      ”
  104.   GOTO @CURN
  105.  @CURB
  106.   ?”−−−−−−”
  107.  @CURN
  108. NEXT
  109. RETURN
  110. @C0
  111. DATA” 0000 ”
  112. DATA”0    0”
  113. DATA”0    0”
  114. DATA”0    0”
  115. DATA”0    0”
  116. DATA”0    0”
  117. DATA”0    0”
  118. DATA” 0000 ”
  119. DATA”      ”
  120. DATA”     1”
  121. DATA”     1”
  122. DATA”     1”
  123. DATA”     1”
  124. DATA”     1”
  125. DATA”     1”
  126. DATA”      ”
  127. DATA” 2222 ”
  128. DATA”     2”
  129. DATA”     2”
  130. DATA” 2222 ”
  131. DATA”2     ”
  132. DATA”2     ”
  133. DATA”2     ”
  134. DATA” 2222 ”
  135. DATA” 3333 ”
  136. DATA”     3”
  137. DATA”     3”
  138. DATA” 3333 ”
  139. DATA”     3”
  140. DATA”     3”
  141. DATA”     3”
  142. DATA” 3333 ”
  143. DATA”      ”
  144. DATA”4    4”
  145. DATA”4    4”
  146. DATA” 44444”
  147. DATA”     4”
  148. DATA”     4”
  149. DATA”     4”
  150. DATA”      ”
  151. DATA” 5555 ”
  152. DATA”5     ”
  153. DATA”5     ”
  154. DATA” 5555 ”
  155. DATA”     5”
  156. DATA”     5”
  157. DATA”     5”
  158. DATA” 5555 ”
  159. DATA” 6666 ”
  160. DATA”6     ”
  161. DATA”6     ”
  162. DATA”66666 ”
  163. DATA”6    6”
  164. DATA”6    6”
  165. DATA”6    6”
  166. DATA” 6666 ”
  167. DATA” 7777 ”
  168. DATA”     7”
  169. DATA”     7”
  170. DATA”     7”
  171. DATA”     7”
  172. DATA”     7”
  173. DATA”     7”
  174. DATA”      ”
  175. DATA” 8888 ”
  176. DATA”8    8”
  177. DATA”8    8”
  178. DATA” 8888 ”
  179. DATA”8    8”
  180. DATA”8    8”
  181. DATA”8    8”
  182. DATA” 8888 ”
  183. DATA” 9999 ”
  184. DATA”9    9”
  185. DATA”9    9”
  186. DATA” 99999”
  187. DATA”     9”
  188. DATA”     9”
  189. DATA”     9”
  190. DATA”      ”

カウントアップ機能の追加

00:00の状態でAボタンを押すと、何も置きませんが、以下のように改造することで、カウントアップするようにできます。 カウントダウン中と同様Bボタンを押すとカウントアップを停止して、時間設定状態に戻ります。 カウントアップの再開はできません。

26行目を以下のように変更

  1. IF(NOK AND 16)THEN GOSUB @A

適当な箇所に以下の記述を追加

  1. @A
  2. IF TIM==0 GOTO @ACU
  3.  CLS:GOTO@CD
  4.  RETURN
  5. @ACU
  6.  CLS:GOTO@CU
  7.  RETURN
  8. @CU
  9. COLOR 0
  10. GOSUB@DTIMER
  11. @CULP
  12. VSYNC 35
  13. NOK=NOT K:K=BUTTON():NOK=NOK AND K
  14. IF(NOK AND 32)GOTO @SETTING
  15. COLON=1−COLON
  16. GOSUB@DTIMER
  17. VSYNC 25
  18. NOK=NOT K:K=BUTTON():NOK=NOK AND K
  19. IF(NOK AND 32)GOTO @SETTING
  20. COLON=1−COLON
  21. TIM=(TIM+1)%6000
  22. GOSUB@DTIMER
  23. GOTO@CULP

※3行目と6行目のGOSUB@CDおよびGOSUB@CDを、GOTO文に修正しました。
※サブルーチン @TIM2Cと、DATAの「6」の一部を修正しました。

CHECKER FLAG (ひとことコメント)

この作品に対するコメントがあれば一言どうぞ。(作品に直接関係ない質問や雑談は掲示板へ)

  • 名無しさん : 時間の変更がうまくいかないで、エラーになってしまいます。入力ミスでしょうか? (2011/05/16 (月) 09:54:35)
    • 名無しさん : 十字キー上下を押すとエラーが出るんですよね?とりあえずエラーメッセージと起きてる場所を書いてもらえるとうれしいです (2011/05/16 (月) 22:22:36)
  • 名無しさん : なんていうエラーが出てるか書かないと、作者の人でも判断のしようがないよー (2011/05/16 (月) 17:56:03)
  • 暇人 : Out of DATA (6, READ)て出たけどなぜですか? (2011/09/21 (水) 19:44:27)
  • わぁぃ@ : DATA文が入っているのが不思議で仕方ないのだが。 (2011/09/24 (土) 11:43:05)
  • 翁鶏 : DATA必要かな? (2012/01/02 (月) 19:48:58)
  • hatena : タグに初代対応を追加しました。 (2012/03/19 (月) 14:40:25)
  • 名無しさん : DSにカップラーメンこぼした・・・。が、こわれなかった よかったーーー (2012/04/08 (日) 21:38:25)
  • 名無しさん : 投稿者さんが来られないようなので、デバッグしてうまく動作したので、QRコードをつけました。カウントアップ機能はつけています。 (2012/05/16 (水) 21:41:53)
  • 名無しさん : ありがとう名無しさん!! (2012/05/19 (土) 00:33:29)
  • あいうえお : バグがあります。タイマーを7秒以上設定すると6がバグります。 (2012/07/28 (土) 16:21:59)
  • 名無しさん : 上のリストはあってるけど、QRのデータは、6のデータでスペースの足りないところがあるかな。これくらいは自分で直しましょう。なにしろ投稿者が出てこない。 (2012/07/28 (土) 16:50:56)
  • 生活に役立ちますね夫 : 役立つね生活に (2013/05/30 (木) 16:37:22)

表示モード : [ スマホ・3DS対応表示 | クラシック表示 ]
PukiWiki 1.4.7 Copyright © 2001-2006 PukiWiki Developers Team. License is GPL. Based on "PukiWiki" 1.3 by yu-ji
ページの処理時間 : 0.039 秒 | このページの最終更新 : 2013/05/30 (木) 16:37:22 (2366d) | ログイン
Copyright(C) 2011-2014 プチコンまとめWiki ◆1sxkymI8ji30