以下の内容はhttps://tangential-star.hatenablog.jp/entry/Arduino_pokemon_FRLG03_auto_leveling_at_PokemonTowerより取得しました。


【FRLG自動化03】物語中盤レベル上げ【ポケモンタワーであまいかおり】

こんにちは。ますたーです。

 

今回は、FRLG自動化の第3弾として、野生ポケモン戦闘でのレベル上げを自動化しました。

 

なお、Arduino Leonardo自動化の導入・機材構成については導入記事を参考にしてください。

導入記事:【Arduino自動化01】Arduino開発環境の導入

※本ブログに初めてお越しの方は「本ブログについて」もぜひ、ご覧ください。

 

概要

今回は、シオンタウンのポケモンタワー5階で「あまいかおり」による野生エンカウント~ポケモン戦闘~結界を使ったHP/PPの回復を自動化しました。1時間あたり17,900程度の経験値を稼げます*1。これは、2時間程度あればLv30から40程度までレベルアップできる時間効率です。

なお、ゆうれいの正体がわからないと戦闘ができませんので「シルフスコープ」を持っていることが前提となります(先にタマムシシティの攻略が必要です)。

ポケモンタワーで野生ポケモンを倒しまくってレベル上げを行うのだ。
1時間で経験値17,900程度の効率。HP/PPが減ったら結界で回復するぞ

目次です。経験値の効率について詳しくは、3章4章でまとめています。

ソースコードだけ欲しい方は5章をご覧ください。

 

1.ポケモンタワーの5階ではHPとPPが回復できる「結界」がある

シオンタウン北東に位置する7階建てのタワー「ポケモンタワー」は、作中では「ポケモンのおはか」として知られており、2階~7階には祈祷師がいて、ゆうれいがウロウロしているといういわく付きの場所です。その5階の中央にはポケモンのHPやPPを回復してくれる「結界」が祈祷師の手によって張られています。

ポケモンのレベル上げを行う際に、戦ってすぐにHPやPPを回復できるこの結界の存在は非常に心強いです。

ポケモンタワーの5階中央には結界が張ってある。
足を踏み入れるだけで手持ちポケモン全員を全回復できるのだ

 

2.ポケモンタワーで戦闘を行うためには「シルフスコープ」が必要

さて、ポケモンタワーでレベル上げを行うためには、当然戦闘を行う必要があるのですが、実はイワヤマトンネルを抜けてシオンタウンに到着した時点では、野生ポケモンと戦闘を行うことができません。より厳密には、野生ポケモンとのエンカウントすると、ポケモンではなく「ゆうれい」が登場しますが、手持ちポケモンが怖がってしまい、わざを繰り出すことができないのです。また、モンスターボールを投げても避けられるため、捕まえることもできません。

シルフスコープが無いと「ゆうれい」の正体がわからず戦闘にならないのだ。
先にタマムシシティのゲームコーナーに行って、ロケット団のアジトを攻略しよう

「ゆうれい」の状態ではレベル上げどころか、戦闘すらままなりませんから、まずは、ゆうれいの正体を暴くことができるアイテム「シルフスコープ」を手に入れる必要があります。

シルフスコープは、タマムシシティのゲームコーナーの地下にあるロケットだんのアジトにあるので、まずはここを攻略しておきましょう

ロケットゲームコーナーのポスターの裏には、秘密のスイッチが…!
ロケットだんのボス・サカキに勝てば「シルフスコープ」を貰えるぞ

 

3.ポケモンタワーのレベル上げ効率は1時間あたり約17,900経験値

さて、ロケットだんアジトを攻略し、シルフスコープを持っている状態でポケモンタワーに行くと、「ゆうれい」の正体が掴めるようになり、ゴース・ゴースト・カラカラを認知できるようになります。すなわち、通常通り戦闘を行うことができます。

ポケモンタワーの5階では、ゴース(Lv13~19)が86%、ゴースト(Lv20)が5%、カラカラ(Lv15, Lv17)が9%の確率で出現します。また、ゴースから獲得できる経験値は平均216.71、ゴーストから獲得できる経験値は360、カラカラは平均198.5ですから、1戦あたりの獲得経験値の期待値は「222.24」になります。ここで、筆者の実測値として、56分38秒で76回の戦闘を行うことができました。これは、1時間あたりの戦闘回数に換算すると80.51回に相当します。

すなわち、ポケモンタワー5階における1時間あたりの獲得経験値の効率は、約17,900と計算できます。この計算を図にしたのが下記です。

