すうすうアイランド

技術メモとか

ミラクルボックス用のお知らせタイマーを作った

ミラクルボックス用のお知らせタイマー
ポケモンHOMEのミラクルボックスは2時間~が交換の目安とどこかで聞いたような気がしたので2時間経ったらお知らせしてくれるタイマーを作りました。
使用言語はC言語、開発環境はWindows 10とVisual Studio 2019 Communityです。

miracle-timer - Chico Shiratori
MITライセンスです。遊びで作ったのでサポートは受け付けていません。

なんでC言語

PythonやNode.jsだとexe化した時に数~数10MBになってしまうようなので。それはちょっとね...。

適当な説明とか

do {
    if ((key = getchar()) == 's') {
        printf("タイマーをセットしました\n");
        Sleep(7200000);    // 2時間待つ
        printf("ポケモンが交換されたかもしれません!ミラクルボックスを確認してみましょう。\n");

sが入力されたらprintfでメッセージを出力、Sleep関数が実行される。2時間経ったらメッセージを出力するようにしているが見る暇はほぼないのでおまけです。
WindowsのSleep関数の単位はmsecというものらしい。1000msecは1秒くらい。

// 5回アラートを鳴らす
for (i = 0; i <= 4; i++) {
    printf("\a");
    Sleep(1000);
    }  

2時間経ったら5回ビープ音を鳴らして通知。
Sleep関数を挟まないと1回鳴ってすぐに終わってしまうように聴こえるので1秒程度間を挟んでいる。

while (key != 'e');   // eが入力されるまでループする

do while文でeが入力されるまでループするようにしている。

今後やりたいことや感想

大文字のSとEを入力しても判定に引っかからないので反応するようにしたい。
残り1時間 とか出力する機能もアリかなと思うが放置させることが前提のアプリケーションなので必要がない。
ポケモンHOMEはスマホアプリなのでスマホで完結できるようにAndroid用のアプリも作ってみたいけど、今使っているAndroidは壊れかけ(物理)なのと次のはiPhoneに変えるか悩んでいるので微妙なところ。
もし作るならタイマーをスタートさせるとバックグラウンドで動いて時間になると通知バーで通知してくれるやつが作りたいです。

C言語Visual Studioも触るのが久しぶりすぎてインデントが分からないです。