Step 07 of 12

ランダム AI

白番を AI に担当させます。最もシンプルな「合法手の中からランダムに 1 つ選ぶ」だけの AI。 ここで初めて List<int[]>Random が登場します。

MyOthello.java
Java runtime を初回読み込み中…
CheerpJ の JRE (数十 MB) をダウンロードしています。
preparing

About this step

なぜ update(dt) で AI を呼ぶ?

onKey で直接 AI を動かすと、人間が着手した 同じフレームで AI の手が画面に反映されてしまい、プレイヤーが経過を観察できません。 update(dt) で時間を蓄積して一拍おいてから動かすと、 AI が「考えている」ように見えます — UI 側の演出です。

List<int[]> という型

Java では「座標」用の専用型を作る代わりに、int[] {row, col} という 長さ 2 の配列で表現する慣用があります。 レコードクラスや Pair を作るほどでもない時の軽量解。 本格的な設計なら record Move(int row, int col) {} を使います。

動かしてみる

黒で 1 手打って、0.5 秒後に白が勝手に応手するのを確認。 まだ評価関数は入ってないので「どこに打つか」は完全ランダムです。 次の Step でここに知恵をつけていきます。