へっぽこプログラマーのきまぐれカフェ日記 -6ページ目

へっぽこプログラマーのきまぐれカフェ日記

ちょっとアメブロがどんなものかの試しをかねて、
自分が行ったカフェについてまとめるブログ

どうも、ブログ書くの久しぶりです。
thunderです。

先日、プログラミングの大会に出場してきました!

簡単に言うと、ボ○バーマンのAIを戦わせて、より賢くて強いボ○バーマンを作った人が勝ちという、プログラマーじゃなくてもイメージしやすい楽しい大会でした!

詳しいルールとかはここで紹介しても仕方がないので、
以下のリンクを見てくれるとうれしいです。
学生プログラマ日本一決定戦-CODE VS 3.0-

さて、ここからはCODE VSを知ってる人向けの話を書いていきます!
(知らない人には何言ってるかわからないつまらない内容になるかもなので、ご了承ください)

実は決勝進出者の皆さんからプログラムをもらって、大会の後に総当たり戦をやりました!

大会本番はトーナメント形式で、お互いの強さがはっきりしませんでしたからね。

総当たり戦の方法は以下の通り!

・自分と、許可をもらえた決勝参加者、合計7名の総当たり戦
・一組ごとに30戦ずつ対戦
・基本的には乱数のシードは0
(ただし、たまにクライアントのバグで30戦やる前に止まることがあったので、適宜シードを変えて実行)

codevs総当たり結果

これがその結果です!
表の見かたとしては、例えば一番左上の[1-12]は
thunderの勝ち数が1,
ustimawの勝ち数が12,
引き分けになった数が17 (=30-1-12)
という感じです。


そして下の図が各選手ごとのデータです。
負けない率というのは、180戦(30×6)のなかでの負け以外(勝ち、引き分け)の割合を示しています。
勝ち数や負け数は組み合わせによってまちまちなので、勝った人数が多かった人が強いと考え、表は勝った人数順で記しています。

codevs各種データ

やっぱり優勝者のustimawさんは全勝で文句なしの強さですね!
tekさんがMagicalさんに勝ってるのも面白い!

一応、決勝進出者の皆さんにプログラムもらうにあたって、
「簡単でいいから総当たり戦の講評をしてほしい」
という条件の人があったのでリクエストに応えます!

あ、でもozyさんやchokudaiさんみたいな素晴らしいコメントは期待しないでくださいね!
あと一応、決勝進出者本人が見て間違ってる点があったらメッセージくださいね!


ustimaw氏
大会初の2連覇。
モンテカルロ法により、圧倒的な先読みを実現した。
先読みがしっかりしているので、的に殺されることはほぼない。
負けない率95%という数字がそれを物語っている。
難点を挙げるとすれば、モンテカルロ法はいわばあてずっぽう戦略なため、たまに意味のわからないところで自爆することか。(めったにないので、そんなにケチをつけるほどのことでもないけれど)
普通の先読みもして自爆だけ防げばもっと強くなる可能性もあるかもしれない。


tek1031氏
CODEVS 2.0優勝者。
本番(10戦)では惜しくもMagicalCoin氏に敗れたが、30戦やればMagicalCoin氏にも勝てるポテンシャル。
すぐに戦闘態勢に入り、ベストポジションで立ち止まる。
アイテムを全く回収せずにずっと止まっているので、だれよりもアイテム数が少ない。
逆に言えばアイテムなしでこの強さなので、アイテムを回収していれば結果は変わっていたかもしれない。


MagicalCoin氏
本番での成績はtek1031氏を破り準優勝。
本大会唯一、敵を倒すための必勝パターンを編み出し、大会を盛り上げたエンターテイナーである。
勝ち数だけを見ればustimaw氏にすら大差をつけて堂々の1位。
その攻撃力が目立ちがちだが、彼の必勝パターンは設置する魔法数も多く、自分が死なない工夫や、アイテム回収能力も必須になる。
そういった点を踏まえた上で、めだったバグもなくバランスのとれたプログラムと言えるだろう。


thunder
僕です。
300ターン以降のサドンデスで落ちてくるハードブロックへの対応に失敗。
それ以外にも謎の場面で死を選ぶ場面があるようなので、バグがうまくとれていない様子。
プログラム提出前にあせって修正した結果、修正前に正常に動いていた部分が動かなくなった模様。


schwarzahl氏
充分な回避性能があるよくできたプログラムだが、
味方2体が重なって行動することが多く、今回の自爆ありのルールでは不利な印象。

nosnosnos氏
CODE VS常連で、稼いだ賞金総額はtek1031氏をも凌ぐという噂。
僕と同様、サドンデスのハードブロックやの対応に失敗し、大会本番でのschwarzahl戦でもそのバグが勝敗を分けた。
また、明らかに生き残ることが可能な場面でも死ぬ方向へ移動する場面も見られたため、予期せぬ動作をしている部分も多いように見えた。


sash氏
予選1位。予選最終日に圧倒的な点数を叩き出し、予選を盛り上げた。
schwarzahl氏同様、味方2体が重なって行動することが多かったのが敗因か。
同じような戦略ミスをしたschwarzahl氏とここまで差がついてしまった理由だが、
schwarzahl氏は自爆を踏まえた攻撃もしていたが、
sash氏は自爆を踏まえた攻撃をしていなかったという点だ。
実際に細かいアルゴリズムを聞いたわけではないのでなんともいえないが、ビジュアライザーで結果を見た限り、sash氏が勝つ場合は味方が2体とも生き残っていることが多いように見えた。
今回のルールでは2体とも生き残る完全勝利パターンは難しく、自爆を利用できたかどうかが勝敗を分ける鍵となったと言えるだろう。


こんな感じでいかがでしょう。
正直メチャメチャなこと書いてるような気もするし、そもそも文章が稚拙になってしまった気もするんですが、精いっぱい書いたので許してください(>_<)

以上、CODE VS3.0 決勝進出者 一部による総当たり戦の結果でした!