パズルゲームを作っています
http://azalea.s35.xrea.com/__/
そのステージがクリアできるかどうかの判定、
ステージの自動生成が出来ません。

ステージがクリア可能かどうかは、再帰を用いて全ての通り調べる
という方法で組んでみましたが、あまりにも時間がかかり
答えは、極単純な形式のステージでしか求まりませんでした。

アイテムのせいで、調べるとおり数が膨大になることや
一見不要なブロックでも、実は必要であったりするなど
複雑性が高く、枝狩りが容易に出来ません。

言語は、Cでお願いできませんでしょうか。
よろしくお願いいたします。