ポケモンタワー5階で、1時間戦闘を続けると、約17,900経験値を稼ぐことができるのだ

 

4.ポケモンのレベルアップに必要な経験値の一覧表

レベルアップに必要な経験値はポケモンの種類ごとに異なり、その成長の早さの違いで6タイプに分類できます。

実はFRLGでシナリオ中に登場するポケモン(いわゆる第1世代のポケモン)は「80万タイプ」「100万タイプ」「105万タイプ」「125万タイプ」の4種類しかありません

例えば、キャタピーやピカチュウなどの序盤のポケモンは「100万タイプ」、ヒトカゲなどの御三家やポッポ、ニドランなどのほとんどのポケモンは「105万タイプ」に属します。ミュウツーやミニリュウなどの終盤で入手できるポケモンは「125万タイプ」など、おおよそ直感的にわかりやすく分類されています*2

さて、レベルアップに必要な経験値を、タイプごとの表にまとめたのが下記です

ポケモンの種類別(経験値タイプ別)での必要経験値を一覧表にまとめた
FRLGのストーリー攻略で出会える4タイプの平均(表の右端)に注目すると使いやすいぞ

先述の通り、FRLGのストーリー攻略時点では、80万タイプ~125万タイプの4種類しか登場しませんから、レベルごとに平均値を取れば、ある程度の傾向が読み取れます。そこで、図表の右端に、経験値4タイプの平均値を掲載しておきました

この表から、Lv20~30で18,563Lv30~36で19,549Lv36~40で17,388の経験値が必要だと読み取ることができます。前章にて、ポケモンタワー5階における「1時間あたりの獲得経験値は約17,900」と計算しましたが、これはつまり、2時間程度あれば、Lv30から40程度までレベルアップできる時間効率だと言い換えることができます。

 

5.ソースコード

今回は、シオンタウン北東の「ポケモンタワー」の5階中央・結界のそばで「あまいかおり」を使ってエンカウントしたポケモンを倒すことで経験値を稼ぎ続ける、いわゆる「放置レベル上げ」を実装しました。

5-1.事前準備

事前準備として、手持ちの先頭ポケモン(レベルを上げたいポケモン)は、わざの1番目は、絶対にノーマル・かくとう・でんき・じめん以外の攻撃技にしてください。また、命中率は100または必中のわざにしましょう。

さらに、野生ポケモンとの確実なエンカウントを実現するために、手持ちに「あまいかおり」が使えるポケモンを加えておきます。このポケモンには、他のフィールドわざを覚えさせないように注意しましょう。

また、「せってい」でボタンモードは「LR」にしておきましょう。

そして、「ポケモン」にカーソルをあわせた状態で、メニューを閉じてから、ポケモンタワーの5階の結界のすぐ下のマスに立ってください

手持ち1番目のポケモンの1つ目のわざは命中100の「攻撃技」にしておこう。
なお、カラカラ・ゴース・ゴーストを倒せるわざタイプにすることをお忘れなく
「あまいかおり」が使えるポケモンを手持ちに加え、ボタンモードはLRにしておこう
「ポケモン」にカーソルがある状態でメニューを閉じて準備完了だ!

続いて、プログラムのソースコードを修正します。

具体的には、41行目・44行目・47行目・50行目の数字を、環境に合わせて修正します。「『あまいかおり』が使えるポケモンが何番目か」「手持ちポケモンが何匹か」「戦闘開始~レベルアップ(技覚えや進化を含む)にかかるA連打に何秒かかるか」「結界でHP/PPを回復するまで何回連続で戦闘を行うか」をそれぞれ数字で入力してください。

// ★「あまいかおり」を覚えたポケモンが手持ちの何匹目かを指定↓
const int AMAI_KAORI = (3);  // 手持ち先頭:「1」~ 最後尾:「6」

// ★手持ちポケモンが何匹いるかを指定↓
const int TEMOCHI_NUM = (6); // 手持ちポケモンが6匹なら「6」

// ★A連打する時間(秒)※連打時間
const long int A_RENDA_TIME = (30); // レベルアップの時間などを含め、「十分に長い時間」を指定してください。

// ★回復までの試行回数(何回戦闘を行い、回復を行うか)
const int REPEAT_TIME = (2); // 必ずワンパンできるなら、使う1番目のわざのPPを上限に。

 

5-2.ソースコード全文

下記がソースコードの全文です。ソースコードの冒頭の注意事項もよく読んで利用してください。なお、「シルフスコープ」を所持している前提ですので、まだシナリオが進んでいない人はそこまで進めてください。

