一昔前にRobocodeというゲームがありました。これは完全自立型のロボットゲームで、そのコーディングスキルを争うものでした。相手と自分の位置、攻撃と回避などかなり複雑なパラメータが合わさっていました。 そこまで複雑なものを作るのは難しそうですが、2048-agentなら自分なりのテクニックをコーディングで表現できるかも知れません。人気のパズルゲーム、2048を回答するエージェントソフトウェアです。

2048-agentの使い方

例えば以下のようなコマンドで実行します。

$ ruby twenty_forty_eight.rb -a GreedyAgent -t 2

tはチャレンジする回数、aはエージェントです。このエージェントを自分なりにカスタマイズすれば独自の解法を展開できる訳です。

自動で回答していきます。

例えば先ほどのコマンドの結果は次のようになります。もちろん運の要素もあるので毎回同じではありません。

$ ruby twenty_forty_eight.rb -a GreedyAgent -t 2
Trial 1: agent lost with score 5360; largest tile 512
Trial 2: agent lost with score 4040; largest tile 256
--- Results ---
Average score: 4700.0

Wins: 0 (0.0%)

Losses: 2 (100.0%)
Highest losing score: 5360
Average losing score: 4700.0

2048には幾つかのテクニックがあるので、それをプログラミングできれば自動でどんどん高得点を目指せるかも知れません。ワンパターン化してきたので若干飽きがきていたのですが、2048-agentがあれば全く別な楽しみ方が見いだせそうです。

2048-agentはRuby製、MIT Licenseのオープンソース・ソフトウェアです。

rmseng/2048-agent