【フリーウェア】


次郎が開発したフリーウェアを公開するページです.

現在以下のツールがご利用いただけます.

  1. 「賢者の噴水は俺たちに任せろ」 – ギルクエ第三段階完全攻略ツール ver.1.0.7
    ver.1.0.4以前には致命的な誤りがあります.必ずver.1.0.5以降をお使い下さい.

※現在一本のみ

解法の変更に伴い,ツール名が「俺に任せろ」から「俺たちに任せろ」に変更になりました.ここに頻繁にコメントを下さっているHolithy☆さんが,ほぼ全ての組み合わせを四手以内で解いてしまう解法を考案し,その利用を快く次郎へ提供して下さいましたので,Holithy☆さんと次郎の「二人で力を合わせて」賢者の噴水の支援をするという意味合いで,「俺」が「俺たち」になりました.

 

◆賢者の噴水は俺たちに任せろ

 Download

※このDownloadボタンをクリックすると 「ページにアクセスできません」というエラーが出ることがあります.その場合はリロード(再読み込み:F5)をして下さい.

ブログで攻略記事を書き進まてきましたが,その集大成です.攻略記事をすべて読む必要はありませんが,やはり読んで理屈を理解した上で,補助ツールとして利用することをお勧めします.が,そういう人はメンバーで一人いれば十分で,他の人は単にツールを使うだけで構いません.

ギルクエは,進行係りの人やアイテム並べる係りと皆で協力して進めるものです.しかし,どうしても賢者の噴水だけは「カヤの外」になってしまうメンバーが出てしまいがちです.そういう人にこそこのツールを使って欲しいと思います.というか,アイテム並べる人もリーダーも,全員このツール使って欲しいです.そうなれば,リーダーが貰ったヒントをギルチャに流すだけで,次に何をすべきかを全員が把握することができるようになります.進行はスムーズになるし,手を出さない人も流れが見えてきて「自分も参加している」という一体感を持つことができるようになります.ギルクエって,そのためにやるものでしょ?

全員参加で一体感のあるギルクエのために!

それがこのツールの開発目的の一つでもあります.

 

◎ダウンロード:

 

 Download

※このDownloadボタンをクリックすると 「ページにアクセスできません」というエラーが出ることがあります.その場合はリロード(再読み込み:F5)をして下さい.

Windows Live SkyDrive はファイルへのリンクではなく,フォルダへのリンクとなっています.

ダウンロードの方法は,「賢者の噴水は俺たちに任せろ」~ダウンロード編で解説しています.

※GQ3vH1.0.0.0.zipはβ版です.現在明らかな不具合(正しく解けない)が確認されています.同一リンク先にある旧バージョンをご利用下さい.
※GQ3vH1.0.1はリリース版です.それなりのテストを経て不具合のないことを確認してあります(誤りは常につきものですけど).
※GQ3vH1.0.4以前には致命的な誤りがあります.必ずver.1.0.5以降のものをお使い下さい.

 

◎概略:

 

配布しているのは実行ファイルとDLLです(v.1.04のみDLLも併せて配布しました.現在は実行ファイルのみの配布です).ReadMeもヘルプもありませんので,ここで簡単にアプリの紹介をします.

  • ソフト名:賢者の噴水は俺たちに任せろ
  • Version:1.0.7 最速法搭載
  • 公開日:2011.03.27 
  • 種別:フリーウェア
  • 作者:次郎宗光 & Holithy☆
  • 開発環境:Widows XP Pro. SP3,Microsoft Visual Studio 2008 Express Ed.
  • 動作環境:開発環境でしか動作確認をしていませんが,Vista,Win7なら動作すると思います.
    あと,.NET FrameWork 3.5が必要です.XPユーザーの方は,Microsoft Updateの「カスタム」→「追加選択(ソフトウェア)」をご利用になるのが安全かと思います.Vista,Win7でMicrosoft Updateをご利用いただけるはずです.
    こちらからもダウンロードできます.
    ダウンロードの詳細 : .NET Framework 3.5 Service Pack 1 (Microsoftダウンロードセンター)
  • サポートサイト:ここw
    問い合わせが増えたらサポート掲示板などの設置も検討しますが,とりあえず,この記事へコメントください.
  • お約束:
    本ソフトウェアを使ったことで何らかの損害が発生しても,開発元は何の責任も負いません.
  • 権利など:
    アイコンや画像はネクソンさんのものです.
    ツールの紹介・宣伝はご自由にどうぞ.「うちのブログで紹介しました」などの連絡をいただければ,次郎も遊びに伺います.場合によっては,「うちのツールを紹介していただきました」と,逆に宣伝させていただくこともあります.可能ならばご一報ください.
    ただし,再配布をご希望の方は事前に連絡願います.ダウンロードファイルへの直リンはOKです.が,いったんダウンロードしたものを別のサイトに公開するなどの場合,お断りすることもあります.
    どのような形態の紹介・再配布であっても,ネクソンさんの権利を侵害しないように十分に気を付けてください.開発元はその責を負いません.

 

◎スクリーンショット:

 

GQ3vH Ver. 1.0.3のもの

 

◎使い方:

 

起動したら,画面に次の手の提案が表示されます.それにしたがってゲームを進めます.そして,貰ったヒントをプルダウンで選んで「次」をクリックすると,次の手の提案が表示されます.この時,クリップボードに次の手をチャットで伝えるための文章がコピーされます.それをそのままチャット欄にペースト(Ctrl+v)して下さい.リーダーの負担が減りますし,間違いもなくなります.

貰うヒントは「○名が正しい,○名が間違っている,○名が見当たらない」という内容ですが,0名は省略されます.プルダウンの選択肢は,可能な限り実際のヒントに近い表現を選んであります.が,表示欄の制約上,次の三つについては実際の表記と少し異なります

  • 「1名が正しい,1名が間違っている,2名が見当たらない」
    →「1名正しい,1名間違い」
  • 「1名が正しい,2名が間違っている,1名が見当たらない」
    →「1名正しい,2名間違い」
  • 「2名が正しい,1名が間違っている,1名が見当たらない」
    →「2名正しい,1名間違い」

つまり,前の方を合わせるようにすれば間違いはありません.

※ver.1.0.3から選択肢を原文に揃えるようにしました

「このツールの指示に従っても解けなかった」というケースは,貰ったヒントの入力に間違いがある場合がほとんどですので,十分注意して下さい.
※ver.1.0.4以前では特定のバターンで正しい解を導けないという不具合がありましたこと,お詫び申し上げます.

また,他のギルクエ攻略サイトによれば,
「4名が見当たらない」
であるべきところを,
「皆が間違っている」というヒントが出るというバグ(?)が報告されています.
次郎はギルクエでリーダーをすることがほぼありませんので,このバグが修正済みなのかそうでないのか,まったく分かりません.無用の混乱を避けるために,「4名が見当たらないと言っている」という意味のヒントは,
「4名が見当たらない」
という選択肢にしてあります.もし,実戦中に「皆が間違っている」という表現を見た場合は,「4名が見当たらない」を選択して下さい.
ちなみに,4名が間違っている時は,そのまま「4名が間違っていると言っている」というヒントになるそうです.「4名」と「皆」の違いのようです.
この件につきまして,実戦でリーダーをやった方からの情報提供を募集します.よろしくお願いします.

MapleStory wiki*さんのギルクエ攻略ページでは,得られたヒントの例として「4名見当たらない」という記載があります.

ということで,上記の古いバグはとうの昔に解消されているものと考えられます.

該当ページ:グループクエスト/ギルド対抗戦 – MapleStory wiki* タイムスタンプ 2010-05-24 (月) 21:16:52

ちなみに,次郎法V1では,まったく問題になりません.「全員が見当たらない」というヒントが出る可能性があるのは前半戦だけで,「全員が間違っている」というヒントが出る可能性があるのは後半戦だけだからです.なので,両者ともに「正解ゼロ」と扱うことができたからです.

また,論理的におかしいヒントを入力しても,先には進みません.例えば,勲章で3名正しいと入力しているのに,書でも3名正しいと入力しようとしてもツールは受け付けません.

 

◎特徴:

 

他に似たようなツールもないようなので,特徴は特にありません.

似たようなコンテンツを発見しました.

Nintyさんの運営するEKURUGIに,「賢者の噴水カンペ」というコーナーがあります(トップページ以外リンクを禁止されているので,それに従います).こちらもヒントを選択すると次の手を教えてくれます.

「賢者の噴水カンペ」の特徴

  • Web上で操作するのでアプリのダウンロードやインストールが不要.携帯電話やモバイル端末でも操作可能.
  • 所謂「入れ替え法」を採用しており,手数が多くかかる.

「賢者の噴水は俺たちに任せろ」の特徴

  • Windows上のアプリケーションであり,操作性は高いがWindowsマシンでしか動作しない.
  • Holithy☆さんの最速法を採用しており,少ない手で解ける.

EKURUGIさんは,第三段階だけでなくギルクエ全体の詳細な攻略サイトです.優れたギルクエ攻略サイトは他にもありますが,EKURUGIさんも極めて優れたサイトだと思います.うちは賢者の噴水の謎解きだけに特化していますので,そこんところでは一歩も譲るつもりはありませんけど,総合的に見ると,うちが敵う相手ではありません><

「賢者の噴水は俺たちに任せろ」が採用している解法は,Holithy☆さんが解析した最速法です全256通りの組み合わせのうち,24通り=9.4%を占めるブタも含めて全組み合わせを確実に四手以内で解くことができます.平均手数は3.5手.間違いなく最短クラスです.

解法についての詳細はHolithy☆さんが別途公開しておりますので,そちらで確認して下さい.
賢者の噴水 https://sites.google.com/site/holitsage/home
※Holithy☆さんは,「最速法を産み出すという役割は完全に果たした」とのことで,上記サイトを閉鎖なさいました(2011.04.05).

次郎が提供しているのは,Holithy☆さんが考案した解法を便利に使うためのインターフェイスであり,それ以上でもそれ以下でもありません.

 

◎インストール:

 

GQ3vH1.0.7.zipというファイルをダウンロードしたら,まずウィルスチェックをして下さい.次郎はMicrosoft Security Essensialでチェックしてから公開していますが,必ずご自分のPCでご自分の責任の範囲内でウィルスチェックをして下さい.検疫が終わったら,zipファイルを解凍し,好きなフォルダに移動して実行ファイルをダブルクリックで起動します.

zipファイルの中身は「賢者の噴水は俺たちに任せろ.exe」という実行ファイルが一つだけです.後述の.NET Framework 3.5 SP1がインストールされていれば,そのファイルをダブルクリックするだけで起動します.

.NET FrameWork 3.5が別途インストールされていないとプログラムは動作しません.必要な場合はMicrosoft Updateでインストールするか,別途入手.インストールして下さい.

ダウンロードの詳細 : .NET Framework 3.5 Service Pack 1 (Microsoftダウンロードセンター)

家族の共有パソコンを使っていて自分が管理者でない人(お父さんお母さんやお兄さんお姉さんのパソコンを借りている人など)は,管理者に相談してからにして下さいね.

 

◎アンインストール:

 

ダウンロードしたファイルをフォルダごと削除します.

 

◎ご感想,ご意見,ご要望など:

 

当面は,このページへコメントして下さい.

 

◎今後の改定予定

 

安定して正しく動くツールを提供することを優先しておりますので,バグフィックス以外の改定はあまり考えておりませんが,より使い易く間違いのないものにするために,以下の件を考えています.

  • ヒントの選択肢を間違いが起きにくい表記にする.
  • 論理的にありえない選択肢は,予め選択リストから削除する. ver.1.0.2で実装
  • 入力間違いを想定した「一手戻る」機能を提供する.
  • 解法データをテキスト形式にして外部ファイルとする.解法ファイルを差し替えるだけで,任意の解法で解くことができるようになる.
    →解法をツールから切り離すことで,完全にインターフェイスとして特化する.将来,誰もが自分の考えた解法を自由に使えるようになったら良いかも!とか考えています.

 

◎更新履歴:

 

賢者の噴水は俺たちに任せろ

  • Ver.1.0.7 2011.03.27
    クリップボード機能の存在を知らせるボタン機能を追加.
    ギル員への指示をクリップボードへコピーしていますが,この機能は存在そのものに気がつき難いという指摘を以前よりHolithy☆さんから頂いておりました.クリップボードのメッセージの隣に「?」ボタンを配置し,クリックするとクリップボード機能の説明文を表示するようにしました.ボタンがあれば,クリックしてみたくなるとうユーザー心理を利用していますw
  • Ver.1.0.6 2011.03.21
    食と酒を入れ替える機能を追加.
    以前よりHolithy☆さんから出ていたアイデアです.現在うちのツールを採用していただいているなつめサーバーのギルド愚連隊のギルマスtakottiさんより実戦で必要だという要望が上がりましたので対応しました.
  • Ver.1.0.5 2011.03.08
    初期化ルーチンを全面改訂.見た目を少し修正.「p11-02」から先に進めない不具合を修正.
  • Ver.1.0.4 2011.03.08
    三手目の選択肢で同じ内容の選択肢が複数登場する不具合を修正.選択肢の表記を修正.
  • Ver.1.0.3 2011.03.07
    「p20」の後で,ヒントの選択肢が空になる不具合を修正.戻るボタンを間違いにくく修正.
  • Ver.1.0.2 2011.03.04
    論理的に有り得ないヒントを,選択肢のリストから削除する機能を追加.
    手が進んだ時に,「ここでこのヒントは有り得ない」というものは,最初から選択肢から削除するようにしました.ヒントの選択時の間違いが減ると思います.
  • Ver.1.0.1 2011.03.03
    「最速法」搭載.リリース版.クリップボード操作時にエラーが発生するという報告があったので,クリップボードのコーディングを修正.効果はなかった模様.
  • Ver.1.0.0 2011.02.27
    初版公開.β版.「ハイブリッド法」搭載.

賢者の噴水は俺に任せろ
※次郎法搭載.Ver.1.06で開発終了.

  • Ver.1.06 2011.02.14
    分類コードD32の表示に間違いがあったのを修正.サポートサイトへのリンクをテキスト表示に変更.
  • Ver.1.05 2011.02.09
    サポートサイトへのリンクが無効になっていたのを修正.単独ファイルでの配布に変更.
  • Ver.1.04 2011.02.08
    再挑戦ボタンの動作不良を修正.実行ファイル単体の配布から,ZIPファイルでの配布に変更.
  • Ver.1.03 2011.02.07
    再挑戦ボタン追加.
  • Ver.1.02 2011.02.07
    分類コードEの攻略を最適化(ついでに間違いも修正).
  • Ver.1.01 2011.02.06
    分類コードD32の攻略に間違いがあったのを修正.
  • Ver.1.00 2011.02.05
    初版公開.
広告

