質問: f; } String getPict() { return pict; } } ``` ### 試したこと 課題に対してアプローチしたことを記載してください ### 補足情報(言語/FW/ツール等のバージョンなど) より詳細な情報
回答: 基本はずっとパーで勝ち続けられれば高い点数になります。 最も高い点数が出せるのは相手がCのランダムで全てグーを出し、こちらがずっとパーを出した場合になります。 しかしながらそれは現実的ではありませんので、できるだけ早く相手を確定し勝ち続けられれば最も良いことになります。 つまりできるだけ高い点数を出そうと思うと、相手がAかBだとできるだけ早く確定させ、相手の手に対応した手を出し続ける。もし相手がCだと確定したら、そのタイミングでパーを出し続ける。という戦略が最も良いことになります。 それを前提に考えてみますが、ちなみにA,Bは初手に何を出すのでしょうか? ■1戦目 1-1.最初にパーを出す ■2戦目 2-1.次もパーを出す。相手は1戦目の自分の手によって手を決めてくる。 ※1戦目の相手の手は、Cはランダムだとしても、A,Bが何を出すかが分からないので情報不足。ここでは、A,Bも1戦目はランダムで手を出してくるものとし、相手が自分の手によって出す手を決定するのは2戦目終了以降である3戦目以降に判別できるとしています。1戦目に相手が出す手にルールがあるのであればそれにしたがって2戦目の処理は変化します。 ■3戦目 3-1.手を出す前に相手の手が分かる。受け取った相手の手で相手を判定する。 3-2.相手がグーを出した場合 :C確定。Cが確定したので以後ずっとパーを出し続ける。 3-3.相手がパーを出した場合 :BかC。Bだと仮定し次はチョキを出す。 3-4.相手がチョキを出した場合:AかC。Aだと仮定し次はグーを出す。 ■4戦目以降 3戦目同様のロジックを用いて、前に自分と相手が出した手を判定しながら相手を確定させ、次の手を決定する。 という流れになると思います。 自分が3戦目に勝てたらC確定、そのあたりの判定条件を掴めるかがポイントかと思います。 Player17のJankenメソッドは第2引数に相手の1つ前の手を受け取ります。 そこで上記の判定を入れて自分の手を決めていくことになりますね。