マルバツゲーム:賢いプレイヤー
Posted feedbacks - diff
バグがありました。いったい何を思ってそんなふうに書いてしまったのか、それでなぜそれっぽく動いていたのかまったく不思議です(^_^;)。以下、差分です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | 6c6
< 全マス目 := (中央のマス, 隅のマス群, 縁のマス群) asOrderedCollection.
---
> 全マス目 := ({中央のマス}, 隅のマス群, 縁のマス群) asOrderedCollection.
51c51,52
< (敵の手 includesAnyOf: {隅のマス群 first: 2. 隅のマス群 last: 2})
---
> (敵の手 size = 2 and: [{隅のマス群 first: 2. 隅のマス群 last: 2}
> anySatisfy: [:二隅 | (敵の手 copyWithoutAll: 二隅) isEmpty]])
58c59
< 総和 + (敵のマス * 候補) sum]]]
---
> 総和 + ((候補 - 敵のマス) * (候補 - 敵のマス)) sum]]]
76,77c77,78
< "=> {#賢い先手->{9774->#先手勝ち. 226->#引き分け}.
< #賢い後手->{7962->#後手勝ち. 2038->#引き分け}.
---
> "=> {#賢い先手->{9607->#先手勝ち. 393->#引き分け}.
> #賢い後手->{8544->#後手勝ち. 1456->#引き分け}.
|




syat
#6207()
Rating0/2=0.00
マルバツゲームで、賢いプレイヤーの思考ルーチンを実装してください。
賢いといってもいろいろありますが、
1.負けない
2.できるだけ勝つ
という条件でいってみたいと思います。
ランダムプレイヤーと1万回バトルした結果(勝ち・負け・分け)を表示してください。
先攻になっても後攻になっても無敗!となれば言うことなしです。
[ reply ]