/*  FRLG シオンタウン「あまいかおり」で自動放置レベル上げ developed by ますたー(@tangential_star)
 *   
 *   【説明】
 *   「あまいかおり」を使って野生ポケモンと出会います。
 *   A連打で戦闘を終わらせます。49行目に指定した試行数をすぎると、一度結界の中に入って回復し、これを繰り返します
 *   ★進化のタイミングや、レベルアップによってわざを忘れる(上書きする)可能性などがあります。責任は取れません。FRLGでは「わざおもいだし」は「2のしま」です。
 *   ★A連打で戦闘が終わる前提でループします。十分に長い時間のA連打時間を指定するようにお願いします。
 *   
 *   【準備】
 *   ・シオンタウンのポケモンタワー5Fの「結界があるところ」に入り、結界のすぐ1歩下に立ちます。
 *   ・レベル上げしたい先頭ポケモンは、命中率が100%のもので、野生ポケモンに対して十分に火力のあるわざを1番目にセットしてください。
 *   (出現する野生ポケモンは、ゴース・ゴースト・カラカラです。ノーマルタイプやでんきタイプのわざは不適です)
 *   ・先頭ポケモンは、1番目のわざを使う仕様です。したがって、レベルアップなどで1番目のわざが変わる可能性があるため、長時間の放置は行わず、目を離さないようにしてください。
 *   ・先頭ポケモンは、戦闘開始時に「とくせい」が発生しないポケモンにしてください。
 *   ・「あまいかおり」が使えるポケモンは、フィールドで使える他のわざ(フラッシュ・いあいぎりなど)を覚えさせないようにしてください。
 *   ・「X」でメニューを開いて「ポケモン」にカーソルを合う状態にしてメニューを閉じます【重要】
 *   ・「せってい」から「せんとうアニメ」を「みない」にしておく。
 *   ・「せってい」から「話のはやさ」を「はやい」にしておく。
 *   ・「せってい」から「ボタンモード」を「LR」または「ヘルプ」にする ※「かたて」にしない【重要】
 *   ・ソース41行目の「AMAI_KAORI」の数字に「あまいかおり」を覚えた手持ちポケモンが何匹目かを入力
 *   (手持ちの先頭なら「1」、最後尾なら「6」を入力)
 *   ・ソース44行目の「TEMOCHI_NUM」に手持ちの数を入力。
 *   (手持ちの数が6匹全部埋まっていたら「6」,3匹なら「3」など)
 *   ・ソース47行目の「A_RENDA_TIME」に、戦闘開始~フィールドに戻るまでのA連打の時間(単位:秒)を入力。
 *   (例えば15秒なら15、30秒なら30など)
 *   ・ソース50行目の「REPEAT_TIME」に、HP/PP回復までの試行回数を記入。
 *   (例えば2回なら2など)
 *   
 *   ★Switch2でしか動作確認していません。必要に応じて、待機時間などを調整してください。
 *  (c) 2026 ますたーの忘備録
 *  https://tangential-star.hatenablog.jp/
 */

#include <SwitchControlLibrary.h>
#define HOLDTIME (95) // 1回のキー入力の長押し時間
#define SWITCH_VER (20)

// ★★★ここを書き換える↓★★★

// ★「あまいかおり」を覚えたポケモンが手持ちの何匹目かを指定↓
const int AMAI_KAORI = (3);  // 手持ち先頭:「1」~ 最後尾:「6」

// ★手持ちポケモンが何匹いるかを指定↓
const int TEMOCHI_NUM = (6); // 手持ちポケモンが6匹なら「6」

// ★A連打する時間(秒)※連打時間
const long int A_RENDA_TIME = (30); // レベルアップの時間などを含め、「十分に長い時間」を指定してください。

// ★回復までの試行回数(何回戦闘を行い、回復を行うか)
const int REPEAT_TIME = (2); // 必ずワンパンできるなら、使う1番目のわざのPPを上限に。

// ★★★ここを書き換える↑★★★

// ボタン押しラッパー関数
int PushKey(char* keyname, int holdtime, int delaytime);
void TiltLeftStick(int direction_deg, double power, int holdtime, int delaytime);
void TiltRightStick(int direction_deg, double power, int holdtime, int delaytime);
void renda(char* key ,long int time_to_press_repeatedly);

