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 でここに知恵をつけていきます。