Arduino使って自動化したかった

注意

この記事は反省会記事なのでここのコードを真似しても成功しません

追記 06/18:おそらくチートモードに入れてなかったために成功しなかったと思われます(確かめようがないのでそのままです)

概要

ArduinoNintendo switchを動かすためライブラリが存在するので乱数調整で大量の日付を動かすのでやってみようと思った
使ったライブラリ

剣盾のレイド乱数

夜綱さんとぼんじりさんのツールを使って初期seedを割り出してそこから延々と日付を変更して欲しい個体の場所に持っていくというもの

ぼんじりさんのツール

夜綱さんのツール

コード

#include <NintendoSwitchControlLibrary.h>
#define after_day_count 6801  //何日ずらすか
const int DIN_PIN = 7;

void nday_after(int day);

void setup() {
  //  switchに認識させる
  pushButton(Button::B, 500, 10);
}

void loop() {
  int value = digitalRead(DIN_PIN);

  if (value == LOW) {
    nday_after(after_day_count);
  }
}

void nday_after(int day) {
  int month = 1;
  int count = 1;

  pushButton(Button::HOME, 500);
  pushHat(Hat::DOWN, 300);
  pushHat(Hat::RIGHT, 200, 5);
  pushButton(Button::A, 500);
  tiltLeftStick(Stick::NEUTRAL, Stick::MAX, 1500);
  pushButton(Button::A, 200);
  tiltLeftStick(Stick::NEUTRAL, Stick::MAX, 700);
  pushButton(Button::A, 300);
  pushHat(Hat::DOWN, 200, 2);

  for (int i = 0; i < day; i++) {
    if (i != 0) {
      pushButton(Button::A, 300);
      pushHat(Hat::LEFT, 200, 3);
      pushHat(Hat::UP, 200);
      if (count == 28 && month == 2) {
        pushHat(Hat::DOWN, 200);
        pushHat(Hat::LEFT, 200);
        pushHat(Hat::UP, 200);
        pushButton(Button::A, 200);
        pushHat(Hat::UP, 100, 4);
        month++; count = 1;
        pushButton(Button::A, 200, 4);
      }
      else if (count == 30 && (month == 2 || month == 4 || month == 6 || month == 9 || month == 11)) {
        pushHat(Hat::LEFT, 200);
        pushHat(Hat::UP, 200);
        month++; count = 1;
        pushButton(Button::A, 200, 5);
      }
      else if (count == 31 && month == 12) {
        pushHat(Hat::LEFT, 200);
        pushHat(Hat::UP, 200);
        pushHat(Hat::LEFT, 200);
        pushHat(Hat::UP, 200);
        month = 1; count = 1;
        pushButton(Button::A, 200, 6);
      }
      else if (count == 31) {
        pushHat(Hat::LEFT, 200);
        pushHat(Hat::UP, 200);
        month++; count = 1;
        pushButton(Button::A, 200, 5);
      }
      else {
        count++;
        pushButton(Button::A, 200, 4);
      }
    }
    else {
      pushButton(Button::A, 200);
      pushHat(Hat::RIGHT, 200, 2);
      pushHat(Hat::UP, 200);
      pushButton(Button::A, 200, 4);
      count++;
    }
  }
  pushButton(Button::HOME, 500, 2);
}

結果

//ここに写真を貼る

✨🤳👁️👄👁️🐛

感想

こんなクッソめんどくさいこと二度とやりたくない

5世代乱数(BW, BW2)の乱数がめっちゃ簡単だったことを思い知った。手動で色レジアイス捕まえるのもこれくらいきついんだろうなぁとよくわからない感情になった。
画像認識で年月動かすタイミング判定すればなかなかスッキリと書けそう。

おわりに

反省会記事にならなくて本当によかった

ちゃんと?反省会案件になりました