void setup() {
  for(int i=0;i<3;i++)PushKey("B", HOLDTIME, 300); // Bボタンを3回押してSwitchに認識されるのを待つ
  PushKey("B", HOLDTIME, 300); // Bを押しておく。
  delay(1000);
}

// 草むらの上などでスタート
void loop() {

  for(int i = 0; i < REPEAT_TIME ; i++){
    // ■フィールドで「あまいかおり」を使う
    useSweetScent(AMAI_KAORI);
    // あまいかおり エフェクト~「あ! やせいの ●●が とびだしてきた!▼」まで待機
    delay(9300);
  
    // ■戦闘に入る
    renda("A", A_RENDA_TIME);  
    // フィールドに戻る
  }

  PushKey("up",600, 1800); // ↑
  PushKey("A",HOLDTIME, 700); // せいなる いのりに まもられた けっかいへ はいった!▼
  PushKey("A",HOLDTIME, 700); // ますたーと ポケモンは ひと やすみして げんきに なった!
  PushKey("down",600, 200); // ↓
 
}


int useSweetScent(int who_can_use){
  if(who_can_use <= 0 || who_can_use > 6) return 0;
  int lpcnt;
  PushKey("X",HOLDTIME, 800); // ★メニューを開く
  PushKey("A",HOLDTIME, 1600); // ★「ポケモン」を開く
  // ★カーソルをあわせる(上入力を必ず入れておきたいので逆順で処理)
  for(lpcnt = (TEMOCHI_NUM+2); lpcnt > who_can_use ; lpcnt-- ){ 
    PushKey("Up",HOLDTIME, 100); // ↑を押しまくる
  }
  PushKey("A",HOLDTIME,    500); // ★→つよさをみる
  PushKey("Down",HOLDTIME, 400); // ★→あまいかおり
  PushKey("A",HOLDTIME,    10); // ★(あまいかおりを使う)
  return lpcnt;
}


int PushKey(char* keyname, int holdtime, int delaytime){
  // ホームボタン・方向キーはRight, Left, Up, Down, Homeなど2文字以上で入力。
  // その他ボタン入力は1文字(A,B,X,Y,R,L,+,-)ZR・ZLにも対応
  // 同時押しは非対応
  
  if(strlen(keyname)==1){
    switch(keyname[0]){
      case 'A': case 'a': // A
        SwitchControlLibrary().PressButtonA(); delay(holdtime);
        if(holdtime>0)SwitchControlLibrary().ReleaseButtonA(); delay(delaytime);
      break;
      case 'B': case 'b': // B
        SwitchControlLibrary().PressButtonB(); delay(holdtime);
        if(holdtime>0)SwitchControlLibrary().ReleaseButtonB(); delay(delaytime);
      break;
      case 'X': case 'x': // X
        SwitchControlLibrary().PressButtonX(); delay(holdtime);
        if(holdtime>0)SwitchControlLibrary().ReleaseButtonX(); delay(delaytime);
      break;
      case 'Y': case 'y': // Y
        SwitchControlLibrary().PressButtonY(); delay(holdtime);
        if(holdtime>0)SwitchControlLibrary().ReleaseButtonY(); delay(delaytime);
      break;
      case 'L': case 'l': // L
        SwitchControlLibrary().PressButtonL(); delay(holdtime);
        if(holdtime>0)SwitchControlLibrary().ReleaseButtonL(); delay(delaytime);
      break;
      case 'R': case 'r': // R
        SwitchControlLibrary().PressButtonR(); delay(holdtime);
        if(holdtime>0)SwitchControlLibrary().ReleaseButtonR(); delay(delaytime);
      break;
      case 'H': case 'h': // Home
        SwitchControlLibrary().PressButtonHome(); delay(holdtime);
        if(holdtime>0)SwitchControlLibrary().ReleaseButtonHome(); delay(delaytime);
      break;
      case '+': case 'p': case 'P': // Plus
        SwitchControlLibrary().PressButtonPlus(); delay(holdtime);
        if(holdtime>0)SwitchControlLibrary().ReleaseButtonPlus(); delay(delaytime);
      break;
      case '-': case 'm': case 'M': // Minus
        SwitchControlLibrary().PressButtonMinus(); delay(holdtime);
        if(holdtime>0)SwitchControlLibrary().ReleaseButtonMinus(); delay(delaytime);
      break;
      default:
      break;
    }
  }else if(strlen(keyname)>=2){
    switch(keyname[0]){
      case 'z': case 'Z': // ZR/ZL
        if(keyname[1]=='R'||keyname[1]=='r'){
          SwitchControlLibrary().PressButtonZR(); delay(holdtime);
          if(holdtime>0)SwitchControlLibrary().ReleaseButtonZR(); delay(delaytime);
        }
        if(keyname[1]=='L'||keyname[1]=='l'){
          SwitchControlLibrary().PressButtonZL(); delay(holdtime);
          if(holdtime>0)SwitchControlLibrary().ReleaseButtonZL(); delay(delaytime);
        }
      break;
      case 'r': case 'R': // right
        SwitchControlLibrary().MoveHat(2); delay(holdtime);
        if(holdtime>0)SwitchControlLibrary().MoveHat(8); delay(delaytime);
      break;
      case 'l': case 'L': // left
        SwitchControlLibrary().MoveHat(6); delay(holdtime);
        if(holdtime>0)SwitchControlLibrary().MoveHat(8); delay(delaytime);
      break;
      case 'u': case 'U': // up
        SwitchControlLibrary().MoveHat(0); delay(holdtime);
        if(holdtime>0)SwitchControlLibrary().MoveHat(8); delay(delaytime);
      break;
      case 'd': case 'D': // down
        SwitchControlLibrary().MoveHat(4); delay(holdtime);
        if(holdtime>0)SwitchControlLibrary().MoveHat(8); delay(delaytime);
      break;
      case 'H': case 'h': // Home
        SwitchControlLibrary().PressButtonHome(); delay(holdtime);
        if(holdtime>0)SwitchControlLibrary().ReleaseButtonHome(); delay(delaytime);
      default:
      break;  
    }
  }else{
    return -1;
  }
  return strlen(keyname);
}

