最近は大富豪のAIを書くイベントをやってました。ルール部分なんかは去年書いたのほぼそのままなので主にやったことはAI作り。
なんか頑張ってどうやって評価しようかとか考えてたんですが、明らかに弱すぎて困ってたところルールベースでもある程度強いよって言われたのでルールベースに切り替え。しかし結局ちゃんと詰められずにまあ去年よりはマシじゃないか程度で諦めました。
結果は去年に引き続き1位(ただし下から数えて)でした。
あれー、そんなに変な手は打ってないと思うんだけどなぁ。いやー、どうやって勝つのかちゃんと考えないとやっぱり駄目だよねぇ。
ところで大富豪AIとか書いてると関数型言語ってこういう時便利そうだなぁと思えますね。次回のICFPプロコンは大富豪だなきっと。
なんかRubyって安定ソートのメソッドが無いんですよ。
Array#sortが不安定なのはFAQ。ドキュメントを見るとsort_byでなんとかなるから我慢汁って書いてある。
i = 0 [1, 3, 2, 3, 1].sort_by {|v| [v,i+=1] }
とかなんとか。えーなにこれきもーい。○○で頑張ればなんとかなるからいらんだろってRubyっぽくないな。
誰も文句言ってないのかと調べたら、1.9でsortとかsort_byを安定にしようぜって言って、遅いからダメってつっぱねられてるのはみつかったがそれだけか。べつにsortが安定な必要はないですよ。
でも複数のキーでそれぞれに優先順位つけてソートしたいときめんどいじゃん!って思ったら上の例はそのまんまだったという。
Array#<=>でそういう働きをしてくれるのね。じゃああんまりいらないのかもしんないな。でもあってもよくね?