頭おサルさんの文系出身者でもできるポケモン剣盾マイコン自動化(高速乱数消費自動化)
※タイトルの通り、当方は頭おサルの文系人間なので、専門知識は一切持ち合わせておらず、質問には一切お答えできません。
万一ではありますが、この記事によって生じる損害について一切の責任を筆者は負いかねますので、全て自己責任でお願いします。
私の環境下できちんと作動したソースコードです。
先述の通り、頭おサルの人間が人真似で書いたものなので無駄等あると思います。
適宜修正して使用してください。
(マイコンをSwitchに繋いでから実際にコード通りのコマンドを実行するまでにしばらくラグがあるようなので、最初に無意味な動作を入れています。)
(日付を変更してゲーム画面に戻った直後(画面が暗転するタイミング)、コマンド入力を受け付けない?時間があるように思われるので、無意味な動作を入れています。)
1000消費ごとにレポートを書いて、5万消費で停止する(ように見える)コードです。
「1000消費でレポートする作業を〇回繰り返す」の1行下の「i<=49」を「i<=9」とか「i<=24」にすれば、1万消費や2万5000消費してレポートを書いたのち、スイッチの時間を変更する画面のところで停止します(そのように見えるだけ)。
あらかじめ、Switchの日付をひと月に31日ある月の初日(2020年1月1日等)にしておいてください。
必ずポケセン内で、かつ念のため周りに人やボックスのない位置で開始してください。
【2月8日追記】
999以下の端数が出るときに、実際に私が使用したコードをテンプレの下(点線以下)に載せました。
約48000消費を約18時間かけて行いましたが、最後までループが途切れずにきちんと消費を終えて擬似停止してくれました。
ただし、あくまで私の環境下で18時間作動したというだけの話であり、他の環境や18時間を超える長時間の確実な動作を保証するものではありません。
#include <SwitchControlLibrary.h> void setup(){ SwitchControlLibrary().PressButtonL(); delay(500); SwitchControlLibrary().PressButtonR(); delay(500); SwitchControlLibrary().ReleaseButtonL(); delay(500); SwitchControlLibrary().ReleaseButtonR(); delay(500); } void loop() { SwitchControlLibrary().PressButtonL(); delay(50); SwitchControlLibrary().PressButtonR(); delay(50); SwitchControlLibrary().ReleaseButtonL(); delay(50); SwitchControlLibrary().ReleaseButtonR(); delay(50); // ホーム画面 SwitchControlLibrary().PressButtonHome(); delay(50); SwitchControlLibrary().ReleaseButtonHome(); delay(400); SwitchControlLibrary().MoveHat(4); // down delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(2); // right delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(2); // right delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(2); // right delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(2); // right delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().PressButtonA(); delay(50); SwitchControlLibrary().ReleaseButtonA(); delay(1100); // 設定画面 SwitchControlLibrary().MoveHat(4); // down delay(1500); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(2); // right delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(4); // down delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(4); // down delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(4); // down delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(4); // down delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().PressButtonA(); delay(50); SwitchControlLibrary().ReleaseButtonA(); delay(500); // 時間設定 SwitchControlLibrary().MoveHat(4); // down delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(4); // down delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().PressButtonA(); delay(50); SwitchControlLibrary().ReleaseButtonA(); delay(400); // 1000消費でレポートする作業を〇回繰り返す for(int i=0; i<=49; i++) { // 1月1日から1日進めて1消費 SwitchControlLibrary().MoveHat(2); // right delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(2); // right delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(0); // up delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().PressButtonA(); delay(50); SwitchControlLibrary().ReleaseButtonA(); delay(50); SwitchControlLibrary().PressButtonA(); delay(50); SwitchControlLibrary().ReleaseButtonA(); delay(50); SwitchControlLibrary().PressButtonA(); delay(50); SwitchControlLibrary().ReleaseButtonA(); delay(50); SwitchControlLibrary().PressButtonA(); delay(50); SwitchControlLibrary().ReleaseButtonA(); delay(300); SwitchControlLibrary().PressButtonA(); delay(50); SwitchControlLibrary().ReleaseButtonA(); delay(300); for(int i=0; i<=1031; i++) { // 1032回日にちを進めて1月11日にして999消費 SwitchControlLibrary().MoveHat(6); // left delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(6); // left delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(6); // left delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(0); // up delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().PressButtonA(); delay(50); SwitchControlLibrary().ReleaseButtonA(); delay(50); SwitchControlLibrary().PressButtonA(); delay(50); SwitchControlLibrary().ReleaseButtonA(); delay(50); SwitchControlLibrary().PressButtonA(); delay(50); SwitchControlLibrary().ReleaseButtonA(); delay(50); SwitchControlLibrary().PressButtonA(); delay(50); SwitchControlLibrary().ReleaseButtonA(); delay(200); SwitchControlLibrary().PressButtonA(); delay(50); SwitchControlLibrary().ReleaseButtonA(); delay(300); } // 1月11日から1月1日に日付を戻してレポート SwitchControlLibrary().MoveHat(6); // left delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(6); // left delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(6); // left delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); for(int i=0; i<=9; i++) { SwitchControlLibrary().MoveHat(4); // down delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); } SwitchControlLibrary().PressButtonA(); delay(50); SwitchControlLibrary().ReleaseButtonA(); delay(50); SwitchControlLibrary().PressButtonA(); delay(50); SwitchControlLibrary().ReleaseButtonA(); delay(50); SwitchControlLibrary().PressButtonA(); delay(50); SwitchControlLibrary().ReleaseButtonA(); delay(50); SwitchControlLibrary().PressButtonA(); delay(50); SwitchControlLibrary().ReleaseButtonA(); delay(200); SwitchControlLibrary().PressButtonHome(); delay(50); SwitchControlLibrary().ReleaseButtonHome(); delay(500); SwitchControlLibrary().PressButtonA(); delay(100); SwitchControlLibrary().ReleaseButtonA(); delay(100); // ゲーム画面に戻って謎調整 SwitchControlLibrary().PressButtonB(); delay(100); SwitchControlLibrary().ReleaseButtonB(); delay(100); SwitchControlLibrary().PressButtonB(); delay(100); SwitchControlLibrary().ReleaseButtonB(); delay(100); SwitchControlLibrary().PressButtonB(); delay(100); SwitchControlLibrary().ReleaseButtonB(); delay(100); SwitchControlLibrary().PressButtonB(); delay(100); SwitchControlLibrary().ReleaseButtonB(); delay(100); SwitchControlLibrary().PressButtonB(); delay(100); SwitchControlLibrary().ReleaseButtonB(); delay(100); // レポート SwitchControlLibrary().PressButtonX(); delay(100); SwitchControlLibrary().ReleaseButtonX(); delay(500); SwitchControlLibrary().PressButtonR(); delay(100); SwitchControlLibrary().ReleaseButtonR(); delay(1200); SwitchControlLibrary().PressButtonA(); delay(300); SwitchControlLibrary().ReleaseButtonA(); delay(3300); // ホーム画面 SwitchControlLibrary().PressButtonHome(); delay(50); SwitchControlLibrary().ReleaseButtonHome(); delay(400); SwitchControlLibrary().MoveHat(4); // down delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(2); // right delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(2); // right delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(2); // right delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(2); // right delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().PressButtonA(); delay(50); SwitchControlLibrary().ReleaseButtonA(); delay(1200); // 設定画面 SwitchControlLibrary().MoveHat(4); // down delay(1500); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(2); // right delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(4); // down delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(4); // down delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(4); // down delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(4); // down delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().PressButtonA(); delay(50); SwitchControlLibrary().ReleaseButtonA(); delay(500); // 時間設定 SwitchControlLibrary().MoveHat(4); // down delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(4); // down delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().PressButtonA(); delay(50); SwitchControlLibrary().ReleaseButtonA(); delay(300); } while(1); }
-------------------------------------------------------------------------------
48399消費を行った時のソースコード。
#include <SwitchControlLibrary.h> void setup(){ SwitchControlLibrary().PressButtonL(); delay(500); SwitchControlLibrary().PressButtonR(); delay(500); SwitchControlLibrary().ReleaseButtonL(); delay(500); SwitchControlLibrary().ReleaseButtonR(); delay(500); } void loop() { SwitchControlLibrary().PressButtonL(); delay(50); SwitchControlLibrary().PressButtonR(); delay(50); SwitchControlLibrary().ReleaseButtonL(); delay(50); SwitchControlLibrary().ReleaseButtonR(); delay(50); // ホーム画面 SwitchControlLibrary().PressButtonHome(); delay(50); SwitchControlLibrary().ReleaseButtonHome(); delay(400); SwitchControlLibrary().MoveHat(4); // down delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(2); // right delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(2); // right delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(2); // right delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(2); // right delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().PressButtonA(); delay(50); SwitchControlLibrary().ReleaseButtonA(); delay(1100); // 設定画面 SwitchControlLibrary().MoveHat(4); // down delay(1500); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(2); // right delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(4); // down delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(4); // down delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(4); // down delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(4); // down delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().PressButtonA(); delay(50); SwitchControlLibrary().ReleaseButtonA(); delay(500); // 時間設定 SwitchControlLibrary().MoveHat(4); // down delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(4); // down delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().PressButtonA(); delay(50); SwitchControlLibrary().ReleaseButtonA(); delay(400); // 1000消費でレポートする作業を〇回繰り返す for(int i=0; i<=47; i++) { // 1月1日から1日進めて1消費 SwitchControlLibrary().MoveHat(2); // right delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(2); // right delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(0); // up delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().PressButtonA(); delay(50); SwitchControlLibrary().ReleaseButtonA(); delay(50); SwitchControlLibrary().PressButtonA(); delay(50); SwitchControlLibrary().ReleaseButtonA(); delay(50); SwitchControlLibrary().PressButtonA(); delay(50); SwitchControlLibrary().ReleaseButtonA(); delay(50); SwitchControlLibrary().PressButtonA(); delay(50); SwitchControlLibrary().ReleaseButtonA(); delay(300); SwitchControlLibrary().PressButtonA(); delay(50); SwitchControlLibrary().ReleaseButtonA(); delay(300); for(int i=0; i<=1031; i++) { // 1032回日にちを進めて1月11日にして999消費 SwitchControlLibrary().MoveHat(6); // left delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(6); // left delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(6); // left delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(0); // up delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().PressButtonA(); delay(50); SwitchControlLibrary().ReleaseButtonA(); delay(50); SwitchControlLibrary().PressButtonA(); delay(50); SwitchControlLibrary().ReleaseButtonA(); delay(50); SwitchControlLibrary().PressButtonA(); delay(50); SwitchControlLibrary().ReleaseButtonA(); delay(50); SwitchControlLibrary().PressButtonA(); delay(50); SwitchControlLibrary().ReleaseButtonA(); delay(300); SwitchControlLibrary().PressButtonA(); delay(50); SwitchControlLibrary().ReleaseButtonA(); delay(300); } // 1月11日から1月1日に日付を戻してレポート SwitchControlLibrary().MoveHat(6); // left delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(6); // left delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(6); // left delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); for(int i=0; i<=9; i++) { SwitchControlLibrary().MoveHat(4); // down delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); } SwitchControlLibrary().PressButtonA(); delay(50); SwitchControlLibrary().ReleaseButtonA(); delay(50); SwitchControlLibrary().PressButtonA(); delay(50); SwitchControlLibrary().ReleaseButtonA(); delay(50); SwitchControlLibrary().PressButtonA(); delay(50); SwitchControlLibrary().ReleaseButtonA(); delay(50); SwitchControlLibrary().PressButtonA(); delay(50); SwitchControlLibrary().ReleaseButtonA(); delay(300); SwitchControlLibrary().PressButtonHome(); delay(50); SwitchControlLibrary().ReleaseButtonHome(); delay(500); SwitchControlLibrary().PressButtonA(); delay(100); SwitchControlLibrary().ReleaseButtonA(); delay(100); // ゲーム画面に戻って謎調整 SwitchControlLibrary().PressButtonB(); delay(100); SwitchControlLibrary().ReleaseButtonB(); delay(100); SwitchControlLibrary().PressButtonB(); delay(100); SwitchControlLibrary().ReleaseButtonB(); delay(100); SwitchControlLibrary().PressButtonB(); delay(100); SwitchControlLibrary().ReleaseButtonB(); delay(100); SwitchControlLibrary().PressButtonB(); delay(100); SwitchControlLibrary().ReleaseButtonB(); delay(100); SwitchControlLibrary().PressButtonB(); delay(100); SwitchControlLibrary().ReleaseButtonB(); delay(100); // レポート SwitchControlLibrary().PressButtonX(); delay(100); SwitchControlLibrary().ReleaseButtonX(); delay(500); SwitchControlLibrary().PressButtonR(); delay(100); SwitchControlLibrary().ReleaseButtonR(); delay(1200); SwitchControlLibrary().PressButtonA(); delay(300); SwitchControlLibrary().ReleaseButtonA(); delay(3500); // ホーム画面 SwitchControlLibrary().PressButtonHome(); delay(50); SwitchControlLibrary().ReleaseButtonHome(); delay(400); SwitchControlLibrary().MoveHat(4); // down delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(2); // right delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(2); // right delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(2); // right delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(2); // right delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().PressButtonA(); delay(50); SwitchControlLibrary().ReleaseButtonA(); delay(1200); // 設定画面 SwitchControlLibrary().MoveHat(4); // down delay(1500); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(2); // right delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(4); // down delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(4); // down delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(4); // down delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(4); // down delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().PressButtonA(); delay(50); SwitchControlLibrary().ReleaseButtonA(); delay(500); // 時間設定 SwitchControlLibrary().MoveHat(4); // down delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(4); // down delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().PressButtonA(); delay(50); SwitchControlLibrary().ReleaseButtonA(); delay(500); } // 追加で399消費 // 1月1日から1日進めて1消費 SwitchControlLibrary().MoveHat(2); // right delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(2); // right delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(0); // up delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().PressButtonA(); delay(50); SwitchControlLibrary().ReleaseButtonA(); delay(50); SwitchControlLibrary().PressButtonA(); delay(50); SwitchControlLibrary().ReleaseButtonA(); delay(50); SwitchControlLibrary().PressButtonA(); delay(50); SwitchControlLibrary().ReleaseButtonA(); delay(50); SwitchControlLibrary().PressButtonA(); delay(50); SwitchControlLibrary().ReleaseButtonA(); delay(300); SwitchControlLibrary().PressButtonA(); delay(50); SwitchControlLibrary().ReleaseButtonA(); delay(300); for(int i=0; i<=410; i++) { // 411回日にちを進めて1月10日にして398消費 SwitchControlLibrary().MoveHat(6); // left delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(6); // left delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(6); // left delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().MoveHat(0); // up delay(50); SwitchControlLibrary().MoveHat(8); // center delay(50); SwitchControlLibrary().PressButtonA(); delay(50); SwitchControlLibrary().ReleaseButtonA(); delay(50); SwitchControlLibrary().PressButtonA(); delay(50); SwitchControlLibrary().ReleaseButtonA(); delay(50); SwitchControlLibrary().PressButtonA(); delay(50); SwitchControlLibrary().ReleaseButtonA(); delay(50); SwitchControlLibrary().PressButtonA(); delay(50); SwitchControlLibrary().ReleaseButtonA(); delay(200); SwitchControlLibrary().PressButtonA(); delay(50); SwitchControlLibrary().ReleaseButtonA(); delay(200); } while(1); }