goo blog サービス終了のお知らせ 

パーソナルブログメモリ

a = [1, 1]
for _ in "*" * 999: a += [sum(a[-2:])]
print(a)

バックギャモンのAIを作ってみる

2022-05-10 | 2日でPython3

CodinGameのcontributeにバックギャモンが登場していたので作ってみました。

https://www.codingame.com/contribute/view/169118a6863bd41e0dde91d644c07b37a3bd6

 

 

午前中で完成したのはこんな感じです。

ボードをどのようにデータ化するかが一番悩まされたところです。

よし!世界3位 6人中

 

はまった所 

ゲームシステムの受け渡し方法が初期サンプルで動かないので確認して修正。

バックギャモンのルールをほぼ知らないので都度設計部分からの修正。

ヤマ(バーの事を勘違いしている)からしか動かせないとか最期の枠に全部入っ

ていないとゴールできないとか、パスが入る時、大きいダイスから優先しないとい

けないとか、ゾロ目だとその目の4回分動かせるとか古のゲームほど絶妙なゲー

ムバランスのルールが入っていたりしてそこにはいつも悩まされます。

 

70行目は疲れたので未実装です。

 

夕方追記

実は66行目に致命的なミスが発生していました。バーにコマがある時の実装が

面倒そうで、そこだけランダム(ゲーム作成者側で用意されている合法手呼び出し)

を使ったつもりだったのですが、ここの条件式をバーが0以上にしているため上の

ロジックまったく動いていませんでした。直したらエラーが発生!原因がよくわから

ず、分析ロジックをあちこちに展開しています。


最新の画像もっと見る

コメントを投稿

サービス終了に伴い、10月1日にコメント投稿機能を終了させていただく予定です。
ブログ作成者から承認されるまでコメントは反映されません。