January 24(Sun), 2010
選手権参加、途中結果
MLで流れきました、まだ公開しちゃダメな気がするのが
すこしだけフライングで感想を
1 Bonanzaライブラリ使用プログラムあらわる!!怖すぎです(ガクブル
2 Bonanzaの名前がかっこよくなっている
3 GPU使用者あらわる!? 楽しみです
今年こそは一次予選抜けたいです。。
なんだか怖いムーブオーダリングの話
今のponanzaは前回最善手があったら、合法手生成なんかせずとりあえずそれを指すのですが
ひょっとしてhashの誤ヒットがあって非合法手を指してしまいそのままプログラムが落ちる可能性を考えると夜も眠れない。。
あとkillerも合法手を全部作成しないまま指すつもりなのですが、ひょっとしてなにか勘違いがあるかも・・
LINQ + yield + ラムダ式 + IEnumerable = 自己満足
public IEnumerable<Move> Quiet() { List<int> attacker = pos.InCheckAll(); if (attacker.Count == 0) { Func<Move, bool> IsGood = move => { if (PieceValue[move.Capture()] >= PieceValue[move.FromKind()]) return true; return SEE(move) >= 0; }; var query = Tactical() .Select(m => new { move = m, mvvlva = MVVLVA(m) }) .OrderByDescending(a => a.mvvlva) .Where(a => PsuedoMoveIsLegal(a.move) && IsGood(a.move)) .Select(a => a.move); foreach (Move tactical in query) yield return tactical; } else // in check { var query = Evasion(attacker) .Select(m => new { move = m, mvvlva = MVVLVA(m) }) .OrderByDescending(a => a.mvvlva) .Where(a => PsuedoMoveIsLegal(a.move)) .Select(a => a.move); foreach (Move evasion in query) yield return evasion; } }
そうだよ、オレはこう書きたかったんだよ!!!

文殊チームの人が開発者に加わってますし、その関係での名称変更かもしれませんね。
#って、こういう事書いちゃってよかったのかな?
しかし、楽しみになってきました、はやくGWになれ!!
合法手かどうか、チェックしてから指した方がいいと思いますよ…安眠のためにも
(で、なのはと対局中に発動!)
これは return query; で十分だったりしませんか?
これは return query; で十分だったりしませんか?>
あ、え。。そんな風にかけるんですか。。
そうだったのかorz
情報ありがとうございます