タイマーを改造した

2016/0531/08:50
昨日は「キッチンタイマー」を作ってみた。当初の設定は「10」秒でアラームを鳴らすようになっていたが、これを「180」秒に変更することに成功した。
もし、このタイマーをiPhoneで呼び出すことができれば(ブラウザーChromeに変えたから、iPhoneにもChromeを入れると呼び出せるはずだ)、カップラーメンを作るときに楽になるかもしれない(たぶん、それほど楽にはならないと思う)。
ともかく、今日の課題は、このタイマーを変更すること。

『実践としてのプログラミング講座』p22からの内容である。
これには「変数ブロック」と「代入ブロック」を使うことになる。「ブロック」というのは、部品とか計算式(プログラムのかたまりといったほうがよいか)みたいなものだ。

まず「変数ブロック」から「代入」を選んで、「変数」をセットしていくと10分のタイマーができた。

この「moonblock」は、ボックスの凸凹の具合で、そこに入るのか/入らないのかが直感的にわかるようになっているところ。
緑の枠で囲まれた、一番右側の「数値」を変更すれば、タイマーを好きな時間に設定できる。このタイマーを使えば、仕事時間の設定をすることができる。45分集中したら休憩する。そんなルールを実行するためには、「10」を「45」に変えればよい。

おそらくは上からの流れが、プログラミングの流れになっていて、それは「タイマーを作るときには、このように考えるのだ」という思考のフローにもなっている。

一つ賢くなったような気分だ!

今日のコードはこれ↓
[{
"x": -665,
"y": -140,
"constructorName": "TimerBoardBlock",
"variables": {
"countdir": "countdown",
"fold": "-",
"seconds": "180",
"behavior": {
"x": 0,
"y": 0,
"constructorName": "ListenerBlock",
"variables": {
"eventType": "timeup",
"fold": "-",
"handler": {
"x": 0,
"y": 0,
"constructorName": "SEBlock",
"variables": {
"sesrc": "jingle.wav"
},
"next": null
}
},
"next": {
"x": 0,
"y": 0,
"constructorName": "ListenerBlock",
"variables": {
"eventType": "init",
"fold": "-",
"handler": {
"x": 0,
"y": 0,
"constructorName": "AssignBlock",
"variables": {
"a": {
"x": 0,
"y": 0,
"constructorName": "PropertyBlock",
"variables": {
"name": "count"
}
},
"op": "=",
"b": {
"x": 0,
"y": 0,
"constructorName": "ComputeBlock",
"variables": {
"a": {
"x": 0,
"y": 0,
"constructorName": "NumberBlock",
"variables": {
"value": "60"
}
},
"op": "*",
"b": {
"x": 0,
"y": 0,
"constructorName": "NumberBlock",
"variables": {
"value": "10"
}
}
}
}
},
"next": null
}
},
"next": null
}
}
}
}]

ここまで20分。2日目にして、賢くなった気がする自分がいる。

昨日のI/O

In:
In:
『実践としてのプログラミング講座』

『日本語シソーラス』第二版
Out:
某原稿:7枚

昨日の稽古: