HOME | ドキュメント |  ブログ  |  BBS  |  瓦版  | 将棋プロジェクト |  物置小屋   

象歩 ドキュメント

Categories
Zope (46 items)
歳時記 (26 items)
工作 (19 items)
将棋 (25 items)
料理 (2 items)
Vine (27 items)
Squeak (2 items)
(1 items)
雑記 (4 items)
Python (19 items)
ZOPE3 (3 items)
Linux (6 items)
(1 items)
道具 (3 items)
買い物 (1 items)
PC工作 (2 items)
ボート (3 items)
Recent Entries XML
Recent Comments
Recent Trackbacks
Archives
04 May 2008

PythonからC++クラスを呼び出す(2)

Python  

今回は Python の ctypes モジュールを使い C++ クラスを Python から呼び出してみました。 ctypes モジュールは python2.5 以降では標準で含まれるようです。 まずは C++ クラスのコンストラクタ、デストラクタ、メンバ関数の wrapper 関数を作り、 Python から呼び出してみました。

題材は昨今作成中の詰将棋プログラムです。 以下のサンプル出力では、 まず共有ライブラリ libcshogi.so をロードし、 次にコンストラクタに盤面情報を文字列で渡し、 最後に探索メソッドを呼び出し、解答を出力しています。 ctypes は使い易い。Python 標準実装と云うのも心強いし、 とりあえず決まりかな^^

$ python2.5
>>> import ctypes
>>> so=ctypes.CDLL("./libcshogi.so")
>>> cp=so.cshogi_create('K32S22S34L11P13P23P44~R2BG3S2N4L3Pe/P54b53p41~G/')
 9 8 7 6 5 4 3 2 1
|.|.|.|.|.|p|.|.|L|1 {R2,B,G3,S2,N4,L3,Pe}
|.|.|.|.|.|.|K|S|.|2
|.|.|.|.|b|.|.|P|P|3
|.|.|.|.|P|P|S|.|.|4
|.|.|.|.|.|.|.|.|.|5
|.|.|.|.|.|.|.|.|.|6
|.|.|.|.|.|.|.|.|.|7
|.|.|.|.|.|.|.|.|.|8
|.|.|.|.|.|.|.|.|.|9 {G}

>>> so.cshogi_solve(cp, 7)
G33 K2132 b3153 S3122 p3141 K3121 S32
G33 K2132 b3153 S3122 p3141 K1221 S21


24 May 2008

JavaScriptで将棋盤

将棋  

JavaScriptで将棋盤 を作ってみました。 世間では良く見かけるのですが、象歩ではJavaScriptを使うことを拒んでたので... いまさらですが、ほんの気の迷いから作って見ました。 Zopeと相性が良いですね^^ 当然のことながら棋譜を再現する場合に大きな将棋盤でもちらつきが無い。

よく知らないけど、Ajaxのテクニックが使えるのなら、 いろいろ遊べる気がする。 中継の負荷を棋譜テキストだけにして軽くするとか、 ネット対戦のインターフェースに利用するとか。

[注意] 今日作りたてなので Linux 上の firefox でしか試してません。 ブラウザによってはうまく表示できないことがあるかも。そんときはスマソ。


26 May 2008

将棋盤に Ajax を用いる

将棋  

棋譜の表示に Ajax の手法を使ってみた。 まずは棋譜を選択する機能を実装。 再描画はチラつきも発生せず問題無い。 ということは棋譜だけ自由に GET できると云うこと。 たとえば実況中継などの頻繁に更新される棋譜でも OK だろう。

とりあえず使えることは解った。ありがたや^^; でも、深入りはしない。