« 実は… | トップページ | UEC杯 »

2007年11月10日 (土)

「コンピュータ将棋のアルゴリズム」増刷されます

…と言っても、入手が簡単になったりとかするわけでもないんでしょうけれど(--;

とりあえず、増刷にあたり『ちょびっとだけ』バグと誤植の修正を行う感じです。

あぁ、CSAにバグ修正版のライブラリ登録をしないとー…。

|

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/148072/17035579

この記事へのトラックバック一覧です: 「コンピュータ将棋のアルゴリズム」増刷されます:

コメント

入手困難なんですか?
町の本屋さんにはJava将棋と両方置いてありますけど。
財政難につきもう一冊はスルーの方向でw

投稿 かず | 2007年11月12日 (月) 23時09分

すげぇ!<その本屋

私の近所では2冊とも見かけたことがありません(笑)。

私の知っている範囲で置いてある場所は、新横浜と溝ノ口の文教堂、八重洲ブックセンター、新宿の紀伊国屋、位です…。
多分、池袋のジュンク堂にもあると思いますが。

投稿 うさぴょんの育ての親 | 2007年11月13日 (火) 00時59分

「コンピュータ将棋のアルゴリズム」購入しました。

内容で気になった点があります。
「二次元配列より一次元配列のほうがアクセスが速い」
と書いてあるのを見ましたが、今どきのコンパイラでは
そんなことはないですよね?

投稿 IM | 2007年12月 3日 (月) 02時11分

…時と場合によります(苦笑)。

Java将棋のアルゴリズムには書いたのですが、
盤を例えば、
ban[y][x]
と表すとすると、
ban[y*16+x]
とこのままなら速度に差はありません。(いまどきのコンパイラなら最適化してくれるから。)

ですが、これに例えば駒の利きを考えると、diff[dir]で駒の利きの方向を表すとして…

ban[y+ydiff[dir]][x+xdiff[dir]]

のようなコードが

ban[y*16+x+diff[dir]]

で済むのはメリットが大きいです。

投稿 うさぴょんの育ての親 | 2007年12月 3日 (月) 02時29分

ban[256]
ban[16][16]
どちらでも
*(y*16+x+diff[dir])
でアクセスできますよね。

投稿 IM | 2007年12月 4日 (火) 19時22分

*(ban+y*16+x+diff[dir])
でした。

投稿 IM | 2007年12月 4日 (火) 19時23分

えーと、『そう使うのなら』2次元配列にしなくていいじゃん、という気が(苦笑)。

でも、速度の問題じゃなくて「どっちが可読性が高いだろう」と言う話になりますね、確かに(--;

投稿 うさぴょんの育ての親 | 2007年12月 5日 (水) 00時34分

コメントを書く