事前準備

問題

  1. 以下のプログラムを実行すると1つ前のセルと同じように人間 vs AIとして動作します。これをAI vs AIをプレイするプレイアウト(playout)関数に改造してください。プログラムを実行すると最初にrandam seedの入力を求められるので適当な整数値を入力してください。その後、すぐに勝敗は決します。
    random seedとは乱数を生成するときの初期化のための値で、例えば同じ値を指定したときは必ず同じ数字列が乱数として生成されます。 プログラムにおける乱数は「再現可能」な乱数であることが求められるので、このような機能になっています。このrandom seedを入力せずにEnterキーを押すと、このプログラムの場合は現在時刻をseedとして乱数を生成します。
    課題提出のときはrandom seedを 34 としてください。
    正解の例
  2. プログラム上のコメントを読んで、簡易モンテカルロAI(next_ai2関数)を完成させてください。このプログラムは実行するとエラーが発生します。そのエラーを修正するようにプログラムを追加していってください。正しくプログラムが完成すると、先手AIでゲームが始まります。AIは約5秒ぐらいシミュレーションをしてから手を決定します。
    課題提出のときはrandom seedを 1 に、自分で打つ手を 0, 1, 2 としてください。
    正解の例