将棋プログラムを三層に分けられたらいいな。
1.UI・通信部
2.UIを含まない思考の共通部分
3.思考の核心部
で2の中間層をしっかり定義する。
今のCSA将棋のsikou.dllが二つのDLLに分かれるイメージ。
あるいはCSA将棋用sikou.dllの生のハンドラを覆い隠すクラス群とか。

DLLとかクラスとかよく分かってないのでとんでもない嘘を書いてるかも。