基本的なフルオートプログラムを作りながら、関数の使い方を解説します。
ハート送信プログラム
BOX受取プログラム
この3つのプログラムが問題なく動く様になったら、フルオート用のプログラムにしましょう。
フルオートプログラムの基本の流れ
- ツムツム起動
- BOX受取
- ランキング1番下までスクロール
- ハート送信
- BOX受取
- ツムツム終了
BOX受取プログラムが2ヵ所あるのは、送信周期が通常61分以上ある為です。
1ヵ所だけだと次の受取までに61分以上開いてしまい、その1分の間に受け取ったハートはせっかくのコインが消滅してしまいます。送信の前と後の2ヵ所でBOX受取をすることによって、もれなくコインが受け取れる様になります。
3.ランキング1番下までスクロール と 6.ツムツム終了 の2つは新規で作ります。
1.ツムツム起動 2.と5.BOX受取 4.ハート送信 この3つをコピー&ペーストし、中断や完了を削除して流れを整えることで、ちょっと長いプログラムになりますがきちんと動きます。
ですが、せっかくなので
ハート送信プログラム
BOX受取プログラム
この3つのプログラムを関数にしてから、フルオートプログラムで関数呼び出しを使って取り込んでみましょう。
FRepの関数とは
関数というと、表計算エクセル等が苦手な方は難しそう!と敬遠しがちですが、FRepの関数はちょっと違います。
公式FRepサポートでは関数をプロシージャと表現しています。
プロシージャとは、複数の処理をまとめて1つのかたまりにしたものという意味で、ルーチン、サブルーチンと同じだと考えればよいでしょう。
もっと簡単にいうと、親子プログラムの子プログラムです。
この表現の方がわかりやすいかもしれませんね。
親にあたるメインプログラムから子プログラムの関数を呼び出して実行し、またメインプログラムに戻る、という使い方をします。
詳しくは、FRepの使い方【変数】と【IF】 をご覧ください。
尚、FRepでエクセル関数に相当するのは、【If文】や、変数の中でも特別な【システム変数】ではないでしょうか。
関数を作成する
では、BOX受取プログラムを関数にして保存してみましょう。
記録の管理から、BOX受取のプログラムを選択し、プログラム編集で該当プログラムを開きます。
メニュー【Ξ】を開き、【すべて選択】をタップします。
右側のチェックボックスに全てチェックがつきました。
そのまま再度メニュー【Ξ】から【関数に切り出し】をタップします。
元のラベル名に[]がついた名前になりました。
関数のラベル名がよければ「適用」をタップします。
保存できました。
※メッセージは一瞬だけ出ます。
そのまま戻るボタンで記録の管理の一覧に戻り、関数タブを開いてみて下さい。
切り出した関数が保存されています。
これで関数が出来ました!簡単ですね!
念の為、中を確認して大丈夫ならば、元々あったBOX受取プログラムは削除してしまって構いません。
同じ様に、3つの関数を作成します。
[ツムツム起動]プログラム
[ハート送信]プログラム
[BOX受取]プログラム
フルオートプログラムを作成する
それでは、フルオートプログラムを作りましょう。
記録の管理のメインタブからプログラム作成をします。
新規作成をします。
関数呼び出しを作成します。
条件・制御の設定ボタンをタップします。
関数呼び出しをタップします。
該当プログラムを指定(タップ)します。
関数呼び出しプログラムが作成されました。
1.の待機は削除しておきます。
同じ様に、関数呼び出しプログラムを作成しておきましょう。
1.ツムツム起動
2.BOX受取
3.ハート送信
4.BOX受取
3.ランキング1番下までスクロールを作ります。
ランキング1番下までスクロールは、操作の記録(Rec)で作っても大丈夫です。
スクロールが多くても問題無いですが、少ないとランキング人数が増えた時にハート送信漏れになりますから、思い切って多めにスクロールしておく方が良いでしょう。
記録が作成出来たら、プログラム2.と3.の間に追加します。
記録を追加のボタンから指定して入れましょう。
6.ツムツム終了を追加します。
アプリ終了をタップします。
対象アプリを選択画面が出たら、ツムツムを指定します。
もしもツムツムが指定できない場合は、一旦アプリ起動(ツムツム)を追加すると、アプリ終了でツムツムを選択出来る様になります。その後アプリ起動(ツムツム)は削除しておいてください。
プログラムの名前を付けます。
ラベルにプログラムの名前をつけておきましょう。
フルオートプログラム完成です。
一度戻るボタンで戻り、保存されてからもう一度プログラムを開くと、プログラム番号もきちんと並んでいます。
以上で基本的なフルオートプログラムが完成しました。
関数のメリット
プログラムを関数にしておくと、こんな時に便利になります。
- 他のプログラムでも使いたい時。
- 数カ所で使っている関数を修正したい時。
例えば、通常のフルオートプログラムとは別に月曜日用プログラムを作った時に、BOX受取プログラムは通常と同じものを使いたい場合。
BOX受取プログラムを関数にしておけば、プログラムには関数呼び出しを入れるだけです。
そして、プログラムを修正したくなった場合はもっと便利です。
修正するのは関数の中身1つだけで、メインのプログラムは何もする必要が無いので間違えにくいです。
関数化していないと、修正が複雑になればなるほど、数カ所の修正が面倒になってくる訳ですね。
さらに、メインプログラムもスッキリして見やすいのも大きなポイントです。
この様に簡単に出来て効果の高い関数です。
是非使ってみて下さい!
フルオートのプログラムが完成したら、是非止まらない為の方法に目を通しておいてください。
コメント
お世話になります。
1点後確認させて頂きたくメールさせて頂きました。
メインプログラムで変数を使用している場合、このプログラムを関数にすると、Hintに記載のとおり、メインプログラムで作成した変数は無効になってしまうのでしょうか。
上記のとおりの場合、フルオートのプログラムを作成したければ、個々のメインプログラムは関数にせず、新たなメインプログラムに作成したメインプログラムを追加する認識でしょうか。
お忙しいところ大変申し訳ございませんが、ご確認よろしくお願い致します。
コメントありがとうございます(^^)
結論を先に申し上げますと、関数に切り出しても変数は無効になりません。変数の入ったプログラムでも関数に切り出して使用できます。
変数についての考え方の問題になります。
変数とは、プログラム実行中に変数という入れ物に「値」を入れて、その「値」をまたプログラムで使います。プログラム実行中とは、実際にハートを送信している、その時です。
Hintに書いてあるのは「値」なのです。
例えば、関数を実行中にその時の送信数100をcountという変数にセットします。つまり、countの「値」が「100」になります。
メインプログラム実行中に、countの値は?という変数を使うと「100」という「値」が返ってきます。
しかし、メインプログラムでcount=100に変数をセットした場合、メインプログラム実行中のcountの値は「100」ですが、関数を実行中のcountの値は「」=何もなしです。
Hintに書いてあるのは、この様な意味になります。
これで、わかりますでしょうか?
変数については、(私も素人なもので)説明するのもなかなか難しい為、わかりにくくてすみません。
わからなかったら又コメント頂けると有り難いです。よろしくお願いします。
ご回答ありがとうございます。
Hintの意味がよく分かりました。
これで安心してメインプログラムを関数にすることができます。
丁寧にご説明して頂きありがとうございました。
説明が通じた様でよかったです(^^)
これを機に記事内容を少し修正しました。また、FRepの使い方【変数】と【IF】の記事も修正しました。
https://autofrep.net/variable-if/
宜しければご覧になってみてください。
フルオートプログラムを作る時に関数で
起動→BOX→スクロール→ハート送信→BOX→終了としているのですが、起動を行ったあと、BOXが行われずに起動のみでプログラムが終了してしまいます。何故でしょうか?
プログラムは作った様に動きます(^^)
制御設定で分岐先が完了や中断になっていないか、それぞれの関数内でプログラムが中断していないか等を確認してみてください。
制御設定で一部完了のところが中断になっていました!ありがとうございました!
3つをコピー&ペーストし、中断や完了を削除して流れを整えることとあるのですが3つのうちどこの部分の中断や完了を削除すればいいのでしょうか。
当記事は関数を使ってフルオートを作りますので、
>3つをコピー&ペーストし、中断や完了を削除して流れを整える
こちらは不要です。
記事のとおりに関数を作成する場合は、コピペ、中断完了削除等は何もせずそのままで大丈夫です。
起動→BOX一括受け取り→ホーム画面で止まってしまいます。不備が何かお分かりでしたら教えて頂けないでしょうか??
追伸
起動に【ツムツム起動v5.2】の方を使っているからランキング画面に移行しないのでしょうか??
2023年11月末にツムツム側アップデートによる仕様変更がありましたが、
【ツムツム起動v5.2】の記事内に下記追加しておりますが、こちらはご自身で対応されていますでしょうか?
********************
[231205修正]2023年11月末アップデートにて、ツムツムアプリ側の仕様変更がありました。
【プログラムの説明】にて、20.[ランキング画像認識]とその前に追加3項目、25.[ミッションタップ]を修正しました。
※【FRepのプログラム】は修正しておりませんのでご了承下さい。
********************
早速の対応ありがとうございます。仰る通り3項目の追加の件等々、不十分でした。又、【ツムツム起動v5.2】を使う場合は【変数ありフルオートプログラム】を参考にして作り直したいと思います。