コメント / トラックバック70件 to “【フリーウェア】”

  1. Holithy☆ Says:

    諸都合により明日4/3午前中にgoogleサイト「賢者の噴水」を閉鎖させて頂きます。
    リンク外して置いて頂けると助かります。
    長らくありがとうございました。

    • 次郎宗光 Says:

      Holithy☆さん,いつもコメントありがとうございます.

      え~??「賢者の噴水」閉鎖ですか???
      「賢者の噴水は俺たちに任せろ」の理論的裏付けとして最重要協力サイトに位置づけしておりましたが.
      非常に残念です.

      でも,Holithy☆さんのご都合なら,止むを得ませんね.
      もしも,サイト運営上の問題でしたら,例えば次郎の管理下のサイトにコンテンツをお預かりするなどの協力も可能です.お手伝いできることがありましたら,何なりとお申し付けください.

      • Holithy☆ Says:

        運営上の問題です。

        サイトの内容を約3ページに纏めて置いたのでどこかに保管しておいて頂ければ幸い。
        確認できたら削除します。
        ではではー

        • 次郎宗光 Says:

          了解しました.内容も確認して保管しました.
          今日は久しぶりにMapleStoryにINしてたので,確認と連絡が遅くなって申し訳ありませんでした.

          残念というか,寂しいというか,すごく複雑な気持ちです.
          ソースコードは良く理解できないところが多かったですけど他の部分は結構楽しんで読ませていただいておりました.
          すごく役に立つ楽しいサイトだったと思います.

          お疲れ様&ありがとうございました.

          なんだかお別れのあいさつみたいですけど,そういうわけじゃありませんよね?!

      • Holithy☆ Says:

        ・元々役割が済んだら消すつもりだった
        ・最速法を産み出すという役割は完全に果たした
        のでこれ以上放置しても仕方ないかなと。
        引き際は大事です。

        何か面白そうな事をやっていたらまた伺います。
        メールも歓迎しますのでよかったらどうぞ。
        ではでは。

        • 次郎宗光 Says:

          Holithy☆さん,了解しました.
          いろいろとありがとうございました.

          あれ以上の解法は,たぶん出ないでしょうし,出ても最速法との差は限りなく小さいと思われます.
          うちは,Holithy☆さんの最速法を大事にしていきます.

          また遊びに来てくださいね.
          いつでも大歓迎です^^

  2. Holithy☆ Says:

    ●v2
    1.入力欄は3つも要らない
    2.本当にキーボード入力でやるのか
    3.会話終了?
    4.クリップボードの件
    5.タイトルバー

    1.ご存知のように「正解 間違 見当無」の中より2つ入力すればそれで充分です。
    最初空欄にしておいて2つ入力したら他は自動補完するか
    そもそも2つしか入力欄を作らないか
    そのような処理がなされているといいと思います。

    2.ツールを用いる際にキーボードが必要な仕様は果たして使いやすいのかと疑問を持ちました。
    作成する側には異常入力への対処という作業が増えますし、
    使う側もできたらマウスだけのほうが楽じゃないでしょうか。
    (まあ作る側は不必要選択肢削除という手間は省けますけどね。)
    検討の上での仕様だとは思いますが、一応もう一度練り直してみていただけると幸いです。

    3.会話終了ボタンというものの意味がちょっと解りにくいと感じました
    ツールを終了するボタンなのか、はじめからやり直すボタンなのか。
    まあそこまで直してないだけ、という話ならそれで結構です。

    4.一番最初は文章量が少なくてよさそうなので
    「では、~~」の下に、「※この結果は自動でコピーされるので、チャットにCtrl+Vで貼り付けられます」
    と明記しておくのはどうでしょうか。Readmeなんか作らなくても全機能が解るのが理想。

    5.タイトルバーがついて、代わりに現在画像にある青い部分がなくてもいいかなと思いました。

    ●周辺ツール
    1回目のパターン分類までできたというところですね!
    全回答の作成が綺麗過ぎてすごいと思いました。
    これならすぐできそうだ・・!

    • 次郎宗光 Says:

      Holithy☆さん,いつもありがとうございます.

      真剣に考えて下さっているのが伝わってくるご意見,まことに恐縮です.

      >1.入力欄は3つも要らない

      全く仰る通りで,基本ラインは同意見だと思います.

      が,三つは必要なのです.

      ・入力が二つであっても,分かり易さと誤り回避のため,三つ提示する必要がある(ゼロのものがあったとしても,です).

      ・どの二つを入力するかは利用者がその場で選べるべきである.

      「三名正しく一名間違い」なら正しいと間違いを,「三名間違い一名見当たらない」なら間違いと見当たらないを,それぞれ入力できた方が良いのです.

      「三名間違い一名見当たらない」だから,それは「ゼロ名正しい三名間違い」という意味だよね?ということを人間の代わりに判断するのは,インターフェイスの仕事でしょう.そこを敢えて人間にやらせる必要がありますでしょうか?

      また,意味補完入力というのは,インターフェイスとしては必須事項と考えています.

      仮に入力欄が二つであっても,「33」のような有りえないヒントは弾く必要がありますので,どの二つの欄に入力しても,その時点で自動的に三つ目が決まらざるを得ません.ということは,二つ入力した時点で三つ目が自動補完されるということは,ついでのオマケ作業でしかないのです.このように,入力欄が二つでも三つでも,プログラム上の手間暇が大きく増減することはありません.

      これはとっても重要です.入力欄が二つか三つかで,実装にかかる時間が数時間から数十時間も変わってくるのであれば,楽な方を選びます.が,大差なのです.

      それを前提として,利用者の利便性が若干高い三つ入力欄という結論に至ります.

      >2.本当にキーボード入力でやるのか

      誰もキーボードのみだなんて言ってませんがな><

      基本として「何かが無いと操作できない」という状況は極力回避すべきであって,それはマウスであれキーボードであれ,同じことです.

      「マウス/キーボードだけで便利に使いたい」というユーザーの切り捨てはしません.ということで,キーボードだけでも快適に操作できるようにしますよ.

      >3.会話終了?

      まだ画面イメージの調整中です.あれは元のボタンの絵がそのままになっているだけで,使えるボタンではありません.メイプルっぽくしたいので,実際のウィンドウの様子を良く観察して,必要な場所に必要なボタンを配置します.

      >4.クリップボードの件

      そうですね.どこかにクリップボードの内容を表示する欄をもぐりこませたいというのは同意見です.下の段を整理して詰め込めるように考えてみます.

      下の段を広げたってかまわないわけですから.

      >5.タイトルバー

      悩みどころなんですよねぇ.
      中途半端に似てるのって,結構格好悪いんで,だったら最初から似せない方が良いかもです.
      タイトルバーが無くてもフォームの移動は可能なんですが,マウスでの操作と被ったりしないだろうか心配です.たぶん大丈夫そうですけどねぇ.

      >●周辺ツール

      much関数にバグがありました><
      後で訂正しておきますです.

      • Holithy☆ Says:

        >3つ
        3つ目の補完機能は、下手したら入力ミスをしたときに再編集不能になる可能性を孕むと思いました。
        たとえばユーザが1 2 と入力したら自動的に残る一つには(たぶん入力したその時点で)1と入力されるべきでしょう。
        で、ユーザが間違えたから入力しなおしたいと思ったとします。1つ値を消します。
        そしたら補完機能が働いて他の残ってる2つから今消したものがリアルタイムに計算されて、すぐ戻ってしまいます。
        …とかなんとか思ったんですが、何も自動補完は入力してる場所に補完することもないのか。
        ちょっと別のことを思いつきましたのでこれはなかったことにw(えー。)

        ・補完機能v2
        ユーザが値を入力したあと、ライオンがゲーム上で言っていると思われる言葉を特定出来次第画面にリアルタイム表示してはいかがでしょうか?
        つまり「これが1回目の挑戦だよ」の前後あたりに、「4名間違っている」だとか表示するわけです。
        これだったら入力する場所に補完しませんので先に述べた変な問題も起こりませんし、
        入力に矛盾がないかもリアルタイムで簡単に表示できるようになります。
        ゲーム上の発言以外にも、
        「入力してください 入力がおかしいです あり得ない発言です」等々追加することで。
        「特定出来次第」、というのはこれまで作ってきた「あり得ない選択肢削除技術」と組み合わせることで、
        後半になってくれば1個入力するだけでさっとわかるようになるとかもできるかもしれません。
        これは面白そうだ・・!

        あとこっちの発言のほうをオートコンプリートみたいな形にして、
        1個だけ入力してから発言のほうから選択できるようにするとかいうのもありですね。
        つまり現状のリスト表示をユーザ入力で絞込み検索できるような構想かな。

        >キーボードとは限らない
        とても画像を鵜呑みにしてました
        キーボードだけのインターフェイスもすごく楽しみです!

        >クリップボード
        私の意見は内容表示ではなくて・・
        「そういう機能があることを表示」するということになります。だから「1回目だけで充分」なわけです。
        つまり「上側に書いてある文章はクリップボードに入っているよ」ということを周知して欲しいのです。
        現行版では「クリップボードの内容が表示されている」に関わらず、「入っているという事実が周知されていない」ので
        v2で内容を表示したところでまた同じことになってしまうし、表示する必要もないと思います。

        >最初から似せない方が
        メイプルのデザインの特徴は
        ・アイコンがある
        ・空白が多い
        ・データは最小限
        ・修飾表現はそれなり
        ・カラフル
        というところになります。
        つまりこれが「心理的ハードルを下げる」要素になっていると考えられ、
        それを満たしさえすれば確かにメイプルデザインに一致させようとする努力は方向違いかも知れませんね。

        • 次郎宗光 Says:

          Holithy☆さん,いつもコメントありがとうございます.

          >3つ目の補完機能は、下手したら入力ミスをしたときに再編集不能になる可能性を孕むと思いました。

          何を心配されているのかよく分からないので,入力部分だけのサンプルを作成しますので,その動きを見ながらの意見交換にしましょう.

          >特定出来次第画面にリアルタイム表示してはいかがでしょうか?

          素晴らしい.即採用です^^
          これは良いですね.これ以上の確認はないでしょう.

          >「そういう機能があることを表示」

          ふむ.確かにそうですね.
          何回も繰り返して使うツールじゃないので(テスト中は除く),邪魔になることもないでしょう.実装を前提に検討します

          フォームデザインに関しては,まだしばらく悪あがきしてみようと思います.

  3. Holithy☆ Says:

    >速度
    問題にならないと思います。
    効率的にできるならそれに越したことはないですが,別に数分かかっても気にしません。

    >これはこれでやりようが
    たしかに全部演算する必要はないみたいですね。
    作りやすい形でお願いします!
    あ、でもできたら予め押せない形のほうが嬉しいです。

    >互換性
    たしかにちょっと面倒が生じますね・・
    でも表のほうは15回ほど置換すれば変換できます。
    まず”p”→”p-“に置換
    “-00″→”@04” “-01″→”@03″ というように変換。12通り全部やる
    (02は変わらないので放置。@にするのは再置換による変なこと防止)
    “@”→”-”
    “p-“→”p”

    そういえば上を書いてて気づいたんですが、区切り記号をハイフンにすると正規表現と被って面倒かも。
    別に対応は難しくないとは思いますが、被らない記号を使えるならそれに越したことはないのでご一考。

    >書式のチェック
    確かによく考えたら256種類全部試させれば書式チェックなんかせずともどこにバグがあるかは解りますねw
    全試行でのチェックだと「論理に必要ない、変なもの」があったときに発見できなかったりするかも知れませんが
    実用上無問題なら放置してもいいかもしれません。書式チェックなら見つけられます。

    ツールのシステム自体はこんな感じでしょうか
    1.[ある答え]を決定する
    2.表から配置を読み込み、それと答えのパターンを計算
    3.計算したパターンに該当する配置を表から持ってくる。2番にループ
    4.配置=[ある答え]になったら「理論誤りなし」と結論を出してループ終了
    5.配置=[ある答え]にならずに「計算したパターンに該当する配置」が検索できなかったら「理論誤りあり」と結論を出してループ終了
    誤りありの場合は[ある答え]と「何々が発見できませんでした」のログを出せばいいかな。
    たぶんミスが発見されてもそこで止まらず次の[ある答え]を計算してくれたほうが使いやすいでしょう。
    なおパターンとは正解数と間違い数による2桁の数字のことです。

    >4桁16ビットでマスクかけながら演算
    2進演算、行う技術ありますか?
    私やろうとしたんですがどうも記述方法がわからなくて・・。
    もしできたらかなり正解数、間違い数が導きやすくなり有難いです。
    正解数は2つの値のANDを取ってから1がいくつあるか確かめることで導出できます。
    間違い数はそれまでの正解数・間違い数で評価済みの桁を0クリアしてから4bitずらしながら3回正解数を求めた和になります。
    https://sites.google.com/site/holitsage/zatta-naiyou/tobbb
    こんな感じか。

    >いつかどこかで
    日時指定の上でギルクエとか忍耐のお誘いがあれば乗るとは思いますが
    自分からふらっと訪れることはもうしない予定ですー。
    上の二つでもリア用優先なのでどうなるやら不明です。

    • 次郎宗光 Says:

      >あ、でもできたら予め押せない形のほうが嬉しいです。

      そうですね.事前に分かってる方が操作が楽ですからね.

      >区切り記号をハイフンにすると正規表現と被って面倒かも。

      問題ないですよ.Holithy☆さんのアイデアを取り入れて

      s/p/p-/
      s/-00/-@04/g
      s/-01/-@03/g
      s/-02/-@02/g
      s/-03/-@01/g
      s/-04/-@00/g
      s/-10/-@13/g
      s/-11/-@12/g
      s/-12/-@11/g
      s/-13/-@10/g
      s/-20/-@22/g
      s/-22/-@20/g
      s/-31/-@30/g
      s/-@/-/g
      s/p-/p/

      でSEDに食わせてやればOKす.

      >1.[ある答え]を決定する

      だいたいそんな流れですね.p→p01→p01-01(テキトウ)・・・と40になるまで進めて行けば良いんですよね.40になる前に次の手が存在しなければ,その「ある答え」は解けない=間違いとなります.

      >2進演算、行う技術ありますか?

      今この場でぱっと手順を説明できるほどじゃありませんけど,その気になればできます.が,「どうしても速度が問題になる」ならば,です.

      10時間かかる処理が1時間になるのであれば,腰を据えて取り組みますけど,10秒が1秒になる(9秒短縮)ならば興味ないです.納期とコストを考えると割に合いません.

      • Holithy☆ Says:

        >ハイフンがどうのこうの
        私の知っている正規表現だとハイフンはメタキャラクタなので
        エスケープしないとうまくいかないかな、記述面倒じゃないかな
        と思ったという旨で書きました。
        次郎さんの記述を見る限りそんなことは特にされてないので
        なんか的外れだったかもしれないですね。問題ないなら気にしなくて結構です。

        >流れ
        大丈夫そうです。

        >2進
        私ができなかったのは文字形を2進で扱うところだけだったのですが・・。
        そうですね。実用を考える上で数秒削るために難しい考えを導入する必要もなさそうです。
        「間違い」を求めるには諸法あるようですが、書きやすいものでお願いします。

        • 次郎宗光 Says:

          Holithy☆さん,いつもありがとうございます.

          ハイフンについては,Holithy☆さんの言うとおり,文字クラスの指定に使うメタキャラです.[0-9]とか.ただ,範囲指定用のメタキャラなので,ハイフンの前後に有効なキャラがない場合,文字通りの「-」として扱われます.なので,今回のような例では問題ないということになります.まあ,正規表現にも方言がありますし,エスケープしておいて損はないです.

          というか,この置換に正規表現要らないですね.メモ帳の置換機能で十分です.ただし,10個を超える一連の作業になりますので,抜けや重複を避けるためにはやはりスクリプトで行った方が安全だっつーことです.手軽なSEDを使うなら,正規表現にならざるを得ないというだけのことです.

          別にSEDでなくても何でも良いですし,フリーウェアでそういう置換ツールもあったかと思います.

  4. Holithy☆ Says:

    元データ表を差し替え可能にするとの記事がありました。
    初期配置を1122にして実用性を高めた方法を開発するときなど役立つ仕様だと思います。
    ただ作成に際して、ちょっと思ったことを。
    ・・・未来の話ですけどね!

    ・差し替え用の形式はできたら「結果表」にできるとかなり使い勝手がよさそうです。
    次回表の、次回のデータのリストを作る方法は前回のURLの原理にある通りなので
    たぶん結構簡単に実現可能だと思っています。たぶん。
    そのあたりを手動入力する必要がある「次回表」より「結果表」読み込み式のほうが使いやすそう。
    プログラム本体は難しくなりますけどね。
    不具合対策に「不要選択肢を削除しない」というオプションがあってもいいかも?
    「p??」というデータがあったら、次回可能なものは「p??-*」を取得して、*全部になります。

    ・表読み込み式を採用するなら表デバッグ用ツールの同時作成が望まれます。
    表デバッグに必要な機能は
    1.無効文字列の確認
    2.結果表の配置が1111~4444全ての要素を含むことを確認する
    3.配置重複があった場合その全てのp**について表示して無問題か問いかける
    4.全てのp**に理論跳躍なく移動できることを確認する
    5.理論重複がないことを確認する

    例として、こんな表をデバッグするときを考えます。(エラーでまくりのすごい表ですが。)
    p 1123
    p31-22 1113
    p31-30 1114
    p22 5555
    p20 1111
    p10 1111
    p10 2222

    1.「p31-30」や「5555」においてエラーを発生する必要があります。
    あり得ないパターン、配置に対してのエラーです。
    もちろん変な文字、アルファベットなどでもエラーを発生する必要があります。

    2.上表はどうみても1111~4444全てがないのでエラーを発生する必要があります。
    全てがないというのは解けないデータがあるということです。

    3.「p20」と「p10」の配置が重複しているので警告を発生する必要があります。
    理論の構築の仕方によって問題だったり問題でなかったりします。

    4.「p」から「p31-22」や「p31-99」は理論跳躍しているのでエラーを発生する必要があります。
    「p??-*」があるとき、「-*」を除いたデータである「p??」、つまりこの場合「p31」が存在しない場合にエラー発生です。
    ver1.0.5でp1102の補完をしましたが、それはここのチェックで見つかるエラーです。

    5.「p10」が1111と2222の2つの値でセットされているのでエラーを発生する必要があります。
    もしくは警告を発生して先に出たほうだけ採用でもいいですが、修正してもらったほうがいいでしょう。

    • Holithy☆ Says:

      ちょっと宣伝(?)です。
      逐次計算型をちょっくら作ってみました。
      実用性はあれですが面白いとは思います。
      https://sites.google.com/site/holitsage/rtc
      ぜひぜひ!

      • 次郎宗光 Says:

        Holithy☆さん,別件で申し訳ないですが,

        「活動しうる管理人キャラクタ」

        「活動終了」
        って,

        あれ?

        え?
        メイプル再開したのがもう終了ですか?

    • 次郎宗光 Says:

      Holithy☆さん,いつもありがとうございます.

      >差し替え用の形式はできたら「結果表」にできると

      ハイブリッドになってから,結果表では不十分になっております.
      具体的には,最速法の結果表には「p31」が存在しませんよね?

      という話はHolithy☆さんもご承知で,「結果表のような形式でまとめられた表」にできると便利だというお話ですね?

      もちろん,それでOKです.つまり,次回表の1カラム目と2カラム目ってことですよね?今回は無理を言って次回表の3カラム目までをHolithy☆さんに用意していただきましたが,本来,あれは解法とは無関係で,インタフェイス側の事情で必要になるものです.

      ですから,次回表の1カラム目と2カラム目だけというフォーマットが標準的なフォーマットにふさわしいものです.

      ユーザーが欲しているのは,「次に試す手は何?」という問いに対する回答です.

      可能な選択肢が何であるかは,プルダウンリストから選択させる場合に,選択時にミスを誘発しないために必要なものであり,プルダウンリスト以外のインターフェイスを採用した瞬間に不要となるものです.

      (一応,公開コメントなので他の方も読まれることを前提に,このような説明口調になってしまいますがw)

      >表デバッグ用ツールの同時作成が望まれます

      なるほど.おっしゃる通りですね.表のデバッグを別途行うことができると,インターフェイスの不具合検出も非常に楽になります.

      でも,インターフェイスとは別物ですので,インターフェイスとは別に独立したチェックツールとして提供するのが良いですね.Perlで書くのが手っ取り早いですかね.

      で,表の規格ですが,基本的にHolithy☆さんの表記をベースにしたいのですが,よろしいでしょうか?

      状態,次の手
      p22-31-22,1224

      てな感じで.

      ・状態は「正しい数」と「見当たらない数」の二桁.
      ・先頭に「p」を付ける.
      ・手毎に「-(ハイフン)」で区切る.

      プログラム的には「p」も「-」も必要ありませんが,あった方が見易いからその方が良いでしょう.

      ファイルアクセスルーチンによっては,文字列には””を付けてくる場合があります.なので,手の「1224」は文字列扱いとしておいた方が,無難です.まあ,今日日,これが問題になるような状況は思い当たりませんけど.

      sedでもawkでも,一発スクリプト通せばどうにでもなる話ですから.

      • Holithy☆ Says:

        >次回表の1カラム目と2カラム目だけというフォーマットが標準的なフォーマットにふさわしい
        全面的に同意します!
        たしかに結果表では不足でした。

        >(3カラム目は)プルダウンリスト以外のインターフェイスを採用した瞬間に不要となる
        一応ボタン式でも押せなくなる処理がされれば使いやすいと思われます。
        (暗転表示など)
        正解数、間違い数バラバラ入力のときも選択肢が少ないにこしたことはありません。
        実現が難しくてバグが発生するようなら是非とは言いませんが、今後もあると嬉しい機能です。

        >チェックツール
        その方向でお願いします。
        チェック項目は思いつきなのでもう少し詰めるべき所はあるかと思います。

        >表の規格
        私の表記方法を使うことは一切問題ありません。ありませんが、一応気になること
        1.「正解と間違い」を使ったほうがよいのではないか
        2.理論跳躍検証をするなら、終了記号が必要。
        3.(此方で提案していないが)論理妥当検証をするなら、文字形だと不便

        1.一般的なゲームとしてはヒットアンドブローになるので、「正解と間違い」を書いたほうがいいかもしれません。
        私が「見当たらない」を採用したのは、たまたま計算で先に求まるのがこっちだったというだけです。
        石像のヒントも正解の次に間違いが言われますから、正解と間違いにしたほうがわかりやすいかもしれないです。
        あと少し前に提案したボタンをずらっと並べる方式でもやはり「正解と間違い」でまとめたほうが綺麗に並べられます。

        2.チェックツールの「理論跳躍」を考えるさいに必要なことです。
        たとえばp??からp??-**-@@への跳躍を考える場合にはp??-**が存在するかの表全体検索をかけることになります。
        しかし単純に検索するとp??-**-@@の前半がヒットして跳躍は発見できません。
        なにか終了記号があればそれを含めて検索することによってこの問題を解決できます。
        まあ「改行」でもいいんですが、そしたら表ファイルの一番最後に改行を入れ忘れないように、という注意が必要ですね。

        3.チェックツールを作るなら、表に書いてある論理が本当に正しいかというチェックをする機能も考えられます。
        (表に書かれたとおりに配置試行を行い、本当に表に書かれた単一解に落ち着くのかという検証機能。)
        このためには少々逐次計算が必要になり、配置が文字形で書かれていると不便を生じます。
        ただここまでやるとかなり面倒が増えるので、しないならしないという選択でよさそうです。

        >活動
        ゲームに費やす上限時間を超過してしまったのでやめました。

        • 次郎宗光 Says:

          >>(3カラム目は)プルダウンリスト以外のインターフェイスを採用した瞬間に不要となる
          >一応ボタン式でも押せなくなる処理がされれば使いやすいと思われます。

          これはこれでやりようがあります.

          ・選択肢ボタンがクリックされた時に無反応

          でも十分かと思いますが,クリックさせる前に判定するなら,

          ・マウスポインタがボタンの上を通過した時

          とか,抜本的に,

          ・手が進んだ直後

          に全選択肢を総当たりで調べて,表(ハッシュテーブル)に存在しない選択肢のボタンを片端から消す(選択不可にする)こともできます.

          現在の版でやってることは,手が進んだ直後に全選択肢が積んであるコンボボックスから,次回表にない手を選択肢リストから削除する,というものです.処理にかかる時間は大差ないでしょう.

          >「正解と間違い」を使ったほうがよいのではないか

          そうですね.今までのデータとの互換性を考えたのですが,仰ることに一理ありますので,「正解と間違い」をベースに考えてみます.

          >終了記号が必要

          これもやりようがありまして,正規表現を使えばp01-00[^-]でp01-00-10はヒットしません.p01-00$でも良かったかもです.テストツールは開発者向けですので,心理的ハードルとか無視して,そういう処理が書き易い言語で良いと思います.

          >表に書かれたとおりに配置試行を行い

          まさにそれを行うテストツールが欲しいのです.書式のチェックなんては正直どうでも良いですw だって手動で256通りテストするの嫌! それこそツールにやらせる仕事ですよね.本来であれば.

          >配置が文字形で書かれていると不便を生じます

          最初に全データ読み込んだ時に文字列から数値に変換かけるだけです.たかだか4桁,250個程度のデーでしかありません.1000ミリ秒も使いません.

          それに,数値のn桁目を切り出しても,文字列のn文字目を切り出しても,たった256通りの組み合わせにそれぞれ4手ですから,さほど問題にならないのではありませんか?一回のテストに10秒20秒かかったって,十分じゃありませんか?

          どうしても速度が問題になるなら,1→0001,2→0010,3→0100,4→1000と二進変換して,4桁16ビットでマスクかけながら演算するべきだと思いますが.

          >ゲームに費やす上限時間を超過してしまったのでやめました。

          そうですか.なつめにキャラを作られたようなので,いつかどこかでお会いする日もあるかと思っていたもので・・・

          そういう自分も,ツール手がけてる間はあんまりINしてないのですけど.

  5. Holithy☆ Says:

    おぉ、p1102のチェックがすっかり抜けていた・・。
    p1102はp31とかp22とおなじようなものです。
    次回表では40を省いてしまっているので解りにくいですが、
    上の3つは本当に40が存在しない(その時点で回答になり得ない)ものとなります。
    「経過表」は「答えに至る経過」を示してるのでこれから作ると40がないのは抜けちゃうんですよね・・。
    p31とp22はわざと40を消したので気づいてたのですが、盲点でした。
    で、肝心の配置は「1214」になります。
    赤の?で示されたところは02と置いた後にどう置けばいいのかというデータですので
    経過表の3行目、後ろから2行目が該当することになります。

    p1110は10だけです。
    p20は0 10 20です。
    考え方と、修正した表
    https://sites.google.com/site/holitsage/analysis/fastest/jikai-hyou-3

    表全体を確認してみて、赤い部分以外に不審点はありませんでした。

    • 次郎宗光 Says:

      Holithy☆さん,ありがとうございます.

      間に合ってよかったw さっそくそこを修正したものを公開します.
      一応,経過表から次回表の作り方の理屈までは何とか理解できていました.

      「テスト中」って記事書いて投稿したばかりですが,他の分岐のテストは済ませてあるので,局所的な変更で公開できるでしょう.

      ありがとうございました.

  6. Holithy☆ Says:

    1.0.4確認しました。
    形は変わりましたが似たような変な動作があったのでご報告します。

    まず起動します。最初からはおしません。
    4名が間違い
    2名正しい 2名間違いとします
    この状態で解は1つに絞れていますので、これ以上進めるはずはありません

    にもかかわらず、3つ目の選択肢のドロップボックスをクリックすると、選択肢が表示されます。
    1回以上最初からボタンを押した場合にはこの現象は生じません。
    1.0.3のとき同様、この異常選択肢の表記は「現在のバージョンではあり得ない表記」になっていることが特徴です。

    • 次郎宗光 Says:

      Holithy☆さん,こんばんは.

      初期化ルーチンを統一して,起動時の動作と「最初から」の動作は完全に一致するようにしました.ちょっと雑な仕事しちゃいました.反省しています.

      で,テストを念入りに行っているので,まだ新バージョンは公開していません.で,一度,Holithy☆さんに次回表を確認していただきたいのですが,お願いできますでしょうか?

      攻略ツールを公開しているフォルダーに
      最速法の次回表2(確認).xls
      を置きました.Holithy☆さんの次回表2をこちらで確認して補ったものです.赤いセル(または○がついた行)がこちらで手を加えたものです.

      p11-02
      p11-10
      p20

      の三つですね.このうち,p11-10とp20は経過表と見比べながら補完しましたが,p11-02については補完しきれていません.ここをご確認願います.

      動作テストはこの次回表をベースに行っております.誤りがあればご指摘下さい.

  7. Holithy☆ Says:

    返信がはやかったのはきっとたまたま見る時間が一致したため・・!

    クリップボード改善されてよかったです。Excel使えないと不便だったし。

    インターフェイス変更も期待しておりますー。

    —-
    こんなようなエクセルファイルを作って
    https://sites.google.com/site/holitsage/zatta-naiyou/test.xls
    回答1111~1223について動作確認しました。まだまだ先は長い・・

    選択肢が1つしかないと勝手に選択される仕様がちょっと気になりました
    問題はないです。

    ダブりバグについて
    最初からを押した数だけダブると判明しました。
    前回報告した以外でも幅広く生じております。(2手目選択肢でもおきます。)
    たとえば起動して最初からを5回おしてから「4名間違い」をやってみると・・

    起動直後にp31をやるとうまくいきません(2番目選択肢がおかしい)。
    一回「最初から」を押すとうまくいくようになります。
    一々再起動して試しているわけではないので他にも同様の問題があるかは不明です。

    1手目「4名が見当たらない」のあと何を選択しても4444になってしまう気がしました。
    ・・・ていうか、選択肢があるのが異常なんですね。うん。
    あー、こういうバグは1111~4444を総当りしても見つけられないなあ・・
    どうやってチェックしたものか。うーむ。

    • Holithy☆ Says:

      なぜか選択できるバグは他にも生じていました
      p3122
      p3121
      p3120
      など。

      ただし、
      p3112
      p3110
      p3101
      ではおきないといったように、
      4手未満で解けるからといって必ず生じるわけではない模様

      なお生じるときの選択肢は、たぶん絶対に
      1名正しい、2名間違い
      1名正しい、1名間違い
      2名正しい、1名間違い
      だと思います。
      ver1.0.3だとこんな選択はそもそも出るわけがないので
      なにか移行時にミスがなかったかチェックいただければと感じました
      まあ修正しなくても問題ないですが・・

      • 次郎宗光 Says:

        Holithy☆さん,デバッグにご協力いただき,ありがとうございます.

        >なぜか選択できるバグは他にも生じていました p3122 p3121 p3120 など。

        次回表2には
        >p31 2413 1,2,10,11,12,20,21,22
        とありますので,
        p31で可能な選択肢は,01,02,10,11,12,20,21,22の8つとなるはずです.
        うちが使用した次回表2にも
        >p31 01-02-10-11-12-20-21-22
        とありますので,そこの写し間違いではないはずですが,
        現実には,p31で10と20しかリストに上がりません.

        ちなみに,一回最初からやり直すと,次からは正しく8通り表示されます.
        なので,次回表の誤りではなしに,内部のデータ処理の誤りが原因と考えられます.本日戻りましたら確認いたします.

        ちなみに,ver.1.0.4で確認しました.

  8. Holithy☆ Says:

    >次回表ミス
    すみませんでした!

    >再ボタン
    ありがとうございます。
    これならかなり押し間違いは減ると思います。

    >クリップボード
    エラーがでなくなったことを確認しました。

    あと選択肢がスクロールなしで一覧できて、
    文章の長さでもある程度判断ができるようになったことにより、
    すごく使用しやすくなったと感じました。

    ただ、できたら2つだけのときは「見当たらない」は省略しないほうがいいかもしれないです。つまり、
    2名正しい2名間違い  と
    2名正しい2名見当た  が
    文字数で判別できないので、できたら見当たらないと書ききっていたほうが見やすいと思います。
    余裕がありましたらよろしくお願いします!

    適当にいじってたらでてきた変なもの
    2名正しい2名間違い

    1名正しい3名間違い

    「1名正しい3名間違い」が4つ表示される
    (大勢に影響はないです)

    • 次郎宗光 Says:

      Holithy☆さん,コメントはやっw

      次回表については,こちらの責任が大きいと思います.無理矢理お願いしちゃって申し訳ありませんでした.

      クリップボードのエラーが改善されたのには少々驚いています.いや,嬉しいですけど,「あれで改善できるなら,Microsoftさん,どうよ」と思いますね.いや,改善できた方が良いので,文句はないですけどw

      プルダウンの縦幅と横幅が好評で何よりです.でも,インターフェイスの抜本的変更に向けて動いていますので,その場凌ぎみたいなものですけど.

      文字の省略については,納得しました.
      また,最後の不具合ですが,これも確認しました.リストのクリアが甘いのかな?最初は問題なしですが,二回目にダブってしまいました.三回目で3つ.四回目で」4つ表示されるんでしょうね.

      この二つについてはまた明日にでも対応させていただきます.

  9. Holithy☆ Says:

    要望その2です
    昨日実際に使っていて次ボタンと再ボタンを間違えるという事件が発生しました
    これをうけて
    ・再ボタンは確認ありにしてほしい
    ・右上か離れたところに置くなど、間違い押しの危険低減を。
    ・入力したログ(正解数など)をコピーできる方法があると便利
    との要望がありました。

    クリップボードの問題とか各種要望への対応、よろしくおねがいします!
    まあクリップのほうはいそぎませんけども。まずはUI改善をば・・

    2段階忍耐についてアクティブブーストまで考えて文字だけで解説してみました。
    https://sites.google.com/site/holitsage/zatta-naiyou/rybnintai-kouryaku-memo
    画像はそのうち用意するかもしないかも
    途中で落ちてしまうのを解決するにはエリニア1段階忍耐とかペット散歩道やりこみが唯一策です・・
    たぶん今は一番辛い時期ですが、乗り越えれば一つメイプルの楽しみが増えますよ。
    ・・・かくいう私もローラ忍耐では落ちまくりw

    • 次郎宗光 Says:

      Holithy☆さん,コメントありがとうございます.

      バグ潰しをしたv1.0.3を先ほど公開しました.うちの確認不足でしたが,次回表2に2~3箇所,間違いがあったようです.つか,次回表を作るところまで無理にHolithy☆さんに押し付けてしまってスミマセンでした.あれは結構面倒なので,こちらの仕事ですよね><

      で,ついでに再ボタンに手を加えました.あれを押し間違えるのは完全に想定外でした.状況が分からないので良い改善にはなっていないかもしれません.が,とりあえず,手を加えました.

      クリップボードの件ですが,XP Pro SP3&MSOffice 2007では問題ありませんでした.エクセル起動中に攻略ツール使用しても無問題です.

      エクセルに限らず,MSOfficeのOfficeクリップボード・ダイアログの自動表示機能に問題があるようです.そちらの機能をオフにすればエラーは出ないはずです.

      とはいえ,何もしないわけにも参りません.こちらもとりあえず手を加えました.VS2008の標準のクリップボード操作にしております(テキストボックスコントロールのcopyメソッド使用).

      これでダメなら,うちの責任の範囲外っつーことで,ご了承ください.たぶん中身は一緒でしょうから,改善できないとは思いますが.

  10. Holithy☆ Says:

    正確に調べたらWordでは大丈夫だったのでExcelだけで生じる問題みたいです

    Excel起動後に「俺達」を起動すると、起動時及び使用中クリップボード書き込みをするさいにエラーがでまくります
    「俺達」起動後にExcelを起動した場合にはエラーは全く生じません。
    クリップボード監視ツールとExcelの競合についてはネット上でも僅かに情報はあるみたいですが・・

    >イベントガイド利用のアレ
    あれのポイントは
    ・メイプルライクなUIにする(著作権とか不明。かなりハードル下がる)
    ・正解数と間違い数をバラバラ入力にすることでシンプルな入力にする
    ・履歴は基本的に表示しない
    の3点ってところになりますね!
    何かヒントになるところがありましたら幸いです。

    ちなみに現行版「俺達」をとある第3者に使って貰ってみたのですが
    色々と指摘を頂きました。
    ・検索で見つけてもダウンロードするところまでたどり着くことが困難
    ・選択肢が多すぎて使いにくい(正解間違いをバラバラ入力という代替案を貰いました)
    ・クリップボード機能があるということに気づきにくい
    1つ目とか私も気づきませんでしたw
    でもたしかにしっかり探さないとどこにダウンロードリンクがあるか解りにくいかも・・
    あと文章量が多すぎてぞくっとしたそうです。大体私のせいです。すみません。
    ダウンロード用に別記事作って頂いた方がよろしいかもしれません(

    >忍耐の面白さ
    忍耐愛好家は下のようにして育っていきますw
    1.落ちないでクリアできるようになる
    2.KBキャンセルできるようになる
    3.KBブースト(パッシブ)ができるようになる
    4.KBブースト(アクティブ)ができるようになる

    落ちないでクリアできる。これは忍耐を面白いと感じることができる基本条件ですね。
    どんなにゆっくりでも、とにかく落ちないように。同じ道は1回しか通らない!
    できるようになったときの達成感は大きいです。

    KBキャンセルは前回言ったように落ちないようなKBの仕方があり、それを習得するということです。
    このためには忍耐のマップのどこが右KBでどこが左KBになっているか把握する必要があったり、
    左KBで落ちないようにする技術を磨く必要があります。
    2番ができるようになる、というのはすなわち「しゃがまずにクリアできる」に同意です。
    できると嬉しいっすよー!

    KBブーストパッシブ。これは「左KBはジャンプ1回分」であることから
    「1個左の足場にジャンプするのと左KB障害物に当たるのは同じだよね」
    って考えて、これを実行できるようになることです。
    使える場所は限られますが、1,2だと止まっているべきところで進めるようになる。
    自動で動けてとても嬉しいです。

    KBブーストアクティブ。
    これは「KB方向とジャンプ方向をあわせると高速遠距離ジャンプ」することをタイム高速化に用いる技術です。
    今の私にはできません・・。
    使えるようになると忍耐はスピード感を楽しむためのものに変化いたします。
    もう楽しいことこの上ないですよ!

    ・・あ、このコメントの半分が「俺達」に無関係だ。

    • 次郎宗光 Says:

      Holithy☆さん,いつもコメントありがとうございます.

      Excelですか.ちょいとググッてみましたが,

      「Officeのクリップボード収集機能と、その他のクリップボード監視ソフトを同時に使用している場合」

      に,同じようなエラーメッセージが出るケースがあるようですね.このラインでもう少し掘り下げてみます.

      >色々と指摘を頂きました。

      ありがとうございます.ユーザーの声に勝るものはありません.

      >・検索で見つけてもダウンロードするところまでたどり着くことが困難

      トップページに目立つリンクをつけてるんですけどねぇ.検察で見つけると,ブログ記事の方がヒットしちゃうんでしょうか.

      >・選択肢が多すぎて使いにくい(正解間違いをバラバラ入力という代替案を貰いました)

      やはりそこのインターフェイスが問題なんですね.そこは優先的に検討します.

      >・クリップボード機能があるということに気づきにくい

      仰る通りです.ヘルプもReadMeもつけてないですし,画面を小さくすることに専念してましたから,そこは腹を括って臨んでいました.画面構成を大幅に改定する際に,考慮いたします.

      忍耐のお話は,勉強になりました.
      Holithy☆さんも見たと思いますが,財前さんの「メイプル補完計画」の忍耐見てると,確かに楽しそうにやってますよねぇ.
      ※「財前さん」と書くとなにやら親しげに見えるかもしれませんが,面識も交流も一切ありません(Holithy☆さんが書いたコメントは総回診で見たことありますYO).

      うちはジャクム前提の忍耐クリアに五時間かかったくらいの忍耐下手ですので,

      >1.落ちないでクリアできるようになる

      までがすでに遠いですw

      >4.KBブースト(アクティブ)ができるようになる

      なんて,小学生に偏微分方程式を解かせるくらい非現実的ですww
      でも,忍耐の面白さを教えて貰ったような気がします.

      「野球は下手だけと,野球観戦は好き!」
      「歌うのは下手だけど,歌を聴くのは好き!」

      みたいに,

      「忍耐するのは下手だけど,忍耐やってるのを見るのは好き!」

      ってな感じでしょうかね.

      あれ?

      二歩進んで三歩戻っちゃったようですね><

  11. Holithy☆ Says:

    クリップボードのエラーは「OFFICEと同時に使用しないでください」と一言書けば解決する問題だったりします
    まあ根本がなおるにこしたことはないですが!

    「賢者の噴水」のTOPに書きましたがなつめ鯖に2人ほどLv30のキャラをおいときました
    あとはGQ誘われ待ちをするだけで活動予定は他にありませんw
    それはそうとバトルメイジすごい。ダークサイトにテレポに気絶範囲攻撃って30以下として超性能。

    Cielさんところは私もよくつかってます
    なんで1が勲章2が書になったんだろうと疑問に思いながら・・w
    やっぱり文章の雰囲気って大事ですよね
    記号化はあんまり特殊なものは避けたほうがよさそうです

    >画像表示は譲らない
    是非貫いてください!

    >心理的ハードル

    可能か不可能かは存じ上げません。

    >忍耐
    攻略かいてみる
    1.忍耐の基本
    ポイント:足場から足場の移動で落ちるのは言語道断
    障害物もなにもないところで落ちるのはNG!
    といってもこれが難しい最初のところですが
    エリニア忍耐、ペット散歩道などで鍛えよう。
    2.障害物系忍耐
    ポイント:左KBと右KBを理解せよ
    障害物によるKBは2種類しかありません
    右KBは右に少しだけKBします。足場から落ちることはありえない。
    左KBは左に(ジャンプ力100速度100で)1ジャンプ分KBします。左に足場があれば落ちない。
    左KBは右にジャンプもしくは歩行しながら受ければ殆ど動かずにすみます。
    下ボタンでかがむことによってキャラが向いている方向に当たり判定がすこしずれるので
    それを使って右KBをわざと受けることも可能です。
    障害物忍耐の肝はKBを見極めて落ちないようにわざとダメージを受け、無敵時間中に移動する。これに尽きます。
    カニング地下鉄B1~B3、特にB3を完璧に攻略しよう。
    なお敵がいるような忍耐の場合右に1ジャンプ分食らうこともありますがGQではないので省略。
    3.ローラー系忍耐
    ポイント:練習あるのみ!
    ルディブリアムとかで練習するしかない。
    あと逆流のときはジャンプするとか。

    >たまに遊びに
    たぶん毎日来ますのでお構いなく(ノ∀`*)

    • 次郎宗光 Says:

      Holithy☆さん,いつもコメントありがとうございます.

      クリップボードのエラーは改善されませんでしたか.無念です.
      しかし,MSOffice 2003との関係は確実でしょうか?
      うちではMSOfficeを導入しておりませんので,確かめようがありません.

      >なんで1が勲章2が書になったんだろうと疑問に思いながら・・w

      そうそうw あれは不思議ですね.最初はすごく戸惑いました.他にも書を1にしているサイトもあるんですが,Cielさんの影響でしょうかねぇ

      >>心理的ハードル

      なるほどw Holithy☆さん,あなた天才ですね.
      この発想はなかったわw

      どうしてもマスターマインドのゲーム盤のイメージが抜けてなかったようです.自分で推理するわけじゃないんだから,手とヒントの履歴は必須ではなくオプションで良いんですよね.次の手の提案だけすれば用が足りるわけですから.

      面白いアイデアなので,パクらせていただきます.
      そのうち,ですけどw

      >1.忍耐の基本

      ご丁寧にありがとうございます.
      まあ,うちは基本からなっておりませんので,基本から練習いたします.
      つか,忍耐に面白さを見出せないので,モチベーションも上がらないんですよねぇ.

  12. Holithy☆ Says:

    お大事に!

    ハイブリッドの中のNAAPMIN辺りが悪さしたみたいですねえ・・
    MC2は可能選択肢から選択型なんですね
    最速法では自分もこりゃまずいと気づいて修正したのが裏話

    ・・・というわけで実装おめでとうございます!
    速いですね!4手だとさっぱりするなあ。
    でも残念ながらオフィスとのクリップボード競合問題は未解決のようです
    ちなみにoffice2003ですー。

    ちょっとメイプルやってみて結構縦の空スペースがすくない実情に気づきました
    タイトルバーとタスクバーが意外とでかい。

    第一段階でXGA・・! 時代は進んでるなあ・・@@;
    ギルド員間の緊密な連携なしには解くのが不可能だった昔と比べて
    どっちがいいかはなかなか悩むところですがw
    簡単にはなったけど、一体感がいらなくなったというか。

    窓化で使うなら大分現実的ですね!
    すばらしい選択肢ができたなあ。

    ボタン化はスペースとの戦いですな。
    見当たらないの前で改行して2行のボタンにしてみたり・・?
    たぶんなんですが、ライオンからの返事は省略せず書いたほうがいいと思うんです
    「長いか短いかで視覚的に選択できる」ってかなり重要ですから。

    私は理論空論捏ね繰り回すのは大好きなんですが、それを広めたり伝えたりするのは不得意です
    なので当初自分一人で解法作ってお箱入りして終了の予定でしたw
    それが次郎さんがいてくださったことによって他の方の役に立つ機会を与えられましたし
    たぶん一人でやってたらMC2に到達する前にやめてたでしょう
    深く掘り下げようと思ったのもやはり次郎さんの存在あってのことです
    といいますか纏めて整頓したから生まれた方法なので、
    一人だと絶対に見つけられなかったでしょうね
    これはセパナもそうです。ここのコメントから生まれた。
    これが直接最速法に繋がるのですから、次郎さん以上に適切な著作者はいません。

    まあそこまで向上心がある人がいないのかも
    私の場合昔の自分の3段階方法(平均手数6回くらい・・?)を確立したら
    それで満足してしまい特に情報収集を行いませんでした。
    もし「4回以内で解く方法がある」だとか「急に自分達のギルドを超えるGPのギルドが出現」だとかいうことがあったら
    興味を持って調べたかもしれません。
    逆に言えばこれくらいしか広告方法はないってとこですか。

    其方の火力とギルクエへの意気込みがどの程度かは存じ上げませんが、それなりに練習すれば平均して15~18分くらいならいけるんじゃないかなあ。
    だとすると2時間でGP7000くらいさっくり稼げる計算に。
    こうなると20位台なら簡単に狙えそうですよ!目指してみては如何。

    • 次郎宗光 Says:

      Holithy☆さん,いつもありがとうございます.

      体調は完全に元通りになりました.まあ,プライベートのゴタゴタが続いているので,なかなかメイプルにINできなかったり,ブログが更新できなかったり,ツールの改定ができなかったりしているわけですけどね.

      >ハイブリッドの中のNAAPMIN辺りが悪さしたみたいですねえ・・

      いやいや,悪さではありません.完全にこちらのミスです.結果表と経過表は,あくまでも結果と経過の表ですから,それを次回表に流用したのはこちらの判断です.「どういう状況下でその流用が可能か?」という基本的な確認を怠ったのですから,言い訳できませんです.

      クリップボードのエラーは改善されませんでしたか.もぅ何なんでしょうね.クリップボードへ次の手の指令を出力するのは,非常に重要な機能だと考えています.エラーが出て使えないような状況は速やかに改善したいです.でも,これと言ってあてもないんですけど・・・

      >ちょっとメイプルやってみて結構縦の空スペースがすくない実情に気づきました

      Holithy☆さん,メイプル復帰ですか?昨年のビックバンで大きな変更入ってますので,新鮮な気持ちで遊べると思いますよ.レジスタンス職なら,のんびりやってもひと月で三次転職できますし.

      >たぶんなんですが、ライオンからの返事は省略せず書いたほうがいいと思うんです

      そうですねぇ.自分で何度もテストプレイをしているのですが,そう思います.
      ちなみに,うちがいつもお世話になってる賢者の噴水シミュレータはしえるさんの「ギルドクエスト攻略」コーナーです.
      http://f31.aaa.livedoor.jp/~ciel/maple/
      ヒットアンドブローやマスターマインドのフリーウェア,フラッシュゲームはいくらでもあるのですが,そちらでのテストは,論理的な誤りの検出にしかならんのです.

      実戦での使い勝手をテストするには,実際のやり取りが重要ですから,上記のシミュレータを使わせてもらっています.その際,文面が大事だなぁ,と感じています.

      記号化するなら,「○1△2×1」「1-2-1」などが定番ですけど,「○△△×」のような記法も良いかも!なんて思ったりもしました.が,正邪の彫刻のセリフそのままには逆立ちしてもかなわないですよね.やっぱり.

      今回,ver.1.0.2を公開しました.不要なヒントを選択肢から排除する機能を付け加えたものです.でも,最終的には,Holithy☆さんの提案の

      ・入力部は共通にする
      ・選択肢は省略なしの全文で
      ・ボタンを使う

      という方向しかなかろうと思っています.

      「1名が正しい,2名が間違っている,1名が見当たらない」

      「1名正し,2名間違,1名見当」
      という程度の省略は,ありだとも思っていますけど.

      まあ,メイプルを窓化しちゃえば,それだけで切り替えが楽になりますし,ヒントを選ぶときに正邪の彫刻のセリフ窓が隠れない程度の大きさならば許容範囲内ですので,無理に攻略ツールのサイズを小さくする必要もないことに気が付いています.

      完全に被らないサイズに小さくすると,並べて表示できるわけですが,結局操作するには交互にアクティブ化しなきゃならんわけですし,上記の理由で並べて表示できたって,気分的なメリットしかないんですよね.実際問題として.クリップボード機能が使えないと少し不便ですが,クリップボードの内容表示の欄だけ見えれば,アイコン部が隠れてても指示は出せますからね.

      なので,ヒントの入力に間違いが起こり難いような工夫が重要になってきますよね.こういうこと言うと,アイコンで次の手示す必要ないじゃん,文章で

      次は「勲・書・勲・書」でお願いします.

      って表示するだけで良いじゃん?ってことにもなりますが,ここは譲れない一点ですw

      あのアイコン表示は,見た目,ものすごいインパクトがあるんですよ.不慣れな人の心理的ハードルを下げて,「ちょっと使ってみようかな?」という気持ちを引き出すための重要な仕掛けです.まあ,そういうこと言うと,ボタン並べるよりもコンボボックスでリスト選択する方が,心理的ハードルは低いんですよね.並んだボタンに嫌悪感を覚える人って以外に少なくないんですw

      話がまとまらなくなっちゃいましたが,ボタン化はある程度仕方ないことだろうと思っています.

      >一人だと絶対に見つけられなかったでしょうね

      いろいろ褒めていただいて,嬉し恥ずかしです.
      こちらも,一人でやってたら,ここまで来なかったろうと思います.
      でも,Holithy☆さんの圧倒的に早い解法を見たとき,ものすごくワクワクして
      「この人は絶対に行けるところまで行くぞ」
      って思ったものですw

      >私の場合昔の自分の3段階方法(平均手数6回くらい・・?)を確立したら
      >それで満足してしまい特に情報収集を行いませんでした

      うちも,V1で結構満足していましたからねぇ.それに,ギルクエ全体の攻略時間短縮を図るなら,忍耐の練習した方がずっと効果的です.うちの場合はw

      うちらのギルクエはとても効率的とは言えないレベルです.まだ回数もこなしていませんし,不慣れな人に説明もしますしね.でも,これでまた少しギルクエが楽しくなりましたから,これからバンバンGP稼いでみます.

      攻略ツール作成は,本当に楽しかったです.ありがとうございました.
      うちの方はまだ終わりじゃないんで,リリースは続けます.
      たまに遊びに来ていただけると嬉しいです.

  13. Holithy☆ Says:

    4手以内祝福ありがとうございます!
    これ以上こっちのほうはそうそう更新しないとおもうのでゆっくりどうぞ!
    2番について、ボタンが動かないという意味ではなくて
    再ボタンを押したときにクリップボードに『では、「勲・勲・書・食」でお願いします.』が入る、という機能がないなあと思ったということになります。初めからになってるのに、クリップボードの内容は押す前のものだ、というところです。
    ものすごく誤解を招く表現失礼しました!
    3番→アンドゥとリドゥまちがえたー>< 終了。
    4番→○△×方式は表示スペースが節約できるのがいいですよね。万人にわかりやすいかは微妙ですが。
    テンキーは存在しないPCもあるので注意が必要かも できたらマウスだけで操作できたほうがよさそうです
    メイプルって窓表示できるんですか。しらなかったぜ・・
    ツールの形を横長く設計してみることはできませんか?
    希望の条件をみる感じだと400×1024で作ってもよさそうですよね

    こんなイメージ。
    案1は上下ボタンじゃなくてラジオボタンとかリスト選択にしてもいいかも。
    (あ、もしかしたら画像直リン禁止かも。そうだったら最速法下部添付ファイルよりan.PNGです。)

    >次に選択可能な選択肢のリスト
    最速法のページのサブページに
    https://sites.google.com/site/holitsage/analysis/fastest
    次回表 次回表2を作りました。
    どっちが使いやすいかな・・?

    リンク了解です!ただそのうち勝手に消す可能性大です。

    今の時代はオープンに技術開発してみんなが伸ばしてよりよい物ができる・・
    てな形が大好きです。期待してまーす!

    そういえば動作チェックのときwin7とか書いたけど今実家にいるの忘れてたorz
    エラーウィンドウ見て明らかなようにXPでしたw
    7での確認はまたそのうち・・

    • 次郎宗光 Says:

      Holithy☆さん,コメント遅れて申し訳ありませんでした.

      次郎の中の人がプライベートがゴタゴタしてたり,週末病で床に臥していたりと,メイプルに満足にINも出来ない状況でした.あいすみませんです.

      最終の解法「最速法」の実装はまだですが,ハイブリッド法あたりから出はじめた不具合の原因が特定できました.ハイブリッド法前は,

      ・次の手は,可能な選択肢の中から選ばれる

      という前提がありました.なので,

      h21:1123 1134
      h2121:1123 1134 1142
      (MC2)

      とあれば,

      h21:1134
      h2121:1142

      と,途中経過を抜かした最後の手だけを抽出して,

      「h21ならば,次の手は1134」
      「h2121ならば,次の手は1142」

      とやっていたわけです.が,ハイブリッド法になると,必ずしもそうとは限らなくなってくるわけですよね?

      例えば最速法の経過表・結果表には「p31」が存在しません(次回表でいう40にフラグが立っていません).これは,p31の次で確定する組み合わせが存在しないからですが,ハイブリッド法から,このような手が発生するようになっています.

      最速法では,Holithy☆さんが次回表まで作成してくれましたので,大丈夫ですが,ハイブリッド法までは,結果表から次回表を作成していたので,そういうミスが入ってしまいました.

      絞り込まれた組み合わせ以外に手を広げるようにアドバイスしたのが自分なのに,それに引っかかってるなんて,ちょっとみっともない話です.ですが,ここがはっきりしたので,先に進めるようになりました.実装は今日は無理ですが,近いうちに完成させます.

      また,インターフェイスのSSも拝見しました.

      なるほど,入力部分を共通にするのは良いアイデアですね.スペースを確保できますし.当初,最大7手だったので,どうしても頭が縦長モデルで固まっていました.最大4手にまで減ったのですから,横長ってのもアリですよね.

      ちなみに,メイプルの窓化は,昨年のビックバン(か,その前後)からだったと思います.画面に移る範囲が広いので,XGA(1024×768)の全画面表示か,窓化で使ってる人が多いと思います.ギルクエ第一段階ではXGA欲しいですよねw うちはモニタがXGAなんでSVGAの窓化で使っています.

      この攻略ツールは窓化が大前提です.いちいち裏に回るのって面倒ですよね?少なくとも次郎は嫌でありんす.

      とりあえず,ボタン化は良いかもです.とにかく,テストの段階で入力間違いが多くて難儀してましたので,ボタン化でそれが減ると思います.

      ただ,インターフェイスの変更は,最速法で正しく動作できるものを完成させてからになりますけど.

      >エラーウィンドウ見て明らかなようにXPでしたw

      「Documents and Settings」って時点でXPですねw

      クリップボードに関するエラーは少しわかったような気がします.クリップボードの操作部分だけ,.NET Framework 1.1仕様のコーディングになっているのが,たぶん,原因だろうと思います..NETでクリップボード使ったことなかったので,ググってサンプルコード真似して済ませてしまったのです.

      .NET Framework 1.1がインストールされていればエラーにはならないと思うのですが,一部分だけ.NET Framework 1.1仕様というのもおかしな話なので,.NET Framework 2.0以降の仕様に変更します.

      しかしまあ,解法から,結果表,次回表まで用意していただいて,さらにインターフェイスへの的確な助言までいただいたとなると,攻略ツールに次郎の名前を出す権利があるんだろうかと思ってしまいますw

      とにかく,Holithy☆さんの最速法が世に広まるように,頑張って宣伝させていただきます.ですが,相変わらず,うちのブログは,聖魔育成法目当ての方が圧倒的に多くて,ギルクエ攻略の検索でうちに来る人って,限りなくゼロに近いのが現状です.第三段階だけに特化しているからでしょうかねぇ.第三段階だけに絞ればどこにも負けないと思いますが,総合的に優れたギルクエ攻略サイトはたくさんありますからねぇ><

  14. Holithy☆ Says:

    ミスがなければ解法最終更新です。
    フォーマットは結局旧来のものを継続させていただきました。
    ただcsvの仕様上hだと年号になっちゃう問題があったのでpに変更。
    1手1個2手11個3手94個4手150個5手0個平均3.535手
    https://sites.google.com/site/holitsage/analysis/fastest
    というわけでめでたく全部4手以内で解けるようになりました。わーい。

    初期パタン毎に別々の最適理論を構築して手動で色々ハイブリッドしたのでコピペミスがあるかも。
    一応確認はしましたが、お気づきの点ありましたら指摘頂けると幸いです。

    あと初期パターン02,11,12,22についてのみ最適化を施しており他は昨日時点でのハイブリッド2を続行です。
    他のものについても本当は最適化を試みることは悪くないんですが、たぶん無駄でしょう。
    というのもたぶん理論最高値に達していると考えられるからです。

    理論値の求め方はそのうちまとめるかもしれませんが
    1手は1です。これは明らか。
    3手は94です。これはセパナによります。当初セパナは3手目の理論最高値を導出するために作成しました。
    5手以降は0です。
    4手は1~3手で解けなかったものすべて。
    ここまでの導出は結構簡単です。今回の方法がいずれも満たしていることがお分かり頂けると思います。
    問題は2手の理論値ですね。
    理論値は、一応13である。というように出ています。今回の方法は2つ少ない。それは何が原因か?
    3,4手最大化のトレードオフに起因します。
    4手最大化のトレードオフとして初期グループ22番は2手で解けるものがなくなりました。
    3手最大化のトレードオフとして初期グループ31番も2手で解けるものがなくなりました。
    ただし総体としてよい影響を及ぼしているのは間違いない事実なので、2手が11個しかないのは改善不能な事実。
    ・・・というわけでたぶん他のものに最適化をやろうとしても理論値の壁がありますから、改善されないでしょう。
    別に試すのが面倒とかそういうわけじゃ・・

    命名は派手に行きましょう。
    「最速法」で!
    (まあ初期配置1123以外でもこれを超えられないっていう証明はしてないですが・・。)
    これで恐らく最終更新だと思います。
    度重なる変更、更新の繰り返し、長らくお付き合い頂きありがとうございました♪

    あ、あと一応。公の場で公開する上で禍根を残すことのないように一言。
    「この解法についてHolithy☆は一切の権利を主張しません。誰でも自由に使用・加工・配布することを認めます。サポートは面白そうなものに限って受け付けますがその返答・正答を保障する義務・責務その他一切は負いません。この解法を用いることによる全ての利益不利益その他諸々は使用者が全責任を負います。」

    —–
    GUIについて
    作成技能はないので簡単か難しいか解りませんがとりあえず思った要望をぽんぽん挙げていきます。
    ・リドゥ機能
    ・あり得ない選択肢非表示
    は重要だと思います。あと現在「正解、間違い、見当たらない」をゲームの文そのままにしてますが
    たとえば正解2間違い1見当たらない1を○2△1×1とか表示してくれればその方が見やすいと感じる人もいるかもしれません
    そう変更できるオプションがあったら嬉しいです。

    一番嬉しいのは正解数間違い数見当たらない数を手動入力できるようになるオプションですが、なんか難しそうですね
    なんか上下ボタンをマウスでクリックして正解、間違い、見当たらないを調整できて、理論的に異常なのは飛ばされる
    みたいな感じを妄想

    選択リスト表示じゃなくてボタンを表のように並べて、該当するものを押す、みたいなものも面白いかも。
    縦軸を正解数、横軸を間違いか見当たらないに割り当てておいて
    それに対応してボタンを配置するって感じです。ここでも異常なものは押せないように。

    まあ最速法ならたった4回ですし、2・3回間違えてもリドゥ機能があれば大丈夫だったります。

    • Holithy☆ Says:

      クリップボードに置くべきデータが格納されるという素敵機能に気づいてませんでしたw
      すごく便利ですばらしいと思うので、その機能があるってことを明示してあるといいと思います。
      で、それについて突っ込み2点
      1.閉じ括弧が抜けてる
      2.「再」ボタンを押したときに最初に戻らない
      あと些細で面倒なことかもしれませんが、もし酒と食品を逆転させて動作するモードがあったらいいな、と思いました。
      現実で高速化を狙うためにどっちが先に持ってこれたか、で初手を変えることができたら便利ですよね。

      • 次郎宗光 Says:

        4手以内達成おめでとうございます&ありがとうございます.

        もう,実装と虫取りが追いつかないのですが><
        今日もコードいじりは無理ですし.

        1.閉じ括弧・・・ああ,恥ずかしい.対応しますね.

        2.再ボタン・・・ん~,XP Pro SP3 32bitではちゃんと動きますけどねぇ

        3.リドゥ機能・・・どんな機能でしょうか.一手戻すアンドゥ機能は検討中ですが.

        4.選択肢の提示方法については,どんな思い付きでも良いですから教えてください.
          ○2△1×1形式も悪くないと思います.
          手動入力も検討中です.テンキーの1を押すと正解の数が,2を押すと間違いが,それぞれ1増えるような形を考えています.テンキーだけで操作できますからね. それに上下ボタンを付けるのは簡単なことです.
          縦軸横軸は,画面の広さの問題で難しいですねぇ.
          メイプルを800x600のウィンドウ表示にしてSXGAモニタで並べて表示できるのが理想です.まあ,さすがにそれは無理ですけど,なるべくそこから外れないようにしたいです.
          ヒントの入力方法は複数用意して選べるようなのがベストですね.

        5.あり得ない選択肢非表示・・・実装を検討中ですが,ちょっとお願いがあります.

        例えば,「p31」に属する選択肢は「22,21,20,12,11,10,02,01」ですので,「p31」をキーにして「22」「21」・・・を値にしてハッシュテーブルに積みます.「p2222」に属する選択肢は「20,13,22」ですから,そのように積みます.これで,現在の状態で次に選択可能な選択肢のリストがゲットできます(実装では,フルセット登録しておいて要らないものを削るという形になりますが).

        ということで,結果出力の際に,一緒にこの「ある状態で次に選択可能な選択肢の一覧」が出てくると,更新がすごく楽になるのですが,Holithy☆さんの方で可能でしょうか?

        PS.
        Holithy☆さんの「賢者の噴水」をトップページのリンク集(右のサイドバー)に追加させていただきました.よろしくお願いします.

    • 次郎宗光 Says:

      >「この解法についてHolithy☆は一切の権利を主張しません。誰でも自由に使用・加工・配布することを認めます。サポートは面白そうなものに限って受け付けますがその返答・正答を保障する義務・責務その他一切は負いません。この解法を用いることによる全ての利益不利益その他諸々は使用者が全責任を負います。」

      ありがとうございます.Holithy☆さんが,うちのようなマイナーブログを訪ねてくれて,非常に大きな情報提供をしていただいたことに,感謝の気持ちで一杯です.次郎はHolithy☆さんの解法を優先して採用させていただいておりますが,Holithy☆さんの解法をより便利な形で使えるような実装が別に現われることを拒んだり恐れたりはいたしません.

      Holithy☆さんが解法を極めたように,次郎も優れたインターフェイスを提供できるように尽力いたします.

  15. Holithy☆ Says:

    俺たちに任せろ使ってみましたー!
    動きました。64bitwin7にて。
    ただなんか起動時に謎のエラーが発生したのが気になりました。使用上問題はなかったです
    https://sites.google.com/site/holitsage/zatta-naiyou/era-houkoku
    あと選択肢に3名正しい1名間違いってありましたがこれは理論上存在しないような気がします。

    —-

    で。すみません。。また解法があたらしくなっちゃいました。
    https://sites.google.com/site/holitsage/analysis/-yui–haiburiddo-2
    この解法はまだ発達の余地があるものだと先に述べておきます。
    本日セパナ法というものを作りました。
    原理としては3手目におけるパターンを最大にする方法となっています。
    当初4手とか5手とか無視してるから酷い特性になって、せいぜい理論値補正用程度、という予想だったのですが
    意外や意外、殆どの面で昨日時点のハイブリッド法を越す性能になってしまいました。
    あ、でも名称は引き続きハイブリッドでいいです。結果的に組み合わせているので。
    2手12個3手94個4手140個5手9個平均3.5626手です。
    5手はこれまでで最小、3手の数も大幅上昇、トレードオフで2手が1個へりましたが悪くありません。
    ハイブリッド構成上重要になる指標である初期パタン分布でも旧来のいずれより殆ど勝っていました。
    1個だけSCMAXに負ける要素があったので引き続きハイブリッドしているわけですが。

    「発達の余地」としては以下の3点が考えられています。ただし改善になるか改悪になるか不明です。
    1.初期配置1122にすると3手を103個にすることが可能。(ただし6手が2つ発生。ハイブリッド化で対処)
    2.4手目におけるパターン最大化を目指したセパナも構築可能
    3.3手で解けるものを2つ減らす代わりに2手で解けるものを1つ増やす、もしくはその逆変換が(ある程度)可能。

    • 次郎宗光 Says:

      Holithy☆さん,いつもありがとうございます.
      解法の更新はいつでも大歓迎です.

      現在ver.1.0.0.0の動作確認に手間取っております.
      巷に出回っている「マスターマインド」ゲームや「ギルクエシミュレータ」を,攻略ツールで解くというのが確認作業になりますが,たまに変なヒントが返ってきてしまうことがあるのです.

      そこに至るまでのヒントの選択を間違っていることが原因の大半なので,その辺のインターフェイスをどう改善するかがこちらの当面の目標となりそうです.

      >あと選択肢に3名正しい1名間違いってありましたがこれは理論上存在しないような気がします。

      まあ,こういうことですよねぇ.次郎法V1とは異なり,ヒントの選択肢も多いし,間違い探しが大変ですが,頑張って進めたいと思います.

    • 次郎宗光 Says:

      Holithy☆さん,追加コメントです.

      頭のhはつけておいてください.プログラム上で,頭の”h”があるなしは,ほとんど差がありません.が,表で検索して確認するときは,”h”がないと不便ですので.

      同様の理由で”h01-31-22″の”-“もついていた方が見やすいのでつけておいてください.実装時には”-“は削除しておりますが,SEDのスクリプト一発通すだけなので,なんら負担はありません.表が見やすい方が,チェックの時に大変助かりますので.

  16. Holithy☆ Says:

    MC2乗法についての記事拝見いたしました!
    アイコンに入れていただき光栄です!ありがとうございますー。

    ・・・そしてすみません、また解法更新です;
    たぶん今日の後はしばらく更新しなくなると思います(ネタ切れ)

    —-
    解法はとりあえずまとめという感じです。色々な意味で。
    たぶんこれ以上高速化するには総当りを完成させるくらいしかもうアイディアがないです。
    あ、でも5手のものを減らすとかいう微調整は「可能」です。あんまりしたくないんですが・・
    まず結論から。平均試行回数3.5976562回で解けるようになりました。
    https://sites.google.com/site/holitsage/ii-toko-tori-sakusen/hybrid1
    四捨五入のしかたがものすごく恣意的なんですが3.5手台に乗せました><w

    これに伴いまた名前が変わりました。今回変わるのはミスでなくて進歩です!ハイブリッド法となります。
    あとこの名前にした以上これ以降なにかとんでもないことが起きない限りまず名称変更ももうないと思います。
    次に変わるとしたら5手がなくなったときか理論最速値に達したときくらいですねw(無理無理。)
    原理は簡単です。
    「それまでの履歴が全く同じなら、その後ろを別の解析方法に入れ替えても問題ない」
    これはつまり、
    「初期配置」と「hナントカカントカ」が同じであば、その後ろを別の解析方法に入れ替えてもOKってことです。
    まあ当たり前ですよね。
    つまり「色々作ってきたもののいいとこどりをすることができる」ことがいえます。
    これを使って色々と組み合わせてできた方策が「ハイブリッド法」になります。

    ハイブリッド法のいいところ
    1.種々方策のいいとこどりができる
    2.初期配置さえ等しくすればどのような理論に基づいた結果でもハイブリッドできる強力性
    3.色々な方針のいいところをコピー&ペーストするだけで作れる

    1→まあそのためにある方法論なので。当たり前なんですが、とても素晴らしい点です。
    2→たとえば総当りで求めた結果でさえも初期配置さえ同じならハイブリッドに組み込み可能です。
    3→これは次郎さん流のプログラミングをするから可能な方法です。
    私流、つまり逐次計算型でハイブリッドをやろうとするとIFがややこしくなって少々気が滅入ってまいります。
    ていうかかなり無理がある。

    私の方法だからできる効率的な探索と次郎さん流のプログラムだからできる一部入れ替え。
    両方の長所をこれまたハイブリッドでなかなか楽しい方策になりました!

    • 次郎宗光 Says:

      Holithy☆さん,ありがとうございます.
      こちらが実相に手間取ってる間に新しい解法ができてしまうとは!

      MC2乗法の実装は終了してβ版のテストを繰り返していたところでしたが,ハイブリッド法に載せ替えることにします.ハッシュテーブル書き換えるだけですから,更新も簡単です.これが次郎法V1のプログラムだったら,
      「その程度の差しかないなら,書き換える必要なし」
      と,逃げていたかもしれません.

      便利な形にデータを整理していただいてありがとうございます.

  17. Holithy☆ Says:

    >見当たらない数導出方法
    そうですね!でも16ループって長いので逐次計算をしようとしてるとやってられない
    ・・・ような気がします。
    直感的に構成を計算したほうがいいと思い込んでしまったのでずるずる引きずっている現状です!
    いやでもたぶんこっちのほうが高速に求まるはず・・

    >マスターマインド
    この名前、貴サイトにて初めて知りました。何か一般名はあるのだろうな、とは考えていましたが・・。
    web上情報を探してみるのも面白そうですね!
    プログラムは結構我流な人間なので解るかは解りませんw

    —-
    一つ謝るべきことがあります。すみません。
    解法の名前が間違ってました。

    今まで「次回パターン最大化法(略称NPMAX法)」と思っていたのは
    実は「重み付け構成2乗法(略称MC2乗法)」とでも呼ぶべきものでした。
    ちょっとプログラムを書き間違えておりまして、偶然できていた新たな解法です。
    今日計算高速化の観点を取り入れてNPMAX法を再構築したところ、「あれ?合わない。」となり、発覚致しました。
    やー、間違った名前にしてしまい大変申し訳ない

    で、どっちがいいの?っていう話になりますが
    明らかにMC2乗法のほうがいいです。平均手数が短くて、計算量もかなり少なくて、非の打ち所がない。
    あとMC2乗法はそれ自体がさらに容易に最適化できる性質を持っている方策で
    (逆に言えばそこの設定をしなきゃいけない分面倒ともいえるんですが)
    ちょっと変更してすこしだけ手数を短くしてみました。旧来の方法に比べて15手が3種減っています。
    代わりに3手が1種増えてますが、悪くない犠牲と言えます。

    1手 1
    2手 13
    3手 80
    4手 147
    5手 15
    平均手数 3.6328125

    (まあ、あんまり変わっていないので別にプログラム修正していただくほどのものではないです。)
    (ただ、解法の名前は変更願いたいです・・!)
    回答一覧は下になります。最下部に出力データそのままのcsvファイルを添付しておきました。
    このほうが使いやすいかもしれません。
    https://sites.google.com/site/holitsage/analysis/cmc2
    プログラム化するに当たって望ましい出力フォーマットがある場合、言って頂けると有難いです。
    此方の出力時に対応できることならそれに越したことはないので。

    —-
    今回の結果を出したMC2乗法は
    「残っている可能性の中から、できるだけ1ペアのものを試験配置にする」
    「無理ならブタ」
    「それも無理なら2ペア」
    「それも無理なら3カード」
    「最悪4カード」
    というように考えて試験配置を決めていくという方法です。
    この場合、ブタと2ペアは逆にしても平均手数、手数分布は等しくなります。
    どの状態(1ペアとかブタとか2ペアとか)を重要視するかによって手数が変わる面白い方法です。
    状態とは構成の構成のことなので、プログラム的に知ることはとても簡単、計算も非常に速くなります。

    ちなみにこれまで平均3.64手を出していたソースは恐ろしく変な条件を当てはめたMC2乗法に等価なものでした。
    変なりにいい線突いてたから、運がよかったなあ・・。

    —-
    ところで「構成2乗」ってなんか解りやすい呼び方ないですかね。
    構成の構成って意味なんですが。
    つまり「1ペア 2ペア 3カード 4カード ブタ」の総称です。
    適切な呼び方があったら是非そっちの名前を使っていただきたい。よろしくおねがいします。

  18. Holithy☆ Says:

    あ、構成は最近話題には出てきてないですが
    思いっきりつかってますよ!
    ちなみに1の位に1の数 10の位に2の数 100の位に3の数 1000の位に4の数を書くので
    1123→0112 3334→1300です。
    構成のいいところは人間の感性関係なしに数式で簡単に求められるところですね!
    ところでそちらの指摘を聞いて気づいたんですが
    4カード 3カード 2ペア 1ペア ブタという区別は
    「構成の構成」
    といえるみたいです。
    詳しい説明はあれなので省きますが
    4カードになるものの構成の構成を計算すると1000
    3カードになるものの構成の構成を計算すると0101
    2ペアになるものの構成の構成を計算すると0020
    1ペアになるものの構成の構成を計算すると0012
    ブタになるものの構成の構成を計算すると0004になる模様です
    一応全部について計算してみました。遊びみたいなもんですが。
    https://sites.google.com/site/holitsage/composition

    ちなみに現在構成は2箇所で使っています。
    1.見当たらない数の算出
    構成を考えないと算出不可能ですw
    答えが1234で現在が1123だとします。見当たらない数が1であることは頭で考えれば解りますが、どう計算しますか?
    頭で考える場合はたぶんこうやってるとおもいます。
    1234と1123を比べて、はじめの1が同じだ。だから234と123をくらべる。23は共通しているが4と1は異なる。だから1だ。
    これをプログラムでやるのは難しいんです。ここで構成に変換すると・・
    1234→1111 1123→0112
    かなり問題が簡単化されます。それぞれの桁ごとに引き算をして 1 0 0 -1
    これは「1234は1123にくらべて1が1つ多くて1が1つ少ない」ということを示しています。引き算一発で求まります。
    で、見当たらない数は「多い」か「少ない」か片方だけ見れば良いので,
    負の値を0に置換してから構成の合計をとるわけです。こうやって見当たらない数を求めるのに使ってるんですね

    2.試験配置の決定
    「次回パターン最大化法」だけだと試験配置を絞りきることはできません。
    理由はよくわからないんですが実験的に「同じ構成のものを多く持つもの」を試験配置に選んだ方が手数が短くなることが解っているので
    試験配置の決定に際しても構成を用いています。
    ちなみに「同じ構成のものを多く持つもの」と「並び替えるとより多くの回答可能性になるもの」は同意義です。

    —–
    最初の試験配置は5種類しか存在しないことが確かめられました。
    https://sites.google.com/site/holitsage/statistics/all
    これを鑑みて理論最小手数を再計算したところ3.40625になりました。
    https://sites.google.com/site/holitsage/statistics/shoki5
    現行法3.64844はかなりいい線行っている結果なようです♪
    初手ワンペアでもツーペアでも理論最小手数が同じというのは興味深い結果ですね。
    さーて、5手のやつどうしますかねえ・・

    • 次郎宗光 Says:

      Hollithy☆さん,昼休みに時間がないので簡単に.

      >1.見当たらない数の算出
      >どう計算しますか?

      普通に総当たりで求められますよね?
      四人の石像が,それぞれ順番に四つのお供え物を見て,自分の欲しいものがあるかどうかを調べるだけですから.4人×4種=16回のループで求められます.

      賢者の噴水は,マスターマインドやヒットアンドブローと呼ばれる古典ゲームの亜種です.昔は初級プログラミングの練習問題にもなったくらいで,WEB上にも多くのサンプルソースが存在します.Holithy☆さんなら見れば分かるでしょう.いや,見なくても分かるでしょう.

      ただ,解法を求めるプログラムではないので,時間効率とかは無視されてます.Holithy☆さんの現在のやり方の方が賢いと思います.

  19. Holithy☆ Says:

    メールと名前が一致してる情報も探せば出てくる感じです。
    名前を略すとHS、うん一番好きなスキルの略称に同じです。
    というか今でも効果音だけ使ってますw
    なんか日々の生活で高速レベルアップできそうですよね!(
    —–
    >現状5手の改善
    そうですねー。ただどうしたもんだか!
    >パターンと組み合わせ数の図
    5手の割合の線、面白い!
    なんだかすごく綺麗に5手になりやすいピーク値がでちゃってますねー。
    どうも中途半端にしか絞れないデータ軍っていうのがありそうですね・・
    でもどうしたもんだか
    >この5手を減らすことができるのかどうか
    もしかしたら2手を減らすことと引き換えにして4手5手をある程度減らすことができるかも・・しれません。
    具体的方策はたっていませんが。
    —-
    ちょこちょこ突っ込み
    私信記事。1234じゃなくて1123!

    「次回パターン最大化法」の完成の記事。
    勲勲勲勲っておいたときに40を含めて5通りって言っているのに
    勲勲書食っておいたときに40を無視して13通りになっているのが違和感

    —-
    寝てる最中に振ってきた考え。寝ぼけてるので伝わらなかったらごめんなさい。検証もあんまりしてない思いつき。

    ●1.理論最短手数は(一応)導出可能
    ライオンに答えを聞くという現象を次のように捉えます。
    1.試験配置=回答であるという答えをえること。
    2.1でないとき、回答が13種類のパターンのいずれに属するかの答えをえること。
    (13種類っていうのは00 01 02 03 04 10 11 12 13 20 21 22 31のいずれか。当初30でプログラム組んでて動かなくて泣いた)
    ここに「最適配置とは、回答可能性を13パターンに均一に配分する答えの返ってくる配置である」と定義します。
    (つまり、あるパターンが14種類の可能性を持っているとき、これを最適配置にかければ回答が確実に判明するようなものです。)
    こうすると最短平均手数が求まります!

    まず一番最初に聞くときです。このときの回答可能性は、まだデータなしですから、1111~4444のどれか。1パターンのみです。
    なので回答であるという答えは1個のみ得られます。のこったデータは13パターンに分類されます。
    2回目に聞きます。今わかったように13パターンありますから、回答であるという答えは13個得られるわけです。
    残ったデータは13×13=169パターンに分類されます
    3回目に聞きます。169パターンありますから回答であるという答えは169個得られます。
    残ったデータは13×13×13=2197パターンに分類・・されるように見えますが、
    回答可能性はそもそも256個しかないことに着目します。
    つまり3回目が終わった時点で「確実にいずれのパターンも要素を1つしか持たない」状態になるので
    4回目を問えば「残っている答えは全て正当できる」と言えます。残っている答えの数は256-1-13-169=73
    さあめでたく何回目にいくつの答えが得られるか解りました。あとは平均とるだけですね。
    (1+2*13+3*169+4*73)/256=3.2265625
    これが「最適配置が存在する」と仮定した場合の理論最短手数となります!
    あ、定義だの仮定だの散々主張してますが「最適配置」なんて存在しません。ありゃー苦労しません(笑)
    なので上の理論値は絶対に到達できないものです。

    ●2.パタン分類論において4カード 3カード 2ペア 1ペア ブタという分類はかなり本質的(ただし使用する配置として)
    じゃあ理論値を修正することは無理か?そうでもありません。
    理論値を導出するに当たって重要なのは、「いくつのパターンに回答を分類できるか」、「どれくらい均一か」
    ということであるのはご理解いただけたかと思います。
    2回目以降についてはかなり複雑になってしまうのでとても頭では考えられないのですが
    1回目だけは簡単なんです。パターンが1個しかないから。
    で、どう簡単かというと、「配置は本質的に5種類しか存在しない」。
    5種類ってなにか?これです→「4カード 3カード 2ペア 1ペア ブタ」

    私は先日「ある試験配置を用いてある回答可能性を分類したとき、どのパターンにいくつが配分されるか」の統計データを示しました。
    ここで「ある回答可能性」を1111~4444とします。
    そうすると(実験的なもので、まだ正確に検証はしていませんが)4カードである試験配置をしたらいつでも同じ統計データになってしまうんです。
    3カード 2ペア 1ペア ブタでも同じです。
    1111~4444まで全部計算して統計データを考えると、たぶん統計データは5種類しか出てこないはず!
    つまり「1回目の試験配置を総当りすることは恐ろしく簡単」と言えます。めっちゃ高速化できます。
    それどころか「1回目の試験配置それぞれについて、理論値を改めて導出」することも当然できるはずです。
    まだやってませんが。
    総当り以外での最良解に近づくアプローチとしてすごく面白そうです。
    行き当たりばったりではなくて理論的な「最高」とか「目標」が決まることは大変有意義でしょう。
    できたら報告しますね!

    • 次郎宗光 Says:

      Holithy☆さん,おはようございます.
      グラフをお見せしたかったので,今回は記事に回しました.

      >私信記事。1234じゃなくて1123!
      >勲勲書食っておいたときに40を無視して13通りになっているのが違和感

      そうですね.うちも半分寝ながら書いてましたので,見直しが甘かったです.
      本文の方は後で修正かけておきます.

      朝忙しいのでざっと目を通したくらいですが,うちからも一点,

      >パタン分類論において4カード 3カード 2ペア 1ペア ブタという分類はかなり本質的(ただし使用する配置として)

      以前のコメントで,Holithy☆さんが「構成」と称して「1123(勲勲書食)」を「2110」,「3334(食食食酒)」を「0031」と記号化していました.それは1ンペアか3カードと分けていることとほぼ同義なんだよなぁと見ていました.

      詰めの段階ではこの分類はあまり意味を成しませんが,幾何学の補助線のように,途中の思考段階では意味があるもんですね.

      ちなみに昨夜(2/25)もギルクエやりました.「書酒勲酒」を次郎法V1で,6手解きましたが,「次回パターン最大化法」なら3手で解けた手でした.

  20. Holithy☆ Says:

    >わざわざグラフィカルなツールを作成しようなんて
    誰でも使える解りやすいものを目指すなら、GUIなのは重要だと思います。
    私にはそこいらの技術はないのでうらやましいばかりです。

    >別途ブログ記事
    楽しみにしてます!

    >平均手数が0.1減るかどうか
    たしかにそんな感じでしょうね!
    ただもしかしたら「2手のやつと5手のやつが減って平均手数は大差ないけど、全部4回以内で解けるようになる」
    可能性があるかもやしれません。
    やってみる価値はあると思います。(ただ計算量が膨大だー・・)
    たぶん14重ループ(試行する配置が7回、毎回パタン分類するためにもう1ループ)とか必要になるんですよね。動くかどうか。

    >先に試験配置があって,得られるパターンはその結果
    パタンと試験配置のどっちを重視するか、っていうイメージですかね!
    パタン重視したほうが人間の頭では考えやすくなるものの、試験配置を重視したほうが情報量は大きくなる
    前者は脳で考える向け、後者はコンピュータで計算する向けと言えそうです。

    —-
    名前ですかー・・。
    「次回パターン最大化法」とかどうでしょ?方策の核心を突いた名称と思います!

    おー、素敵な名前にして頂きありがとうございます!

    私の名前の載せていただけるのはこの上ない光栄です。
    ・・ただ特に「こうして欲しい」などの希望は浮かばないです。完成品見たときのお楽しみってところで・・!

    —-
    総当り法を現在ちょっと方針考え中です。2通りくらいあります。
    1.突撃法(本当にそのまま総当り法)
    1111~4444を7回の試験配置でどんどんパターン分類していきます。
    分類したパターンの構成要素が1つだけなら「回答が判明した」と処理します。
    1111~4444全ての可能性が、構成要素が1つしかないパターンに分類できたなら「全て判明完了した」とわかります。
    「全て判明完了」に要する手数合計を計算して、一番少ないものが「最適探索法」と呼べるといえます。
    →とても原理的で作りやすい。計算に時間はかかりそう。

    2.固有パターン探索法
    縦軸に1111~4444 横軸に1111~4444を割り当てた表を作ります。
    縦軸を「正しい解答」横軸を「試験配置」として、正しい数と見当たらない数を計算し、表に埋めていきます。
    その表から適当に1~7個を選んで並べます。
    その並べた配置がいずれの他の回答にも重複しない「その回答独自のパターン」であれば「回答が判明した」と言えます。
    このパターンのことを固有パターンと命名します。
    (たとえば前回のgoogleサイトにあるh1**2**3**っていうのは「固有パターン」の1つの形と言えます。一つの回答に対して無数の固有パターンが定義可能です。)
    固有パターンの平均長が最小になるようなパターン選択法が「最適探索法」と呼べるといえます。
    →パターン演算は1回だけ行い、あとは順列計算をするだけなので高速だろう。ただどういうように作ったものかイメージわかない。

    もし「この膨大な計算を最小メモリで最短時間で計算する」ことを目指すなら固有パターン探索法を使うべきだと思いますが
    とりあえず今回は突撃法で組んでみるつもりです。

    • 次郎宗光 Says:

      Holithyさん,いつもコメントありがとうございます.

      とりあえず,「次回パターン最大化法」の紹介記事を書きました.一回で収まらなかったので連載になりますけど,一つでも多くのギルドに「次回パターン最大化法」の恩恵が届くように,しっかりとした記事にして,使いやすいツールに仕上げたいとはりきっております.

      ところで,Holithyさん,いや,Holithy☆さん.人違いかもしれませんが,あなたも聖魔の人だったのでしょうか?次郎のサテライトは楽天にはおいてなかったんですよねぇ.

      • Holithy☆ Says:

        紹介記事を見せていただきました!
        こんなに解りやすく説明できるとは・・ すごいです!

        あ、そうですね。聖魔やってました。
        私の名前で検索すると出てくるのは殆ど私本人に関するものです。黒歴史群ですうははは。

        —-
        突撃法を作り終わったのですがメモリ不足で動きませんでした。。
        その代わりに現在固有パターン探索法を使ってプログラム作成中です。
        作成中なのですが、大分迷走しております。構成が複雑・・!

        • 次郎宗光 Says:

          Holithyさん,いつもコメントありがとうございます.

          やはり聖魔のお方でしたか.まあメールもGMailでURLは空欄だし,人違いか何か事情でもあるかと思ってましたw

          で,やはりメモリ不足が出てしまうのであれば,現状五手かかってしまう組み合わせにターゲットを削ることを考えるのはどうでしょうか?

          初手の1234は確定として,初手の結果のうち,五手に及ぶパターンは以下の16通りです.

          h101201331420
          h102201322421
          h102211302420
          h102211312420
          h103221321420
          h103231322420
          h111201311410
          h111211301410
          h111231322431
          h112211302412
          h112212310400
          h113203320420
          h113203331420
          h121221311420
          h122222304431
          h131222322431

          つまり,初手の結果のうち,

          h101,h102,h103,h111,h112,h113,h121,h122,
          h131

          だけに集中することで計算量をいくらか軽減できますでしょうか?

          コメント欄はちょいと表現力が足りないので,別に記事にします.

  21. Holithy☆ Says:

    >「この手を試してこの結果だったら次はこれを試すよ」という固定された分岐と,結果の入力,次の手のグラフィカルな表示
    なるほど!
    確かに実用上そういうプログラムのほうがいいかもしれないですねー
    私のように逐次計算する場合は状況変化にある程度柔軟に対応できる(※)のが強みですが
    そちらのほうが作るのも簡単、動作も速そうです。やー、思いつきませんでした。
    でしたらどういう順番をたどって解にたどり着くかというデータを提供すればそれはプログラム改良に直結するわけですね!
    と感じたので提供してみます。
    https://sites.google.com/site/holitsage/itiran
    あ、ちなみにこれを出力するのに2・3分しか掛かってません。行列計算に特化したプログラム言語を使ったので速いんです。

    ※逐次計算型ならたとえばアイテムをいくつか消失させてしまった場合でも対応可能なんですね
    現在試験配置はプログラムで自動決定していますが、当然人間が手動決定したものを使った計算も可能だからです。

    >ワンペアは全256通りの組み合わせのほぼ半数を占めていますから,それとの比較から入ることで最長手と平均手の両方の軽減が可能
    これもなるほどー、とすごく感じました!
    結果を鵜呑みにしてたんですが、そのように理由説明頂けてやっと理解できた感じです。
    ありがとうございます。

    >提案1
    最後に作ったプログラムがそれに該当します。
    総当りしてるから全統計が得られているわけです。

    >提案2
    はい、まさしくその通りですorz
    そうなんですが。うーん。難しいです。

    つまり今私がとっている方策は「1回先の未来を予測して答えの種類を最大化する試験配置」を導く、というものになります。
    次郎さんの仰ることは「2~5回先の未来を予測して答えの種類を最大化する試験配置」を導く、というものです。
    1回先の未来を予測するなら計算量は単純計算で「残っている可能性の数」×256になります。
    2回先の未来を予測するならこの256倍、3回先ならさらにその256倍・・・ とんでもない数にw
    5回先なんかやろうものならコンピュータが扱える量を超過してしまうかもしれないです。
    でもなんとかしてやってみたいですねー・・

    >「パターン分類する試験配置」「答えの種類を最大化する試験配置」
    あ、これ実は同じなんです。
    「答えの種類を最大化」っていうのは「できるだけ多くのパターンに分類する」ってことです。
    1回の試験配置でより多くのパターンに分類できればそれだけ高速に回答は絞れますよね。
    たとえば最初に1123って置くことは「14種類のパターンに分類するデータを得る」ことと同義です。
    これは理論上最大値なのでこれが最適であることは間違いありません。

    • 次郎宗光 Says:

      Holithyさん,リンクのgoogleサイトを拝見しました.

      もう脱帽ですね,あの回答一覧.あそこまで分かり易いデータ整理の仕方をできたなら,わざわざグラフィカルなツールを作成しようなんて思わなかったでしょう.あれは完璧です.

      あのデータを使ってどのように実装するかについては,別途ブログ記事を書きますので,よろしかったらご覧ください).

      >5回先なんかやろうものならコンピュータが扱える量を超過してしまうかもしれないです。

      そうですね.昼休みにさらっと書いたものですが,よくよく考えるとすごいこと書いてしまいました.まあ,現状の完成度の高さを考えれば,そこまでやっても平均手数が0.1減るかどうかでしょう.それに,人間の工夫の余地がなく,単にコンピュータぶん回すだけの作業ですから,あまり意欲は湧きませんね.

      もっとも,「この膨大な計算を最小メモリで最短時間で計算する」という目標を別に立てれば,それはそれで面白い挑戦ですけど,うちのブログが扱う範囲を超えますので,うちは丁重にご辞退させていただきます(敵前逃亡w).

      >>「パターン分類する試験配置」「答えの種類を最大化する試験配置」
      >あ、これ実は同じなんです。

      おっしゃることは分かります.これはうちの用語の使い方が正確でないため誤解を招いてしまいました.

      「パターン分類」とは,要するに次郎法V1のことです.「4カード」「3カード」という合意と理解の得やすいパターンを先に決定して,そのパターンにひっかけるための試験配置を選択することです.次郎法V1は,「両端に勲章が一つずつあるワンペアを抽出するためには,この試験配置が必要だ」という考え方で出来ています.

      Holithyさんの手法(と,ブタの攻略もそれに近いものですが)は,先に試験配置があって,得られるパターンはその結果ですよね?ということです.まあ,あまり重要な違いでもないので,さらりと流して下さい.

      さて,実装に入りますが,事前に確認しておきたいことがあります.

      1)

      Holithyさんが自分でプログラムを書いて自分で実行して自分で得た攻略手順ですので,Holithyさん自身で「○○法」という名前を付けていただけませんでしょうか.とりあえず「Holithy法(仮名)」として話を進めます.

      2)

      「Holithy法(仮名)」をベースに「賢者の噴水は俺に任せろ」の新バージョンを作成しますが,その名前は「賢者の噴水は俺達に任せろ」と改めて,Holithyさんの関与を明示したいと思います.

      3)

      差支えなければ,ファイルのプロパティのバージョン情報に表示される情報に,何らかの形でHolithyさんのお名前を入れさせていただきたいのですが,どのような形をご希望されますか?

      (コアな部分をHolithyさんがすべて一人で片付けていますので,それ相応の待遇が必要と思います)

      以上よろしくお願いします.

  22. Holithy☆ Says:

    先ほど言っておりました、「答えの種類を最大化する試験配置」を作るプログラムが完成しました
    まずは結果です。
    1手→ 1
    2手→ 13
    3手→ 79
    4手→ 145
    5手→ 18
    平均→ 3.64844
    全部5手以下で解けるようになりました。なんだかこれで最高速な気がしてきました。

    プログラムの作り方についてです。作り方は2種類あります。
    1.「答えの種類を最大化」する
    2.「各答えに所属する”回答の数の最大値”を最小化」する
    2番の方が要求に対して直接的ですが得られる配置データは全く同一です。

    プログラムの原理。
    まず1111~4444まで全部の可能性を作ります。
    それら全てと回答可能性全部について「正しい数」、「見当たらない数」を計算します。
    正しい数と見当たらない数の種類が一番多い回答可能性を導きます。
    これだけだと充分に絞りきれないので、ここにさらに「同構成数が最大」の条件で絞ったものを試験配置に採用します。

    例 回答可能性が「1111 1112 1123 1234」の4つだとします。
    まず1111に対して1111~4444まで全部の「正しい数」、「見当たらない数」を計算します。
    そうすると 正解-見当たらない とすると
    1111の場合
    0-0 0個
    0-1 0個
    0-2 0個
    0-3 0個
    0-4 81個
    1-0 0個
    1-1 0個
    1-2 0個
    1-3 108個
    2-0 0個
    2-1 0個
    2-2 54個
    3-0 12個
    4-0 1個

    1112の場合
    0-0 0個
    0-1 0個
    0-2 19個
    0-3 46個
    0-4 16個
    1-0 0個
    1-1 15個
    1-2 42個
    1-3 51個
    2-0 3個
    2-1 12個
    2-2 39個
    3-0 12個
    4-0 1個

    1123の場合
    0-0 2個
    0-1 20個
    0-2 42個
    0-3 16個
    0-4 1個
    1-0 4個
    1-1 40個
    1-2 46個
    1-3 18個
    2-0 5個
    2-1 20個
    2-2 29個
    3-0 12個
    4-0 1個

    1234の場合
    0-0 9個
    0-1 48個
    0-2 24個
    0-3 0個
    0-4 0個
    1-0 8個
    1-1 60個
    1-2 36個
    1-3 4個
    2-0 6個
    2-1 24個
    2-2 24個
    3-0 12個
    4-0 1個

    ・・・というように計算されます。
    一番バラついてるのは1123です。最大個数も「46」となって他に比べて一番小さくなっています。
    なのでこの場合は1123を試験配置に用います。はい、初期は1234がいいという幻想が砕けました。
    そして上に書きましたようにもし構成が同じものがあるならそちらを優先することで0.2手くらい高速化してるようです。

    • 次郎宗光 Says:

      Holithyさん,いつもコメントありがとうございます.

      具体的な統計資料を提示していただき,本当にありがとうございます.やっと次郎も理解できるようになってきました.

      最長5手.平均3.6手.素晴らしい++です.最長5手というのが何よりも強みですね.

      プログラムの原理は理解できました.Holithyさんも気が付いているでしょうが,「賢者の噴水は俺に任せろ」は,「正解を求めるプログラム」ではなく,「既に確立済みの手順をグラフィカルに提示するプログラム」です.手順とは,「どういう回答が来たらどういう試験配置を試すか」という順番です.具体的には,「ギルクエ―第三段階攻略(5)」で表を使って説明した内容です.

      全256通りの組み合わせについて一つの表で説明するのが困難なので,パターンに分けて説明してきました.「ブタ」以外は,色と数が決まってしまうと数通りまで絞り込めますので,その説明で十分でした.が,ブタは24通りで逸れ以上分類できないため,あのような大きな表となってしまい,可読性に支障が出てきました.

      それを回避するために作成したのが「賢者の噴水は俺に任せろ」です.あのプログラムは,既に完成している攻略パターンを表示するためだけのプログラムです.つまり,「この手を試してこの結果だったら次はこれを試すよ」という固定された分岐と,結果の入力,次の手のグラフィカルな表示,それだけです.

      元となる攻略手順は,事前に次郎が頭を使って導出しています.具体的には,巨大な表を作成して,手入力をし,並べ替えをして最短手を探しているのです.

      ただ,その最短手を探すのが手間で,ある程度の方針が必要でした.それが「パターン分類」であり,「見当たらない数を置き換える」であったりしたわけです.しかし,それを手作業で行うのが正直ばかばかしいほど面倒くさくなってきたので,自動化を検討していたところでした.

      Holithyさんのプログラムは,まさにそこを自動化するプログラムだったわけです.おっしゃる通り,たかだか2^10未満の組み合わせですから,総当たりで最適な「試験配置」を求めてしまうことは可能ですし,リアルタイムでの運用も可能です.

      計算量を正確に求める知識はありませんが,Perlで書いてWindowsXPが走るPCなら,長くても一日で解析が完了できますね.事前チェックと吐き出される膨大な結果の整理に,その数倍の時間を使いそうですけど.

      次郎はリアルタイムに計算する方法は採りませんので,数時間かけて解析してえられた最適手順を基に,それをグラフィカルに表示するプログラムを別途作成すすることにします.

      で,今回のHolithyさんの結果ですが,初手が「1123」(ワンペア)の場合に最短手が得られるということは,言われるまで気が付きませんでしたが,言われてみれば確かにその通りですね.ワンペアは全256通りの組み合わせのほぼ半数を占めていますから,それとの比較から入ることで最長手と平均手の両方の軽減が可能だったと思います.まあ,人がやったことを後から批評するのは誰にでもできますけどw

      僭越ながら,次郎からもご提案があります.

      1)

      もし,Holithyさんのプログラムが「可能性のある残った組み合わせの中から試験配置を選」んでいるのであれば,全組み合わせを試すことをお勧めします.

      というのは,全組み合わせを表にして眺めてきた経験から言いますと,ダミー(使われないと分かっている色)を使うことが効果的な場面がいくつかあったからです.つまり構成が「2110」と分かっている時に「2200」の手を試す,というようなことです.これで収束が早くなることもありました.

      2)

      必ずしも,「答えの種類を最大化する試験配置」が最適とは限らない可能性があります.ある試験配置で答えの数が四までしか絞れなくても,次の手で四種類に分解できれば,全回答がその次の手で確定できることになります.が,別の試験配置で答えの数が三つに絞れたとしてもそれを二つにしか分解できない場合,最悪次の次の手までかかることになります.

      そういうケースを幾つも経験しております.

      つまり,最初から最後まで一本調子の同じ方針で貫くことが,必ずしも最適解を得る道とは限らないと考えています.

      1),2)共に次郎がゴニョゴニョやってきた経験の範囲での話ですので,本当の最適手が見つかればこれに該当しないこともあり得ます.

      今,お互いに目指すものが「クリアまでの最短手」ということで歩んできたわけで,そこに到達するまでの手段が「パターン分類する試験配置」「答えの種類を最大化する試験配置」だったわけです.それぞれの試験配置で解を得る事が目標ではないわけですよね?

      Holithyさんは,次郎よりもずっと先に進んでおられまして,最長5手,平均3.6手と,従来の方法から格段に優れた解法まで到達されたようですので,次のブレイクスルーは総当たりしか残ってないと思います.

      ま,これは自分で試してみます.perlでちょろっと書けるプログラムですので.最近プライベートがゴタゴタしているので,すぐに取り掛かれることではありませんけど.

  23. Holithy☆ Says:

    私の方策についてとりあえず確かめてみました。
    配置の方法によって答えは変わりますが、なんだかシンプルイズザベストのようです。
    平均4回程度というところですね。6回必要になるのは(配置ミスしなければ)4132だけです。
    本当に最高速を極めるなら一番最初に1234で評価した後に貴殿の場合分け法のような考えを適応して
    それで試験配置決定法を変えていくといい・・・かもしれません。

    試験配置=同じアイテム使用数最大化
    2 2 3 3 3 4 2 2 3 3 2 2 3 3 3 4 4 3 4 3 4 3 4 3 4 4 4 1 3 3 2 4 4 3 3 4 3 4 4 3
    3 4 4 3 3 2 3 3 4 4 4 4 4 4 3 3 4 4 4 4 3 4 4 4 3 2 2 4 3 4 3 4 4 4 4 3 3 4 2 5
    3 4 5 4 3 3 4 4 3 4 4 5 4 3 4 3 3 4 4 4 4 3 3 5 3 4 5 4 3 4 4 4 4 4 4 5 4 4 4 4
    3 5 3 3 3 4 5 3 4 4 5 4 3 4 5 4 4 5 4 4 3 5 3 4 3 4 5 5 4 4 4 5 4 5 5 5 5 4 4 4
    4 5 3 3 3 4 3 4 4 4 4 5 4 4 4 3 4 3 4 4 4 3 4 4 4 4 4 4 4 4 3 4 4 4 4 4 4 4 4 5
    4 6 4 4 4 4 4 5 4 5 5 4 5 4 5 4 4 4 4 5 5 4 5 5 4 5 4 5 4 4 4 4 5 5 5 5 4 4 4 5
    5 5 4 4 5 5 4 4 4 5 4 4 4 4 5 5

    1→1
    2→11
    3→59
    4→139
    5→45
    6→1
    平均→3.85547

    試験配置=見当たらない最小化+正解数最大化
    平均→3.90234

    試験配置=同じアイテム使用数最大化+見当たらない最小化
    平均→3.89062

    試験配置=同じアイテム使用数最大化+正解数最小化
    平均→3.85547

    —短所について—-
    1.最初に全種類使う
    特徴なんですが、大きな短所でもあります。
    卓上で最高速を目指す上での最適のみ考えているので、「食品、酒の入手に時間が掛かる」という現実を無視しているのです。
    もちろん現実を考慮した試験配置への切り替えも可能です。配置を手動入力すればいいだけですので。
    たぶん現実での最高速は、持込ができないのであれば最初に「書 章 章 章」とするってとこでしょうか。
    数が1:3と2:2のどっちがいいかはまだ調べていませんが。
    ちなみに次郎法V2でもこの短所にぶつかると思います。はい。

    2.配置変更する数が多い
    1回の質問で得るデータ量の最大化を目指しているために、どんどん変更が必要になります。
    置き換えに時間が掛かるので、手数は少ないものの、現実に早いかどうかは・・?
    現実速度を考えると脳負荷の少ない簡易な方法でぱっぱと解いたほうがいいのかもしれないです。

    —-
    次郎法V2拝見しました!
    全部やっちゃえ、という力ずく人間の私にはできない体系的なまとめかたですごい・・
    まだ全部は把握できていないので後ほど確り読ませていただきます!

    —-
    私の言っていた方法について。
    次郎法V2でアイテムを変更していかないだけなのですが、
    収束が遅い代わりに短所1に対して強くなるので実用上は速いのかもしれないです。
    回数制限を無視できる方法があることを見て、使えるかな、と考え直しました。
    これは人間の頭で簡単に考えられます。
    この方法を使っていた時代に「見つからない」の意味を知らなかったので「正解数」しか考えてないです。

    例 答え=4121
    1回目→1111 2
    2回目→2111 2
    3回目→2211 1→正解数が減ったから、2個目は1だ。
    4回目→2221 2→正解数が増えたから、3個目が2だ。1個目と2個目が間違ってるんだから、4つ目が1だ。
    5回目→3121 3(ここまで酒・食品必要なし!)
    6回目→4121 4→答え!

    繰り返しますが解くのにかかる手数はやや多いです。特に3とか4が多いとそれなりに掛かります。
    ただし頭を使う量、置き換えをする量が少なく、使用するアイテムの種類が増えるのが遅いという実用的利点があります。

    —-
    投稿編集につきましてはお任せします!

    • 次郎宗光 Says:

      Holithyさん,ありがとうございます.
      平均3.9手とは,恐ろしく素晴らしい解法ですね.脱帽です.

      記事の本文で書いておりますが,
      「パターン分類が攻略法そのもの」 ギルクエ―第三段階攻略(4)
      これは,今となっては間違いであると分かりました.

      基本的に
      ・「試験配置」を決める
      ・結果を見て,次の「試験配置」を決める
      という手順を繰り返すことは固定ですので,

      「次の試験配置をどう選ぶか」

      が攻略法(アルゴリズム)の本質であると言えます.

      次郎法V1ではパターン分類をしましたが,これは「パターンに分類するというルールで次の手を決定する」という攻略法だったわけです.

      次郎法V2は,「見当たらない数を置き換えるというルールで次の手を決定する」という攻略法であると言えます.

      Holithyさんの攻略法は「見当たらない数を一番早く減らす」であったり「同じアイテム使用数最大化」であったりするわけですよね?

      Holithyさんの言葉を借りれば,「試験配置の決定方法」(2011年02月21日 23:13のコメント後半)が,すべての肝だと思いますが,そこがまだよく理解できていません.

      ここは,頭を使って絞り込むのではなく,たかだか2^10未満の組み合わせだから全組み合わせを総当たりで確かめるのをコンピュータにやらせて最適な「試験配置」を探せばよ,という理解で宜しかったでしょうか?.

    • 次郎宗光 Says:

      次郎法V1では,ギルクエのクリア時間を最短にするという視点が欠けています.その意味では,少なくとも食までは四つ集めないと始まらないV1は,それ自体が欠陥だと言えます.

      が,そもそも次郎法の意味は「次の手を少しでも多くのメンバーが予測できる」とうところに主眼を置いています.つまり,少しでも多くのメンバーが参加しているという気持ちを持つことで,一体感や団結力を増そうというものです.

      V2では,酒は必要最小限しか使いませんし,食もとりあえず二個から開始できますので,その辺は改善されていると思います.が,根本的に私どものギルクエは最速を目指せるレベルには到達しておりませんので,そういう視点が根本から欠如している次第です.

      そのせいで,目指しているレベルにも差がありますゆえ,うちのやってることが「物足りない」と感じられるかもしれません.相済みませんです.

      • Holithy☆ Says:

        私の解法の基本はこのような形であると明確にしておきます。
        目標
        1.256個の可能性から1つの状態を見つける
        2.最小手順にする
        手法
        1.256個から誤りである可能性を削除していく
        2.1回の試行で削除できる可能性を最大にする

        —–
        つまり私の攻略法の肝は手法2です。一回の試行でどれだけ多数のデータを削除できるかが関心事!

        —–
        上のような前提を基にした解法では「次の試験配置をどう選ぶか」は重要なテーマになります。
        すなわち「試行した後に残る可能性が最小になるのはどのような配置か?」という問題となります。
        これについて理論的な解答を得るのは難しいです。例で示すくらいしかできません。

        今残っている可能性を次にとります。
        1111 1112 1121 1211 2111 1122 1212
        さて、どのような配置で試験すべきでしょうか?
        たとえば、3333で試験したらどうでしょうか。
        これだと絶対に4人が見当たらないと言ってきます。これじゃダメです。
        4444とか3434とかで試験するのも同様にダメです。
        ここから解るのは
        ●試験配置では、答えの可能性に含まれない要素(ここでは3,4)を使うべきでない
        ということです。至極当然ですが。
        ・・・えー、試験配置の選び方で理論的に説明できるのはここまでなんですね。
        あとは感覚的というか、行き当たりばったりで決めるしかないんですが
        流石にそれでは話が進まないので
        ●試験配置は、答えの可能性のどれかから選ぶ
        と決めてしまいます。これが最適な考え方かどうかは解りません。勝手に決めただけです。
        さてそれでは7個のうちどれにしましょうか。これも理論的な回答はわからないです。わからないんですが
        私は次のような選択方法があると考えました。
        1.一番初めのものを選ぶ(もしくは適当に選ぶ)
        2.同じ構成のものが多いものを選ぶ
        3.配置した後に「同じ数」を計算したときに一番大きくなると期待できるものを選ぶ
        4.配置した後に「見当たらない数」を計算したときに一番小さくなるとと期待できるものを選ぶ
        で、それぞれについてプログラムを作って、全部試してみたところ、2番を採用したら「たまたま」平均手が最小になった
        のでこれでいいや!という適当な考え方です。

        構成の計算方法は前も示しましたので詳細は省略しますが、たとえば上の可能性の構成を計算すれば
        0004 0013 0013 0013 0013 0022 0022
        となります。構成が0013であるような可能性が一番多いですね。なのでこれを選ぶことにします。
        4つあるうちどれにするかは決めようがないので、この場合は一番最初の1112を試験配置に選ぶことになります

        —–
        「なんでこれでいいのか?」と問われれば「勝手に決めただけで、最適かは解らない」としか答えようがないです。
        身も蓋もなくて申し訳ない。理解いただけなかったのも無理はない・・。
        特に「答えの可能性のどれかから選ぶ」という考え方はかなり強引なものです。
        たとえば可能性がブタしか残っていない場合、答えの可能性の中から試験配置を選ぶのはたぶん最適手じゃない気がします。

        —–
        ちなみに最初に1234とするのは、全部の可能性について配置を計算すると1111になるようなものが24個あって最多だからです。
        4番で計算してもやはり1234(もしくはこれを並べ替えたもの)にしたときに見当たらない数が最小だと期待できるとでます。
        感覚的にもバラバラにしたほうがデータは多そうですよね。

        —–
        これを書いていてちょっと別の試験配置決定方法のアイディアが浮かんできました。
        まだ固まっていないのですが
        「聞いたときに、返される答えの種類が一番多くなるような配置」
        をするといい・・のかもしれないです。
        たとえばこれによって一番最初の配置を考えてみると
        1111と配置したら、返される答えは正解-間違い-見当たらないとして
        4-0-0 3-0-1 2-0-2 1-0-3 0-0-4
        のどれかしかありえません。5種類です。対して1234と配置すれば、返される答えは
        4-0-0 3-0-1 2-0-2 2-0-1 2-0-0 1-0-3 1-0-2 1-0-1 1-0-0 0-0-4 0-0-3 0-0-2 0-0-1 0-0-0
        の14種類のどれかです。
        答えの種類が多ければ、それだけ可能性の数は分散しているはずなので、一気に沢山消去できるかもしれません。
        ・・・ただどうやって実現したものか。また追って報告致します!

        —–
        そういえば次郎法V1でも序盤で食が4つ必要なんですね・・。考えが抜けてました!
        そうなると次郎法V2は完全に次郎法V1より好ましい方策だと言えそうに思いました。

        —–
        私は「賢者の噴水をプログラムで解く試み」に興味を持っている者です。
        失礼かもしれませんが、とてもドライな本音としては
        面白さとか現実の速さは(私にとっては)重要な事と考えてません。
        ギルクエ最速とかも目指してません。すみません。
        (あ、もし目指すのであれば古い知識ながら少しはお役に立てる点はあるかもしれませんが。)

        ただ「噴水攻略の効率化を目指す」という点においてやっていることは同じかなと思いコメントさせて頂いているところです。
        もしこんな人間と利害が一致するような点があればお付き合い頂ければ幸いです!

  24. Holithy☆ Says:

    返信ありがとうございます。
    上の事柄をいかにプログラムで実現するか、という話題が主になるのでメールが適切かと思った次第です。
    ですがまあ、ご希望とあればこちらで!
    解く様子もリアルタイムでやらないと解りにくいかな・・?
    次郎法v2は先ほどのコメントを書いた直後に拝見しました。人間の頭で出来る範囲ではこれが最速のようですね!
    私が言わんとしていたものは次郎法v2みたいなものなのですが、物品をどんどん変えるという要素を取り入れてないので少し収束が遅かったみたいです。まあずっとこれでやってたので少しばかり役立つこともあるかもしれないです。

    ではまあ折角ですのでコンピュータで解く経過を書いてみますね。
    答えは4222とします。これはそんなに早くならないですが・・
    1,2,3,4がそれぞれ文章、勲章、食品、酒に対応しております。
    1回目→1234 正解1見当たらない2
    2回目→1112 正解1見当たらない3 
    3回目→2242 正解2見当たらない0
    4回目→4222 回答

    手品みたいですよね。ははは。
    全く経過がわからないと思うので解説します。あんまり解りやすく説明はできないですが。

    1回目に1234にするのは定石です。詳しい話をすると難しいので省略しますが、
    「並べ替えるとより多くの残っている他の答えになるような値」を優先してチェックしていきます。
    例:1111 2222 1212 2121が残っていたら 1212 2121は並べ替えると他の答えになりょうな値なので 1212をチェックする。
    このようにすると(たぶん)「見当たらない数を一番早く減らす」ことができます。重要です。
    (ただしこの選び方には別の理論もあります。そっちでも結局最初は1234にするのが最善手とでます。)
    感覚的に説明するならば
    「最初に全部同じ数字にすると、間違いのデータが絶対0になっちゃうからもったいない!」
    というところでしょうか。

    2回目に1112にするのは消去法によります。
    ●まず正解数について考えます。
    先ほど正解が1でしたね。ここから解るのは
    「1個目が1もしくは2個目が2もしくは3個目が3もしくは4個目が4であるデータは正解」
    「逆に、上の条件が同時に二つ以上満たされちゃったら間違い」
    であることです。
    1個目の条件は簡単ですね。つまり「4321」とかはダメってことです。
    2個目の条件。たとえば「1114」とかは1個目が1だからよさそうですが4個目が4であって2つ条件を満たしてます。これだと正解が2になっちゃいます。だからダメ。
    こうして消去すると、正解の可能性としては
    1111 1112 1113 1121 1122 1123 1141 1142 1143 1311 1312 1313 1321 1322 1323 1341
    1342 1343 1411 1412 1413 1421 1422 1423 1441 1442 1443 2114 2124 2131 2132 2133
    2144 2211 2212 2213 2221 2222 2223 2241 2242 2243 2314 2324 2331 2332 2333 2344
    2414 2424 2431 2432 2433 2444 3114 3124 3131 3132 3133 3144 3211 3212 3213 3221
    3222 3223 3241 3242 3243 3314 3324 3331 3332 3333 3344 3414 3424 3431 3432 3433
    3444 4114 4124 4131 4132 4133 4144 4211 4212 4213 4221 4222 4223 4241 4242 4243
    4314 4324 4331 4332 4333 4344 4414 4424 4431 4432 4433 4444
    が残ります。多いように見えますがたったの108個です。はじめの可能性は4^4=256個あったことを考えると半分以下!
    ●見当たらない数について考えます。
    先ほど見当たらない数が2でしたね。ここから解るのは
    「試験配置のうち、2つが誤り」
    であることです。これはかなり強力な条件なんですよ。
    たとえば1111を見てみます。これは「1が4つ」ですね。1234は「1,2,3,4が一つずつ」です。
    つまり1111は1234と「3つ数字の構成が異なる」わけです。これは条件を満たしていないので1111はボツ!
    次に1123を見てみます。これは「1が2つと2,3が1つずつ」ですね。なので
    1123は1234と「1つしか構成が異ならない」わけです。これも条件を満たさないので1123もボツ!
    このようにして削除すると、正解の可能性としては
    1112 1113 1121 1122 1141 1311 1313 1411 1441 2211 2212 2221 2223 2242 2332 2333
    2424 2444 3131 3133 3222 3223 3331 3332 3344 3433 3444 4114 4144 4222 4242 4333
    4344 4414 4424 4433
    が残ります。たった1回調べるだけで36個まで減っちゃいましたw

    次に調べるやつを決定するときも最初に述べた「並べ替えるとより多くの残っている他の答えになるような値」を考えるんですが、この場合ほとんど同じになります。同じ場合は特に気にしないで始めのほうからやっていきましょう。
    こうして、2回目の試験配置「1112」が決定します(ちなみにこの長~い説明文は全部プログラムで一瞬w)

    あとはこれの繰り返しですね。

    1112で調べると、「正解1 見当たらない3」になります。
    ●正しい数について考える
    さっきと同じです。「1個目が1、2個目が1、3個目が1、4個目が2」という条件を1つだけ満たしているもののみ抽出します。
    たまたまなんですがここでがくっとへります!
    最初の3つの条件だけで1112~13411までが全部消えちゃいますね。まあここもプログラムがやってくれますが・・
    条件を適応すると
    1441 2211 2242 2332 3131 3133 3222 3332 4144 4222 4242 4414
    になります。12個に減りました!
    ●見当たらない数
    見当たらないものが3つですので、「試験配置のうち、3つが誤り」なわけです。
    試験配置は1112なので「1が3つ、2が1つ」。
    たとえば1441を見てみれば「1が2つ、4が2つ」なので、「2つの数字の構成が異なる」。なので消えます。
    他も同様に考えていくと
    2242 2332 3133 3222 3332 4144 4222 4242 4414
    今度はあんまり減らなかったですねー。でもたったの2回の試験で答えの可能性が9個に絞れたってのは大きいでしょう。

    次に調べるのを決定するときもどれ選んでも変わらないので2242でやります。
    この結果「正解2 見当たらない0」になりました。
    見当たらないが0ってことは「何をいくつ使うか確定した」ってことになりますね!
    ●正しい数について
    (人間が考えたら2242を並べ替えた答えはもう1個しかないんですが、プログラムなので一応順番どおりにやります。)
    「1個目が2、2個目が2、3個目が4、4個目が2」という条件を2つだけ満たしているものが抽出されます。
    2332 3222 4222
    説明は省きます~。
    ●見当たらない数について
    「試験配置のうち、0個が誤り」
    つまり答えは「2を3つ、4を1つ持った値」に限定されることになります。
    そうすると4222しか残りませんね!

    ということで、最後にこれで石造に問いかけまして、無事4手で終了、という塩梅でございます。
    ・・・お分かりいただけましたでしょうか?(汗)

    • Holithy☆ Says:

      長すぎたので2つにコメントを分けます。此方はプログラムの書き方についてのヒント(?)のようなものとなります。
      大体説明どおりなんですが。
      まず256個のデータをつくります。
      1111 1112 1113 1114 (ifを使って桁上がり) 1121 1122 … 4443 4444
      というように。
      ★次にそれぞれの構成をチェックします。
      つまりそれぞれどの数字をいくつ使って出来ているのか確かめるわけです。
      このためには10^(それぞれの位の数-1)を4回計算して足すといい感じです。
      たとえば1223という配置をこれで計算すると10^(1-1)+10^(2-1)+10^(2-1)+10^(3-1)=1+10+10+100=0121となり
      1の位に1の数、10の位に2の数、100の位に3の数、1000の位に4の数が来るような数を導出できたことがわかります。
      それぞれの位の数を抽出するためには、たとえば100の位を抽出するには
      切捨て(抽出したい数÷100)-切捨て(抽出したい数÷1000)×10
      という感じにやるといいです。
      ・・・
      あ、ちょっと話が脱線しましたが、これで、配置の構成がわかりました。
      構成が同じものの数を数えます。そして数えた結果が最大になるようなものを試験配置として使います。
      こうするとはじめの1234が自然に出てくるということになります。
      ちなみに結果が最大のものは当然複数出てきますが、それの選び方は適当でいいです。
      私は先に定義してあるものから使ってます。
      (※ちなみにさっきも書いたとおりに、試験配置の決定には別の方式もあります。)

      どう配置するか決定することができました。次に正しい数を計算します。
      さっき作ったそれぞれの位を抽出するプログラムを使って
      「考えられる正解」と「試験配置」をそれぞれの位毎に比較します。同じなら1 違うなら0とする。
      この比較結果を足せば「正しい数」が得られます。
      たとえば1234と4222を比較したら0100になりますから、合計して1という具合になります。
      「正しい数」を「考えられる正解」全部について計算して、「ユーザが入力した正しい数」と比較します。
      同じなら1 違うなら0とする。こうして正誤データが得られます。
      で、「正誤データ」と「考えられる正解」を掛け算すれば「誤り」は全部0になって綺麗さっぱり削除完了!

      次に見当たらない数の計算をします。
      先ほど同様にして「考えられる正解」と「試験配置」の構成を計算します。
      たとえば試験配置1234の構成を計算したら1111 正解4222の構成を計算したら1030になりますね
      そして、「考えられる正解の構成」から「試験配置の構成」を引き算します。逆でも結果は同じです。
      するとこの場合0 -1 2 -1になりますね。「負の値を0に置換してから」足し合わせれば「見当たらない数」が計算できます。
      この場合0+0+2+0=2です。負の値を置換し忘れるとずーっと0になっちゃうので注意。
      あとは「正しい数」同様にして「正誤データ」を作って「誤り」を削除。★にループすればプログラム作成完了です。
      (GUI周りとかexeファイル作る技術はないのでお任せしまーす><)

      ※試験配置の別の決定方法について
      「考えられる回答」全てについて、互いを「試験配置」とした場合全てについて「正しい数」と「見当たらない数」を計算します。そしてその合計をそれぞれ取ります。
      「見当たらない数」が少なく、「正しい数」が多いもの程答えに近いと考えられます。
      なのでそのようになる「考えられる回答」を次の「試験配置」に利用する、というものです。
      上のプログラムを書いてしまえばちょっと改造するだけなので試してみてもいいかもしれません。
      こっちのほうが圧倒的に計算量は多いんですが、あんまり結果は変わらないような・・
      「正しい数」ってそうそうバラつかないんですよね。残念。

      • 次郎宗光 Says:

        Holithyさん,詳細で丁寧な解説,ありがとうございます.有難くてもったいないくらいです.

        この分量をコメントに投稿するのは,仰る通り少し無理があったかとも思いますが,でも,この丁寧な解説を次郎が独り占めするわけには参りません.ご面倒をおかけしましたが,このHolithyさんのコメントは一般公開されるべき内容だと思います.本当にありがとうございます.

        内容ですが,丁寧な解説のおかげで解法の指針は理解することができました.

        「最初に全部同じ数字にすると、間違いのデータが絶対0になっちゃうからもったいない!」

        というのは全くその通りです.次郎法V2も,初手を「勲書食酒」に変えるだけで性能(?)アップできると思います.

        ちなみに,Holithyさんがコメントを書いてくださってる間に,

        ・ギルクエ―第三段階攻略 3-1
        ・ギルクエ―第三段階攻略 3-2

        を公開しています.公開して寝ようと思った時にHolityさんのコメントを発見した次第ですw
        その時点での次郎法V1,V2の性能(?)を記載しました.つまり,○手で解ける組み合わせがいくつか,という話と,平均解法手数がどんだけかってことです.

        差支えなければ,現在Holithyさんがお使いのプログラムの性能(?)も教えていただけませんでしょうか?よろしくお願いいたします.

        PS

        後程,コメントを読み易いように順番を入れ替えさせていただきます.その際,システムの都合上,

        いったんHolithyさんのコメントを削除して
        次郎の名前で同じ内容のコメントを投稿し
        編集で投稿者を次郎からHolithyさんに書き換える

        という手順になってしまいます.大変失礼な話で恐縮ですが,Holithyさんの丁寧な解説を,より多くの方に分かり易く読んでいただくためですので,ご了承ください.

  25. Holithy☆ Says:

    始めまして!杏鯖で昔活動しておりましたHolithyと申します。
    ギルドクエストがとても好きで、最高速を目指しておりました。
    その一部として貴殿の方法より1手程少ない賢者解法があるような気がしたので不躾ながらコメントさせて頂きます。

    単刀直入に、プログラムの原理をば。

    1.1個の試験物に対して、考えられる全部の回答について正しい数、見当たらない数を計算する。
    2.ゲームから提示された数と、1で計算した数を比べる。一致しなければそれは「考えられない回答」である。
    3.考えられない回答を消去して1に戻る。

    上のようなシンプルなものですが、人間の頭ではとても不可能な手順を取って高速に答えることが可能です。
    詳しく調べては居ないのですが概ね4、5手で回答にたどり着く感じですね。

    もし興味を持っていだけましたらzno110@gmail.comまでメール頂ければ詳細を是非語りたく思っています!
    (チャットとか使ってデモンストレーションとか すごく拙いながらソースを送ったりとか。)


    ところで、人間の頭で考えるときにも「前半戦」を使わない方法(序盤でアイテム数を明確にせず解く方法)があることをご存知ですか?
    これもこれで面白いと思いますので、よかったら此方についても語ってみたいです♪

    • 次郎宗光 Says:

      Holithyさん,コメントありがとうございます.

      コメントしっかり読ませていただきました.このようなご指摘ご提案は大歓迎です.このツールをより良いものに仕上げる気は満々ですので,ご指導ご教示などありましたら,どんなことでも伺います.よろしくお願いします.

      メールでの情報交換も大歓迎です.しかし,なるべくであればこのようなやり取りもすべて読者の皆様に公開しながら進めたいと思っています.ゆくゆくはレンタル掲示板のような形が望ましいのですが,如何でしょうか?

      「前半戦」を使わない方法があるのは把握しています.「ギルクエ―第三段階攻略 第三ステージ開始」はご覧いただいておりますでしょうか?現在,次郎法v2として現在検証中です.


コメントを書く:匿名のコメントも歓迎しますが,名前欄が空欄だと自動的に承認待ちになってしまいます.名前欄には,なるべく文字を入れて下さい.

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。