void TiltLeftStick(int direction_deg, double power, int holdtime, int delaytime){
  double rad = (double)direction_deg*PI/180.0; // 弧度法(ラジアン)変換
  int x, y;
  x = (double)128*sin(rad)*power;
  y = (double)-128*cos(rad)*power;
  x += 128; y += 128;
  if(x >= 255) x=255; if(x <= 0) x=0;
  if(y >= 255) y=255; if(y <= 0) y=0;

  SwitchControlLibrary().MoveLeftStick(x,y);
  if(holdtime> 0){ // holdtime=0のときは押しっぱなし。
    delay(holdtime);
    SwitchControlLibrary().MoveLeftStick(128,128); // 傾きを直す
  }
  if(delaytime>0) delay(delaytime);
  return;
}

void TiltRightStick(int direction_deg, double power, int holdtime, int delaytime){
  double rad = (double)direction_deg*PI/180.0; // 弧度法(ラジアン)変換
  int x, y;
  x = (double)128*sin(rad)*power;
  y = (double)-128*cos(rad)*power;
  x += 128; y += 128;
  if(x >= 255) x=255; if(x <= 0) x=0;
  if(y >= 255) y=255; if(y <= 0) y=0;

  SwitchControlLibrary().MoveRightStick(x,y);
  if(holdtime> 0){ // holdtime=0のときは押しっぱなし。
    delay(holdtime);
    SwitchControlLibrary().MoveRightStick(128,128); // 傾きを直す
  }
  if(delaytime>0) delay(delaytime);
  return;
}

void renda(char* key ,long int time_to_press_repeatedly){
  unsigned long int current_time=0;
  unsigned long int start_time=0;

  // 決められた時間ずっとA連打
  for( start_time=millis(), current_time=start_time ; current_time - start_time < (unsigned long)time_to_press_repeatedly*1000UL ; current_time=millis() ){
    PushKey(key, 50, 50); // ひたすら連打
  } 
  return;
}

 

6.動作確認

6-1.放置でレベル上げを実現

無事に放置してレベル上げを実現できました。今やゲームコーナーでLv24で手に入れたミニリュウは、Lv55のカイリューになりました。

放置してどんどんレベルが上がっていくのは、見ていて楽しい。
ゴース・ゴーストは「とくこう」の努力値が溜まるので、知らないうちに極振りになる

ちなみに、手持ちのレベルが低い間は1発で倒しきれず、相手の攻撃や「のろい」で体力が減ってしまうので、プログラム中の「REPEAT_TIME」を「2」にして、2回ごとに結界に入るようにしていました。ある程度レベルが上がってきたら、「REPEAT_TIME」を「7」にしてより効率的に周回を行うようにプログラムを利用しました。

皆様も、適宜プログラムの数字を書き換えて使ってみてくださいね

