象歩将棋Webと将棋で何か具体的なもの作って行こうとしてます。9.7%見知らぬ方から11手詰め頂きました。自然でエレガントで、しかも面白うございます。ありがとうございました。実はしばらく前に投稿されていたのですが、もったいないので、こちらにも載せることに。0.0%今日暇で2ちゃん見てたら、どっかのサイトでパクったソースがC#でもGUI抜きで1Kとのことでした。自分のは無駄が多すぎるので書き直すことにします。人まねは嫌なので、大体イメージもつかめたし。やる気しないので修ちゃんみたいにアイデアだけ考えるモードに入ろうと思います。分けてないらしいっす。インデクスとはオブジェクトにおけるシリアライズのことではそうそう、最近の言語で実装されてる。一般的なシリアライズだと無駄が多いのも事実。あたりならお好みでシリアライズメソッドを実装できるかもしれない(試してません)。>>かなり制約された世界でしか通用しない既存のソフトは条件分岐の化け物のような気がするし、ボナンザはその反対に大きなインデクス空間で勝負してるらしい。僕はそれらとは違うものを作りたい。>>明日は観光どうぞ光を観て来てください。補足です恐らくインデクスとはオブジェクトにおけるシリアライズのことではないですか?シリアライズされた結果もしくはシリアライズ処理そのものにあるアルゴリズムで変換することを指していると思います。すれば仮に局面の数が有限としても2のN乗で収まるかどうかがポイントになるわけですが、ということはかなり制約された世界でしか通用しない処理(性能はだせるでしょう)になりますか。(全然的外れのときはm(__)m)連続王手の話だけに限れば、今の仕様でも少しだけいじればオブジェクト比較できると思いますので、兎に角やってみます。13.6%>>312ところでこのページ(一般になんて呼ぶのかいまだによくわかりません)も雰囲気がでてきましたね。修ちゃんのいうDBとは概念的な話ですね。それをメモリで実装しようがディスクでやろうがかまわないという。いうツールもあるのでしょうね。考えてみると将棋ではその局面-実際はコンポーネントで構成される-がどのような経緯で出現したものであろうとお構いなく、最短手順で玉を詰ませればお役ゴメン。対局とは"局面の集合である"という定義は、現在の(コンピュータ)リソースを無視すれば面白い考え方かもしれません。局面間でベクトル的に近いとか遠いとかのメトリクスを持たせることができればさらに面白い。0.2%>>311突き詰めれば局面データベースの話だと思います。既存のDBから類推すれば検索やソートなどが必要な機能になると思われます。このとき必要なのがインデクスですが、オブジェクトに対して可逆的なキーを作ればいろいろ使い回しできます。局面を可逆的でかつ有意なインデクスにマッピングすることは、実装において一つの胆だと考えてます。ことを判定するには少し冗長です。同一局面で無い)ことが光速&高確率で得られます。千日手の判定で少し得するんでは無いかい、とか云う話。魔法の杖は探してますが、残念ながらまだ見付かりません。0.2%>310全然勘違いでした。局面のハッシュ値を生成するのも、オブジェクト比較と処理的に変わりがありません。Javaではうまく設計すればオブジェクト比較だけで済みそうなので、コードが楽です。ハッシュ値だと計算時に多分回さないとだめではないですか?処理時間は少し上がるかもしれませんね。魔法の杖かと一瞬喜んだのですが・・・;;それともパイソンでは魔法の杖があるのでしょうか?その局面が同一であるかの判断は、どうしてもその中身を見るしか方法はないはずでしょう。0.6%>309局面のハッシュ値を保存して無いってことですか?あっ、知らない内に必要性があってやってました。^^;その方がもっと簡単ですね。適当にでっちあげれば良さそうな気もする。リファクタリングする前に一応の形を作った方が楽かも。0.4%>307"同一局面連続王手4回"は仕様は簡単ですが、今の仕様では単純なオブジェクト比較でできないので手間がかかることがわかりました。全体のコードが乱れそうなので、またどこかでリファクタかけてからやることにします。これでルールは全部教えたつもりです。2002/10/26.。