こんにちは、アザリままみです。
本投稿では前記事「ポケモンスカーレットバイオレット自動化12国際孵化自動化」に続きまして、
ポケモンスカーレットバイオレットの色違い国際孵化厳選作業の自動化について、
前記事で国際孵化の流れを、
1 指定数タマゴを入手する、2 指定数ボックス内タマゴを孵化させる、3 指定ボックス数のポケモンを逃がす、
と3つの作業にわけてそれぞれ自動化すると説明しましたが、まず先にボックスを空けないと孵化厳選できないでしょうから、
まずは指定ボックス数逃がす作業から解説します。
KKHMF 2個 Leonardo Pro Micro ATmega32U4 5V/16MHz ブートローダ マイクロ USB Pro Mini 開発ボード Arduinoに対応 価格:3,604円 |
ゲーム内条件等について
本作業の自動化のために必要なゲーム内条件ですが、
指定したボックス数分、ボックス内のポケモンを全て逃がしますので、
全ボックスには抜けのないよう1ボックスにしっかり30匹入っている状態で、先頭のボックスを選択した状態でのスタートになります。
メニューを閉じた状態から始めてください。
ボックス数の指定、ディップスイッチの数値渡しについて
逃がすボックス数を指定するため、ディップスイッチの数値を渡しております。
pinMode( 4, INPUT_PULLUP );
このように各ピンをプルアップに設定し、ONになるとGが渡されるようにします。
それから次のコードでディップスイッチのオンオフを10進数に変え、dipnumとmodeに代入します。
//////////////////////////////////////////////////////////
//Valueディップスイッチを取得する
void get_dip(){
dipnum = 0;
if(digitalRead( 4 ) == LOW){
dipnum = dipnum + 1;
}
if(digitalRead( 5 ) == LOW){
dipnum = dipnum + 2;
}
if(digitalRead( 6 ) == LOW){
dipnum = dipnum + 4;
}
if(digitalRead( 7 ) == LOW){
dipnum = dipnum + 8;
}
if(digitalRead( 14 ) == LOW){
dipnum = dipnum + 16;
}
}
//modeディップスイッチを取得する
void get_mode(){
mode = 0;
if(digitalRead( 15 ) == LOW){
mode = mode + 1;
}
if(digitalRead( 16 ) == LOW){
mode = mode + 2;
}
}
/////////////////////////////////////////////////////////////////
逃がすコード
指定ボックス数逃がすコードは次のとおりになります。
十字キー入力を安定化させるための試行錯誤はそのままコメントアウトとして残します。
本記事末尾にサンプルスケッチをアップしておきますので、ダウンロードしてお使いください。
今までに記事にした、ランダムオンラインレイド周回、オンラインレイド周回、学園戦周回もスケッチ内に実装されています。
//////////////////////////////F12svリリースbox
void svreleasebox(){
for(int counti = 0; counti < dipnum; counti ++){
for(int gyo = 0; gyo < 5; gyo ++){
for(int retsu = 0; retsu < 6; retsu ++){
//表示部
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0, 0);
display.println(“F12 ReleaseBox”);
display.print(“For:”);
display.print(dipnum);
display.println(“Bx”);
display.print(counti + 1);
display.println(“Box ,”);
display.print(gyo * 6 + retsu + 1);
display.println(“Poke now.”);
display.display();
//逃がして右
pushButton(Button::A, 1000);
/*
pushHatButton(Hat::DOWN, 200, 1);
delay(400);
pushHatButton(Hat::DOWN, 200, 1);
delay(400);
pushHatButton(Hat::DOWN, 200, 1);
delay(400);
pushHatButton(Hat::DOWN, 200, 1);
delay(400);
/ tiltJoystick(0, 100, 0, 0, 1500);//下 delay(500); pushHatButton(Hat::UP, 200, 1); //tiltJoystick(0, -100, 0, 0, 300);//上 delay(400); /
tiltJoystick(0, 100, 0, 0, 300);//下
tiltJoystick(0, 100, 0, 0, 300);//下
tiltJoystick(0, 100, 0, 0, 300);//下
tiltJoystick(0, 100, 0, 0, 300);//下
*/
pushButton(Button::A, 1000, 1);
delay(400);
tiltJoystick(0, -100, 0, 0, 300);//上
delay(400);
//pushHatButton(Hat::DOWN, 200, 1);
pushButton(Button::A, 1300, 1);
delay(400);
pushButton(Button::A, 500, 1);
delay(200);
pushHatButton(Hat::RIGHT, 500);
//tiltJoystick(100, 0, 0, 0, 300);//右
}
pushHatButton(Hat::RIGHT, 200);
delay(800);
//tiltJoystick(100, 0, 0, 0, 300);//右
pushHatButton(Hat::DOWN, 200);
//tiltJoystick(0, 100, 0, 0, 300);//下
delay(800);
}
pushButton(Button::R, 5000);
pushHatButton(Hat::DOWN, 200, 1);
delay(500);
pushHatButton(Hat::DOWN, 200, 1);
delay(500);
//tiltJoystick(0, 100, 0, 0, 300);//下
//tiltJoystick(0, 100, 0, 0, 300);//下
}
}
注意点について
ポケモンスカーレットバイオレットは十字キー入力の受付けが不安定なため、予期せぬ動作に陥ることがあります。
サンプルとなるinoファイルをアップしますが、ダイパリメイク用など余計なコードを削除している都合上もしかしたらエラーがあるかもしれませんので、適宜修正願います。
mode2、ボタン3にてポケモンを逃がすコードが実行されます。
おわりに
色違い国際孵化厳選作業自動化のための、まずは指定ボックス数ポケモンを逃がす作業の自動化について説明しました。
次はピクニックを開き、タマゴパワーを得られるサンドイッチを作り、タマゴを受け取る、流れを指定数繰り返す作業の自動化について解説する予定です。
→「ポケモンスカーレットバイオレット自動化14タマゴ入手自動化」
ポケモン自動化の一連の投稿は、タグやカテゴリか、
各記事へのリンクを貼っている、
をご参照ください。
.inoファイル
こちらのサンプルはアップロードの都合上txtファイルになっていますので、.inoファイルに直してご使用ください。