桃鉄の思考の手引き version 1
桃鉄の思考の手引き
# 桃鉄の思考の手引き
この長い長い長い記事はプログラマーのオススメのゲームの話をする Advent Calendar 2019の12/13の記事です。
1988年から(休止などを挟みつつも)続いており、シリーズの累計出荷本数も1200万本を超えているというボードゲームのシリーズ「桃太郎電鉄」、きっとご存知の方も多いのではないでしょうか。
最新作「桃太郎電鉄2017」が約3年前に出され、来年には「桃太郎電鉄〜昭和、平成、令和も定番!〜」も控えているこの有名シリーズを、"プログラマ的観点から"ご紹介します。
ルールなどは[Wikipedia](https://ja.wikipedia.org/wiki/%E6%A1%83%E5%A4%AA%E9%83%8E%E9%9B%BB%E9%89%84%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA#%E5%9F%BA%E6%9C%AC%E3%83%AB%E3%83%BC%E3%83%AB)等々にありますので、そちらをご覧いただくとして、今回は攻略法につながる思考に重点を置いて記載します。
攻略法といっても、巷間に出回っている「貧乏神に取りつかれないように動く」だの「冬の赤マスN回以上の持ち金をキープ(Nはシリーズによって変わる)」だのといった基礎的な各論は、そちらにお任せします。
## 対コンピュータ戦の手引き
桃鉄のコンピュータは、「思考ルーチンがゲームシステムに追い付いていない」とWikipediaにも書かれており、基本的にはあまり強くありません。
強いとされるルーチンは、概ね「乱数先読み・乱数調整が公言されている」「絶好調の性能を人間に比べて強くする」という調整になっています。つまり、ルーチンの強さでは追いつけないことを表明しているようなものです。
コンピュータに勝つための糸口はあちこちありますが、まずはシリーズ全体を通してみた上で概ね次のような性格付けにより強弱が表現されています。
* 最強クラスのルーチンには先の通り乱数の先読みや調整が行われ、絶好調の特典が大きい。
* 1段落ちるルーチンでは、乱数の先読みや調整を行わず、比較的堅実にゴールを目指してくる。ルーチン自体は最強クラスと変わらない。
* さらに1段落ち、上級者向けのギリギリといわれるレベルになると、上記ルーチンに行動制限が入ってくる。貧乏神を過度に気にする、攻撃系カードを使わないなど。
* 中級者レベルのルーチンは伏兵として厄介。特定カードを使ってきたり、絶好調で妨害等の行動をしてくるルーチンは概ねここに属する。妨害によるかき回しをランダムに行うため、最強ルーチン3人戦より最強2人+中級妨害ルーチン1人戦の方が与しにくい(妨害以外のルーチンが弱く、このパターンの場合最強2人どちらかが漁夫の利で勝ってくるケースがほとんど)
* 中級手前ぐらいのレベルの場合、物件購入に制限(というほどでもない特徴の場合も多いが…)がついていることが多い。とはいえ、イベント物件や高収入物件を狙うルーチンではないため、基礎を築けずに破綻しがちである。
* 初級レベルのルーチンにはリスクヘッジという概念がない。このため、自滅するケースがほとんどである。
* 最弱レベルのルーチンは、そもそも戦略という概念がない。自滅とかいう以前に勝ちに行こうという気が見えないといってよい。
この特徴から、攻略法として手引きが必要なのは概ね上級者レベルのルーチンのみで、中級者レベルはゲームのかき回し役、それ以下は憂さ晴らし役といって差し支えないでしょう。
中級者以下のレベルは取るべき行動にランダム性が入るために突発的にかき回す楽しみこそあれど、ゲーム全体で見て勝負で競う楽しみとなることは稀だからです。
上級ルーチンを押さえるうえでのポイントは
* 乱数以外の先読みをしない。
* 人の手を読んでこない。
* 感情的な手を使わない。
* これらの状況で概ね1位かすぐ上の順位の人を攻撃対象に選ぶ。
といった、ルーチンの癖です。これを読むのが上級ルーチン攻略のコツです。
例えば「青森目的地で旭川周辺にいるとき、青函トンネル周辺を封鎖すると立ち往生する」「銀河鉄道で目的地1マス手前なら、妨害やイベントの影響がない限り次のターン到着することを確実とみてよい」「自分が2位でコンピュータが4位なので持ち金ゼロカードをを自分には使ってこない」と行動を予測できるのです。
行動を予測した上で次の一手が決められるので、カードの浪費などを防いでプレイすることができます。
問題は絶好調。このシステムが導入されている作品の場合、上級ルーチンの絶好調は大抵人間のそれより強力です。最強ルーチンの場合はこれが思い切り強力なので、為す術もない場合もままあります。
これはもう「運」の部分の問題なので、下手に相手して浪費するよりは、放置して浪費なしにしのぎ切るほうが良いです。特に、後に時間がある場合は、先の読みで確実に勝ちに行けます。
時間がない場合、とれる対策は限られます。地力で追うと確実に競り負けますので、追ってはいけません(傷が広がるだけ)。有効な一手が取れる場合に限りその一手をとり、抑え込むことよりカードか物件を優先しましょう。(とじこめ、行動封じ、絶好調崩しなどが有効な一手ですが、条件はそろいにくい)
上級ルーチンの場合、条件分岐が複雑になるような「先」は実装できないと、プログラマの方ならお判りでしょう。ここが漬け込むスキになります。どんなルーチンなのか、想像してみることが勝利への一歩です。
## 対人戦の手引き(と共通項)
さて、対人戦です。対人戦の桃鉄は対コンピュータ戦と比較にならないほど難しいです。とはいえ、ゲームは楽しくやるもの、別にここで鬼の形相になる必要はありません。
毎日が桃太郎電鉄のような平和な日々でありますように…というのは、桃鉄のスタッフロールの決まり文句ですが、まさにこの通りで、あまり感情的にきついことをやってはいけません。
私自身も、これを心掛けている結果「平和の意味を取り違えているような見るも凄惨な戦場と化した桃鉄」と評していただきつつ、いつでもプレイできています。
…本題、桃鉄対人戦(とコンピュータにも共通する)の手引きですが、古く、徒然草110段にその記述があります。
> 双六の上手といひし人に、その手立てを問ひ侍りしかば、
> 「勝たんと打つべからず、負けじと打つべきなり。いづれの手か疾く負けぬべきと案じて、
> その手を使はずして、一目なりともおそく負くべき手につくべし」といふ。
要約すると「勝とうと打つのではなく、負けまいと打て。早く負けそうな手を検討し、それをすべて除外して一手でも遅く負ける手を選べ。」と言うことです。これは、桃鉄における手を選ぶ際の評価関数の作り方を示しています。
桃鉄で自分が取れる行動は手持ちのカードを使うかサイコロを振るかです。したがって、検討すべき手の数はさほど多くありません。しかし、一手を選ぶのに検討すべき情報の量は多いのです。
桃鉄の対人戦で勝ちに行くなら、次のような点は押さえておくべきです。
* 主要なイベントの発生条件
* 他プレイヤーの全カード(一部貧乏神の悪行に備えて順番も)
* 他プレイヤーの押さえている主要なイベント物件
* 他プレイヤーの押さえている主要な独占駅
* 他プレイヤーの位置及び目的地からの距離
* 貧乏神からの距離
これらが手を検討するときに使う基礎情報となります。基礎情報から考えられる手を評価します。といっても、ランダム性があるので、期待値(厳密でなくておおざっぱでいい)を使って評価します。特急カードなら10〜11が出る前提、もしかしたらカードなら1/16で到着できる前提…といった具合です。
また、カードの価格なども注意しましょう。4回使った急行周遊カードがあり、カード売り場に行けるなら売って買いなおすなり急行カードにするなりした方がおいしいです。これらを踏まえて、次の順に考えます。
1. まず、リスクヘッジを考える。リスクが大きくなる手はできるだけ減らす。この場合のリスクは、2〜3手先までを評価するのが望ましい。
2. リスク最小の手の中でベネフィット最大化できる手を基本に選ぶ。
3. ここまでの条件の中でさらに手が拮抗する場合、他プレイヤーに与える損害が最大になる手を選ぶ。
この順番を崩すことが勝ちにつながるケースというのは多くはありませんが、感情などで順番が入れ替わることもありますので、「サブシナリオ」として頭の中にとどめておくと良いでしょう。
さて、上記の手順で手1つ1つの手はできるのですが、まだ再評価を行います。
目先のプレイヤー(自分の手の評価を自分の番が来てからやっているとは限らない)から順に上記の条件で手を決めたとき(余裕があればサブシナリオまで考えておく)、リスクなどが変わることはないか、ということです。
これにより、必要に応じて(優先順位をかえず)手の再検討を行い、良さそうな一手を定めます。
勿論、期待値で考える以上、自他ともに、キングボンビーをぴったり擦り付けられた、ホールインワンされた…などのイレギュラーは起こりえます。しかし、イレギュラーの確率は、相手が次善以下の手を取る確率より低いとみなせるでしょう(みなせないほどなら、リスクヘッジが不十分)。
イレギュラーの時は改めて先の手順で手を更新する必要があるだけで、そうでなければ常に2手・3手先まで定めてプレイすることができます。他プレイヤーの手番は、休み時間ではなく、そのプレイヤーの動きを見ながら自分の次の数手を定めるための検討時間なのです。
この思考になれれば、強力な手をノータイムで繰り出し続けるような、そんなプレイスタイルが標準になることでしょう。(そして、そのレベルの人同士の対戦は、テンポが素晴らしく、楽しめる対戦となることでしょう。)
## おわりに…
桃鉄で勝つための思考についてざっと書いてきました。文章に起こすと結構難しいなと思いながら追いかけた、自分の思考過程でした。
でも、大事なことは、「楽しくワイワイとやること」です。こんな思考のために面白くなってしまうような桃鉄はいけません。
存分に楽しんで、その中で勝ちたいときに、この思考を意識してみてください。そうなってくれば、強くもなりますし、きっとこういえるでしょう。
「桃鉄大好き!」
桃鉄の思考の手引き
この長い長い長い記事はプログラマーのオススメのゲームの話をする Advent Calendar 2019の12/13の記事です。
1988年から(休止などを挟みつつも)続いており、シリーズの累計出荷本数も1200万本を超えているというボードゲームのシリーズ「桃太郎電鉄」、きっとご存知の方も多いのではないでしょうか。
最新作「桃太郎電鉄2017」が約3年前に出され、来年には「桃太郎電鉄〜昭和、平成、令和も定番!〜」も控えているこの有名シリーズを、"プログラマ的観点から"ご紹介します。
ルールなどはWikipedia等々にありますので、そちらをご覧いただくとして、今回は攻略法につながる思考に重点を置いて記載します。
攻略法といっても、巷間に出回っている「貧乏神に取りつかれないように動く」だの「冬の赤マスN回以上の持ち金をキープ(Nはシリーズによって変わる)」だのといった基礎的な各論は、そちらにお任せします。
対コンピュータ戦の手引き
桃鉄のコンピュータは、「思考ルーチンがゲームシステムに追い付いていない」とWikipediaにも書かれており、基本的にはあまり強くありません。
強いとされるルーチンは、概ね「乱数先読み・乱数調整が公言されている」「絶好調の性能を人間に比べて強くする」という調整になっています。つまり、ルーチンの強さでは追いつけないことを表明しているようなものです。
コンピュータに勝つための糸口はあちこちありますが、まずはシリーズ全体を通してみた上で概ね次のような性格付けにより強弱が表現されています。
- 最強クラスのルーチンには先の通り乱数の先読みや調整が行われ、絶好調の特典が大きい。
- 1段落ちるルーチンでは、乱数の先読みや調整を行わず、比較的堅実にゴールを目指してくる。ルーチン自体は最強クラスと変わらない。
- さらに1段落ち、上級者向けのギリギリといわれるレベルになると、上記ルーチンに行動制限が入ってくる。貧乏神を過度に気にする、攻撃系カードを使わないなど。
- 中級者レベルのルーチンは伏兵として厄介。特定カードを使ってきたり、絶好調で妨害等の行動をしてくるルーチンは概ねここに属する。妨害によるかき回しをランダムに行うため、最強ルーチン3人戦より最強2人+中級妨害ルーチン1人戦の方が与しにくい(妨害以外のルーチンが弱く、このパターンの場合最強2人どちらかが漁夫の利で勝ってくるケースがほとんど)
- 中級手前ぐらいのレベルの場合、物件購入に制限(というほどでもない特徴の場合も多いが…)がついていることが多い。とはいえ、イベント物件や高収入物件を狙うルーチンではないため、基礎を築けずに破綻しがちである。
- 初級レベルのルーチンにはリスクヘッジという概念がない。このため、自滅するケースがほとんどである。
- 最弱レベルのルーチンは、そもそも戦略という概念がない。自滅とかいう以前に勝ちに行こうという気が見えないといってよい。
この特徴から、攻略法として手引きが必要なのは概ね上級者レベルのルーチンのみで、中級者レベルはゲームのかき回し役、それ以下は憂さ晴らし役といって差し支えないでしょう。
中級者以下のレベルは取るべき行動にランダム性が入るために突発的にかき回す楽しみこそあれど、ゲーム全体で見て勝負で競う楽しみとなることは稀だからです。
上級ルーチンを押さえるうえでのポイントは
- 乱数以外の先読みをしない。
- 人の手を読んでこない。
- 感情的な手を使わない。
- これらの状況で概ね1位かすぐ上の順位の人を攻撃対象に選ぶ。
といった、ルーチンの癖です。これを読むのが上級ルーチン攻略のコツです。
例えば「青森目的地で旭川周辺にいるとき、青函トンネル周辺を封鎖すると立ち往生する」「銀河鉄道で目的地1マス手前なら、妨害やイベントの影響がない限り次のターン到着することを確実とみてよい」「自分が2位でコンピュータが4位なので持ち金ゼロカードをを自分には使ってこない」と行動を予測できるのです。
行動を予測した上で次の一手が決められるので、カードの浪費などを防いでプレイすることができます。
問題は絶好調。このシステムが導入されている作品の場合、上級ルーチンの絶好調は大抵人間のそれより強力です。最強ルーチンの場合はこれが思い切り強力なので、為す術もない場合もままあります。
これはもう「運」の部分の問題なので、下手に相手して浪費するよりは、放置して浪費なしにしのぎ切るほうが良いです。特に、後に時間がある場合は、先の読みで確実に勝ちに行けます。
時間がない場合、とれる対策は限られます。地力で追うと確実に競り負けますので、追ってはいけません(傷が広がるだけ)。有効な一手が取れる場合に限りその一手をとり、抑え込むことよりカードか物件を優先しましょう。(とじこめ、行動封じ、絶好調崩しなどが有効な一手ですが、条件はそろいにくい)
上級ルーチンの場合、条件分岐が複雑になるような「先」は実装できないと、プログラマの方ならお判りでしょう。ここが漬け込むスキになります。どんなルーチンなのか、想像してみることが勝利への一歩です。
対人戦の手引き(と共通項)
さて、対人戦です。対人戦の桃鉄は対コンピュータ戦と比較にならないほど難しいです。とはいえ、ゲームは楽しくやるもの、別にここで鬼の形相になる必要はありません。
毎日が桃太郎電鉄のような平和な日々でありますように…というのは、桃鉄のスタッフロールの決まり文句ですが、まさにこの通りで、あまり感情的にきついことをやってはいけません。
私自身も、これを心掛けている結果「平和の意味を取り違えているような見るも凄惨な戦場と化した桃鉄」と評していただきつつ、いつでもプレイできています。
…本題、桃鉄対人戦(とコンピュータにも共通する)の手引きですが、古く、徒然草110段にその記述があります。
双六の上手といひし人に、その手立てを問ひ侍りしかば、
「勝たんと打つべからず、負けじと打つべきなり。いづれの手か疾く負けぬべきと案じて、
その手を使はずして、一目なりともおそく負くべき手につくべし」といふ。
要約すると「勝とうと打つのではなく、負けまいと打て。早く負けそうな手を検討し、それをすべて除外して一手でも遅く負ける手を選べ。」と言うことです。これは、桃鉄における手を選ぶ際の評価関数の作り方を示しています。
桃鉄で自分が取れる行動は手持ちのカードを使うかサイコロを振るかです。したがって、検討すべき手の数はさほど多くありません。しかし、一手を選ぶのに検討すべき情報の量は多いのです。
桃鉄の対人戦で勝ちに行くなら、次のような点は押さえておくべきです。
- 主要なイベントの発生条件
- 他プレイヤーの全カード(一部貧乏神の悪行に備えて順番も)
- 他プレイヤーの押さえている主要なイベント物件
- 他プレイヤーの押さえている主要な独占駅
- 他プレイヤーの位置及び目的地からの距離
- 貧乏神からの距離
これらが手を検討するときに使う基礎情報となります。基礎情報から考えられる手を評価します。といっても、ランダム性があるので、期待値(厳密でなくておおざっぱでいい)を使って評価します。特急カードなら10〜11が出る前提、もしかしたらカードなら1/16で到着できる前提…といった具合です。
また、カードの価格なども注意しましょう。4回使った急行周遊カードがあり、カード売り場に行けるなら売って買いなおすなり急行カードにするなりした方がおいしいです。これらを踏まえて、次の順に考えます。
- まず、リスクヘッジを考える。リスクが大きくなる手はできるだけ減らす。この場合のリスクは、2〜3手先までを評価するのが望ましい。
- リスク最小の手の中でベネフィット最大化できる手を基本に選ぶ。
- ここまでの条件の中でさらに手が拮抗する場合、他プレイヤーに与える損害が最大になる手を選ぶ。
この順番を崩すことが勝ちにつながるケースというのは多くはありませんが、感情などで順番が入れ替わることもありますので、「サブシナリオ」として頭の中にとどめておくと良いでしょう。
さて、上記の手順で手1つ1つの手はできるのですが、まだ再評価を行います。
目先のプレイヤー(自分の手の評価を自分の番が来てからやっているとは限らない)から順に上記の条件で手を決めたとき(余裕があればサブシナリオまで考えておく)、リスクなどが変わることはないか、ということです。
これにより、必要に応じて(優先順位をかえず)手の再検討を行い、良さそうな一手を定めます。
勿論、期待値で考える以上、自他ともに、キングボンビーをぴったり擦り付けられた、ホールインワンされた…などのイレギュラーは起こりえます。しかし、イレギュラーの確率は、相手が次善以下の手を取る確率より低いとみなせるでしょう(みなせないほどなら、リスクヘッジが不十分)。
イレギュラーの時は改めて先の手順で手を更新する必要があるだけで、そうでなければ常に2手・3手先まで定めてプレイすることができます。他プレイヤーの手番は、休み時間ではなく、そのプレイヤーの動きを見ながら自分の次の数手を定めるための検討時間なのです。
この思考になれれば、強力な手をノータイムで繰り出し続けるような、そんなプレイスタイルが標準になることでしょう。(そして、そのレベルの人同士の対戦は、テンポが素晴らしく、楽しめる対戦となることでしょう。)
おわりに…
桃鉄で勝つための思考についてざっと書いてきました。文章に起こすと結構難しいなと思いながら追いかけた、自分の思考過程でした。
でも、大事なことは、「楽しくワイワイとやること」です。こんな思考のために面白くなってしまうような桃鉄はいけません。
存分に楽しんで、その中で勝ちたいときに、この思考を意識してみてください。そうなってくれば、強くもなりますし、きっとこういえるでしょう。
「桃鉄大好き!」