手持ちのレベルが低く、相手を一撃で倒せない間は、こまめにHP/PPを回復しよう。
筆者はレベル24~33までは、「2回ごと」に結界に入るようにしていた。
レベル34以降は確1で相手を倒せるようになったので「7回ごと」に変更したぞ

 

6-2.攻撃技以外を覚えるレベルに注意!

さて、このブログ記事を書きながら、筆者も無事に自動で放置レベル上げを実行していましたが、その途中、ハクリューがLv38に到達した時に「こうそくいどう」を習得するために1番目の攻撃技「たつまき」を忘れてしてしまう事故が発生しました。

当然、このプログラムはA連打で戦闘を終わらせるシンプルなものですから、1番目のわざの上書きも、次の戦いも止まらずに進行してしまいます。私はまだ「2のしま」には到達しておらず「わざおもいだし」もできないため、シナリオ攻略上、ここで「たつまき」を失うのはかなりの痛手になるため、やむなくリセットをしました。

何が言いたいかというと、このプログラムを使って放置する場合は、レベルアップに寄って発生する「進化」や「わざ覚え」のタイミングを見計らって、手動に切り替える必要がある、ということです。

なので、長時間放置する場合には、次のわざを覚えるレベルをあらかじめ調べておき、そのレベルの手前でプログラムを止められるようにある程度時間を読んで放置するようにしましょう

ハクリューがLv38で「こうそくいどう」を習得し、1番目のわざを上書きする事故が発生。
それ以降はA連打では相手ポケモンを倒せないので、ループが破綻してしまうのだ

 

7.あとがき

いやぁ~!ついに!レベル上げの自動化を組みました!

我ながらグッジョブです。ストーリーを進める上で、レベル上げが一番の苦痛でしたが、今ではバッジ4個(タマムシシティを攻略直後)でありながら、ピジョットがLv.75、カイリューがLv.55までほぼ放置で育てることができました

これで安心してシナリオを進めることができます。

バッジ4つでありながら、手持ちの先頭・ピジョットはLv75なのだ

個人的に、3月中にまさか3回もブログ更新するとは思いませんでした…!本当にFRLGって楽しいですね…!というか、個人的にGBA時代の操作を自動化ができるのはインスピレーションが湧きます。

ところが、仕事もプライベートもめちゃくちゃ忙しく、ゲームで遊ぶ時間がなかなか取れない中で、Switch2を置き去りにすることも多く、こういう放置系の自動化は我ながらありがたいです。

先月に引っ越してPC環境どころか、家の環境もまだまだ整っていない中で、優先順位をつけてゲームをしたりブログを書いたり自動化をしたり、合間を縫ってなんとか生活できています。

とは言え、やっぱり「趣味」としてこういう生活が続けられているのは、我ながら本当に楽しいですので、マイペースながらも、これからも続けていけたらなと思います。

皆様も温かく見守っていただければ幸いです。

ちなみに!皆様の成功報告や拡散は今でもすごく励みになっていますので、よければ拡散やコメントで応援してもらえると嬉しいです。

 

ではではc⌒っ.ω.)っ

 

 

前回の記事:【FRLG自動化02】野生ポケモン色違い厳選【あまいかおり】


--

本ブログについて:本ブログについて

 

Arduino導入記事:【Arduino自動化01】Arduino開発環境の導入

ポケモン剣盾の記事:ポケモン剣盾Arduino自動化 カテゴリーの記事一覧

ポケモンBDSPの記事:ダイパリメイクArduino自動化 カテゴリーの記事一覧

レジェンズアルセウスの記事:レジェンズアルセウスArduino自動化 カテゴリーの記事一覧

スカーレット・バイオレットの記事:スカーレットバイオレットArduino自動化 カテゴリーの記事一覧

レジェンズZ-Aの記事:レジェンズZA自動化 カテゴリーの記事一覧

ポケモンFRLGの記事:ポケモンFRLG自動化 カテゴリーの記事一覧

 

YouTubeチャンネル:ますたーの忘備録 - YouTube

www.youtube.com

 

 

*1:1時間あたり17,900経験値:筆者実績値から期待値を算出。ポケモンタワー5階での1試行あたりの経験値期待値が222.24で、56分38秒で76試行より。詳細は3章を参照のこと

*2:余談ですが、「80万タイプ」のポケモンは、第1世代だとピッピ・プリン・ラッキーだけなので、ほぼ3タイプに分類できますね




以上の内容はhttps://tangential-star.hatenablog.jp/entry/Arduino_pokemon_FRLG03_auto_leveling_at_PokemonTowerより取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14