TakeshitaHelp

ナンプレ自動生成を利用した投稿プログラム

竹下ナンプレ ヘルプ画面

詳細なヘルプ画面の説明を、こちらにも置きました。 こんなにたくさんの機能が存在します。


このプログラムは株式会社タイムインターメディア提供のナンプレ自動生成プログラムを使用しています。 http://puzzle.gr.jp/

このプログラムには新たなパズルを作成するセットアップモードとパズルを解いて楽しむプレーモードがあります。 デモモードもあり無作為に作成されたパズルとその解答を定期的に表示できます。 付属の作成済みパズル集の難問はパズルファイルビューアーで開いてプレーできます。

プログラムの起動アイコンは二種類あります。ひとつは NumPl で 9x9 の一般的なナンプレ用、もうひとつは NumPl16 で 16x16 ナンプレ用です。このヘルプは共通です。

スタート ボタンを押すと自動的に新しいパズルが作られてプレーモードになります。 解答マスに確定した数字を入れていきます。パズルのシングルクリックは、カーソル移動、数字ボタンは数字の入力です。 3x3 のドットのついた ペンシルマークボタン を押しておくと空白マスにペンシルマークが入れられます。 ペンシルマークボタン はもう一度クリックすると戻ります。

すべてのマスを正解でうめると難易度と経過時間による総合得点と履歴保存の確認が表示されます。

確認 ボタンで間違え探しができます。間違った数字は赤になりそれ以降に入れた数字は灰色になります。 正解を消してしまったペンシルマークも赤になります。 いずれかの手筋を駆使しないと解けないパズルの場合には手筋名をポップアップ表示します。 元に戻すボタンで間違った数字を入れる前まで戻って考え直すのが基本でしょう。 確認機能を使用するとヘルパー機能が有効になります。 ヘルパーには三つの機能があります。 カーソルが空白マスにあり、たてと横とブロックを見渡しただけで数字が確定する場合その数字を表示します。 Alt キーを押したまま数字ボタンをクリックまたは数字キーを押すと、 あるいは数字ボタンを右クリックするとその数字の候補マスの背景色を赤の点線で囲んで明るくします。 Linux の場合は Alt と一緒に Ctrl または Window キーを押してください。 空白マスをダブルクリックするとペンシルマークを作ります。 ペンシルマークの入っているマスをダブルクリックするとそれを更新します(不要な数字は消しますが、 手筋を駆使して消したと解釈し、足らなくても足しません)。 なお確認機能を使用するとパズルが完成したときに表示される得点から減点されます。

プレー中はポップアップメニュー(Windows や Linux の場合パズルパネル以外を右クリック)に下記の機能があります。
コピーセットアップモードと同じです。セットアップモードの説明をご参照ください。
: 好みの色が選べます。
ペンシルマーク: ペンシルマークの有無と表示方法の切り替え。
ドット: 3x3 のドット表示 (16x16 ナンプレの場合 4x4)。
123: 数字表示。
x9: 数字表示、 ただし七つまたは八つ(16x16 ナンプレの場合十から十五)候補がある場合は x と候補ではない数字。
固定: 数字を決まった位置に表示。
123、x9 の場合でも表示スペースが足らない(ウインドウが小さい)場合ドットになります。
数字の種類: 9x9 ナンプレの場合パズルを漢数字やローマ数字で表示します。 ローマ数字の Ⅷ はペンシルマークの表示スペースが足らない場合 IIX になります。 16x16 ナンプレの場合16進数表示が可能です。
終了動作: プレーモードの途中でプログラムを終わらせるときの動作を選べます。
履歴の保存: プレーモードでパズルが完成したときの動作を選べます。
手筋選択: 手筋選択ダイアログを表示します。

パズルパネルのポップアップは小さな半透明の数字パッドになっていてメインの数字ボタンと同じ機能です。 ポップアップの空白キーとペンシルマークキーの右クリックで透明度が調整できます。

待機モード:
スタート ボタンを押す前、パズルが完成した後、あるいはギブアップした状態(待機モード)は初期設定では機能制限されていますが スタートボタン以外に下記の機能があります。
レビューボタン:
プレーモードでパズルが完成またはプレー履歴選択ウィンドウから過去の履歴を選択した場合このボタンを押す とレビューモードになります。
ポップアップメニューに下記の機能があります。 ペースト(Ctrl-Vでも可): はクリップボードからパズルを貼り付けます。 パズルエンジンで解決できるパズルのみ貼り付きます。パズルのルール(標準か対角線)は自動識別します。 そしてプレーモードになります。
: プレーモードと同じ。
ペンシルマーク: プレーモードと同じ。
数字の種類: プレーモードと同じ。
ルール: 標準のナンプレと対角線ナンプレが選択できます。
デモ: デモを開始します。
ファイル & ビューアーを開く: パズルファイルビューアーを開きます。
ファイル & 履歴を開く: プレー履歴選択ウィンドウを開きます。
オプション: パズルの自動作成の条件など下記の設定。

自動パターン既定マス数 (最少-最多): 既定マスの数はパターンの自動作成のときこの範囲になります。
自動パターン対称性: 自動作成パターンの対称性(軸対称、回転対称など)が選べます。
自動パターンタイムアウト (秒): 自動作成パターンでパズルがなかなか作れないとき何秒で次のパターンを作るか。
難易度 (下限-上限): 難易度の範囲を決められます。 ただし作成時には難易度が決まらないため条件に合うまで出来上がったパズルを破棄して新しいパズルを作りますので 厳しく制限すると時間がかかります。
難易度下限自動上昇: 1以上にするとパズルが出来上がるたびに最低最高をそのパズルの難易度の指定数増しにします。
ペンシルマークのドット: 候補と除外のどちらにドットを打つかが選べます。
フォント: フォントが選べます。
セットアップモードを使う: 制限を解除してセットアップモードの機能を使えるようにします。
セットアップモードの確認ポップアップ抑制
半透明数字パッドをセットアップモードでも使う
作成したパズルの自動保存: チェックされていると作成ボタンまたはデモモードで作成されたすべてのパズルがファイルに記録されます。
終了時に設定を保存: 終了時に設定を自動保存するかどうか設定できます。
プレー中の終了動作: プレーモードを途中で終わらせるときの動作を選べます。
プレー履歴の保存: プレーモードでパズルが完成したときの動作を選べます。
手筋選択: 無効になっているとその手筋を使わないと解けないパズルは解無しの扱いになります。 必須にするとその手筋を使わなくても解けたパズルは解無しの扱いになります。 プログラムがパズルを解くとき手筋は上から順に試されます。 したがって一番下の手筋を必須にすれば本当の意味の必須となります。 順番は手筋名を選んで上下ボタンで入れ替えてください。必須を選択するとパズルの自動作成に時間がかかります。

セットアップモードでは手動または自動で新しいパズルをつくることができます。 自動的に新しいパズルをつくるためには作成ボタンを使います。 既定マスパターンがなければ、無作為にいくつかのマスが選ばれます。 あらかじめ既定マスパターンを決めておくことで見た目の美しいパズルができますが、 パターンによってはパズルにならないことがあり、 その場合ストップボタンをクリックするまで止まらなくなります。 パターンによっては時間がかかる場合もあります。 パズル作成中は経過情報として 回数/時間/難易度 が表示されます。 難易度は解けないパズルを試したときと必須手筋が含まれていないときは表示されません。 マスに数字が入っているとその数字は固定になります。 ただし空白の既定マスがない場合は数字は全部いったん消されて固定されません。

手動の場合はいくつかの既定のマスを選んでその中に既定の数字を入れます。 具体的なパターンや数字の決め方はここでは省略させていただきます。 興味のある方はネットで検索あるいは書籍を探してください。

既定マスは暗い背景色で表示されます。ほかは解答用のマスです。 ダブルクリックまたは右クリックによって既定マスの選択を切り換えることができます。 シングルクリックは、カーソル移動、数字ボタンは数字の入力です。 Alt キーを押したまま数字ボタンまたは数字キーを押すとその数字の候補マスの背景色赤の点線で囲んでを明るくします。 Linux の場合は Alt と一緒に Ctrl または Window キーを押してください。 確認ボタンで作成したパズルに適当な答えがあるかどうか調べられます。 答えがあれば難易度が表示されます。数が大きいほど難解です。 いずれかの手筋を駆使しないと解けないパズルの場合には手筋名をポップアップ表示します。 解決ボタンは解答マスに正解を表示します。 いずれかの手筋を駆使しないと解けないパズルの場合には正解表示の前に手筋適用毎の途中経過を表示します。 複数解の場合と手筋不足でとききれない場合はペンシルマークが残ります。 矛盾がある場合はペンシルマークは残りません。 消去ボタンはペンシルマークと解答マスの数字を消します。 解答マスがすべて空白で既定マスにペンシルマークがなければ既定マスの数字を消します。 どれもなければ既定の選択を消します。
プレーをクリックすとプレーモードになります。

セットアップモードではポップアップメニューに下記の機能が追加されます。
コピー(Ctrl-Cでも可): パズルをクリップボードにコピーします。コピーしたパズルはExcelなどに貼り付けて加工できます。 Shift キーを押しながらコピーすると81文字べた詰めで、 Ctrl キーを押しながら(または Ctrl-X)ではさらに圧縮れてコピーされます。 Shiftキーと Ctrl キーを両方押しながらコピーすると(または Shift-Ctrl-X)ペンシルマークを含んだ形式になります。
ペースト(Ctrl-Vでも可): はクリップボードからパズルを貼り付けます。 パズルのデータはタブ区切りの単純なものです。 たとえばExcelの9x9のセルのいくつかに一桁の数字を入れてコピーすれば貼り付けられます。 また81文字べた詰めや9文字9行なども貼り付け可能です。 セットアップモードでの貼り付けではパズルエンジンで解決できるパズルでなくても貼り付きます。 待機モードのペーストとちがってモードもルールも変わりません。
パターン操作:サブメニューに七種類の対称パターンコピー機能と四種類の配置/数字変更機能があります。 とくに16x16 ナンプレの場合百前後の既定マスを選ぶ必要がありますが、 四軸対称の場合最大七ヶ所にコピーされますので手動で選ぶのは十から十五ですみます。 配置/数字変更はパズルを壊さずに見た目を変える機能です。 標準ルールの場合、無作為変換は Ctrl キーを押しながら選択するとさらに変化が大きくなります。
デモ: デモを開始します。 セットアップモードからデモを開始すると作成ボタンと同じように既定マスパターンや既定マスの数字を固定できます。
ファイル & ファイルに追加: パズルをナンプレパズルファイルに追加します。
ファイル & XMLで保存: パズルをナンプレ自動生成プログラムのXMLフォーマットで保存できます。 XMLファイルはパズルファイルビューアーで開くことができます。
ファイルに追加XMLで保存 は解決できるパズルに対して確認ボタンを押すと有効になります。

キーボードを使うこともできます。
F1 はヘルプ。
'0' とDeleteキーはマスの数字の消去。
1~9 は数字の入力。
Shift または Ctrl + 0~6 は 16x16 ナンプレの 10 から 16。数字キーパッドの場合 Shift は使えません。
矢印キーはカーソル移動。上下矢印は解決機能の手筋適用毎途中経過とレビューモードの 手前 次。
Insertキーはペンシルマークの切り替え。
スペースバーは既定選択の切り替え。
'C' は作成。
Esc キーは消去。
End キーはストップ。解決機能の手筋適用毎途中経過とレビューモードでは 終了
'S' はスタート、セットアップ、及び解決。
'R' はレビュー。
'?' は確認。
'P' はプレー。
'G' はギブアップ。
Back Space と Ctrl-Z は元に戻す。
Tab と Ctrl-Y はやり直し。
Ctrl-C はクリップボードにコピー(標準)。
Shift-Ctrl-C はクリップボードにコピー(べた詰め)。
Ctrl-X はクリップボードにコピー(圧縮)。
Shift-Ctrl-X はクリップボードにコピー(ペンシルマーク込み)。
16x16 ナンプレ16進数表示の場合 0~9 と A~F は数字の入力、Shift + 'C' が作成、になります

パズルファイルビューアー
ビューアーを開くと最新の(パズルの保存機能が書き込む)パズルファイルが開きます。 ただし一度もパズルを保存していない場合はパズルファイルを指定する画面になります。 パズルファイルはファイル & ファイルに追加または作成したパズルの自動保存 機能によって作成されます。
実際のファイル名は NumPlPuzzle1.txt で、NumPlPuzzle の後の数はファイルサイズが 2,000,000を超えるごとに1づつ増えて新しいファイルが作られます。
対角線ナンプレパズルファイルは NumPlDPuzzle1.txt から始まります。16x16 ナンプレの場合 NumPl16 で始まるファイル名になります。
付属の作成済みパズル集もこのビューアーで開いてお使いください。
ナンプレ自動生成プログラムのXMLも9x9/16x16の標準と対角線パズルならば開くことができます。
ビューアーにはポップアップメニューに下記の機能があります。
プレー: 選択されているパズルでプレーモードになります。 この機能は待機モード(スタートボタンを押す前、パズルが完成した後、あるいはギブアップした状態)のみ有効です。 パズルはエンジンで解決できる必要があります。
選択: セットアップモードのとき選択されているパズルをパズル盤面にコピーします。
コピー: 選択されているパズルをクリップボードにコピーします。
検索: 検索設定ウインドウを表示します。 既定マス数、既定マスパターン、難易度範囲、手筋使用数と各々の手筋で検索できます。 条件は論理積(AND)です。パズルおよび既定マスパターンはパズルパネルに指定します。 数字が入れ替わっていても向きが違っていても同じパズルやパターンと判断します。 エンジンで再確認を指定すると難易度と手筋は現在の設定でパズルを解きなおして検索します。
開く: パズルファイルを指定する画面を開きます。
最新: 最新(保存機能が書き込む)パズルファイルを開きます。
追加データ追従: 定期的にファイルを読んで追加されたパズルを画面に反映します。 ただしマウスやキーボードでビューアーを操作すると一時的に機能を停止し、 ポップアップが表示されていなければ最後の操作の1分後に再開します。 この機能はパズルファイルにパズルが追加される状況、 たとえば'作成したパズルの自動保存'を有効にしてデモモードでパズルを作り続ける場合に便利です。
長い行折り返し: 長い行は右端で折り返して表示します。
解答と手筋の行: 解答と手筋の行を表示します。

右下に3つボタンがあります。 ピンマークのボタンは追加データ追従の状態を表示します。 右向きは動作中、下向きは一時停止または'追加データ追従'が選択されていない場合です。 一時停止中にこのボタンをクリックするとすぐに再開します。 '追加データ追従'が選択されていない場合もこのボタンをクリックすると追加データがあれば読み込みます。
二重三角のボタンはカーソルをデータの最初/最後に移動します。

レビューモードとプレー履歴選択ウィンドウ:
レビューモードではパズルを解いていった手順が再現できます。 待機モードで解き終わったパズルかプレー履歴選択ウィンドウから選択されたパズルがある場合レビューボタンが有効になり、 押すとレビューモードに入ります。次ボタン手前ボタンでなたは上下矢印キーで手順を追って行かれます。
ポップアップメニューの ファイル & 履歴を開くでプレー履歴選択ウィンドウを開くと過去の履歴が日付と時刻で表示されます。 ただし履歴を一度も保存していない場合は履歴ファイルを指定する画面になります。 パズルパネルが空の場合または別の履歴が待機モードで表示中の場合は 日付と時刻の行をダブルクリックするとパズルパネルに選択されます。 右クリックの選択も同じです。右クリックのレビューは選択とともにレビューモードにします。 右クリックの開くは別の履歴ファイルを開くためのものです。最新は現在使われている履歴ファイルを読み直します。
履歴ファイルのファイル名は NumPlPlayLog1.datでファイルサイズ超過とパズルの種類による変化はパズルファイルの場合と同じです。

技術的情報:
バージョン情報はこのヘルプウインドウの下端にあります。
設定、プレー、パズルの保存が指定された場合の保存先はインストール時に指定した場所になります。 ただし NumPl.jar ファイルの場所が lib フォルダーでない場合ユーザーの既定フォルダ(Windows ではマイドキュメント)にNumPlフォルダが作られその中に書き込まれます。

以下のコマンドオプションを受け付けます。Windowsの場合はショートカットプロパティのリンク先に追加してください。
f=foldername rgb=color c=contrast g=gamma width p=puzzle
foldername: ファイルの保存場所の変更。相対パスが指定された場合はユーザーの既定フォルダ内。
f=foldername!inifilecode 書式で指定した場合保存場所変更と共に設定ファイル名に inifilecode を追加。
f=!inifilecode の場合保存場所変更なしに設定ファイル名に inifilecode を追加。
color: 24 bit の RGB番号を10進または 0x で始まる16進数で指定できます。
contrast: コントラストを0-6で指定できます。
gamma: ガンマ値を0-8で指定できます。
width:ウインドウ幅をドット数で指定。
puzzle:パズルを81文字べた詰めまたは圧縮形式で指定すると直接プレーモードになります。

HTML ページにスタートボタンをアプレットとして貼り付けることができます。 ただし多くの場合ファイルやクリップボードへのアクセスが制限されており関連する機能は使えません。 パズルファイルビューアーはアクセス制限がなくても使えません。 p= オプションを param に設定しておけばスタートボタンでプレーを開始できます。

<applet code=puzzle.numpl.Launcher.class archive=NumPl.jar width=120 height=40>
<param name=args value='コマンドオプション'>
</applet>

16x16 ナンプレの場合は code=puzzle.numpl.Launcher16.class

作成したパズルの自動保存、コピー、ペーストの標準データ形式:
行1:C=既定マス数 D=難易度 作成またはコピー日時
行2-10:9桁9行のパズルデータ、桁間はタブ
行11:A=答え (81文字)
行12:T=使用手筋コード
パズルデータ: 既定マス数字はその数字(数字の種類で選ばれている数字)、ブランクの既定マスはゼロ(0)、解答マスはブランク。
難易度の表示がないときにコピーすると行1の難易度は0になり、行11-12はコピーされません。 解決ボタンを押したあとでコピーすると解答マスの数字が小文字のa付きでパズルデータに入ります。
貼り付け時は行1,11-12は無視します。 無くてもかまいません。 小文字のa付きの数字も無視します。 数字の種類は選ばれている種類と貼り付けるデータが違っていてもかまいません。
16x16 ナンプレの場合は行2-17が16桁16行のパズル、行18がA=答え(256文字、10-16はA-G)、行19がT=使用手筋になります。 16進表示の場合のパズルデータは、数字が0からF、空白の既定マスはアンダーバーになります。

コピー、ペーストのべた詰めデータ形式:
左から右、上から下の各マス一文字、計81文字。
既定マス数字はその数字(数字の種類に関係なく常に1-9)、ブランクの既定マスはゼロ(0)、解答マスはハイフン(マイナス)。
貼り付け時はハイフンのかわりに アスタリスク、プラス、カンマ、ピリオド、スラッシュ、コロン、セミコロン、イコール、アンダーバーも受け付けます。 空白や改行があっても無視します。ただし空白を含めた文字数がちょうど81文字の場合は空白もハイフンのかわりになります。 また、データ内にハイフンもそのかわりもない場合はゼロ(0)をハイフンのかわりにします。
16x16 ナンプレの場合は文字数は256で 10 は A、11 は B、... 16 は G になります。 また、ナンプレ自動生成プログラムのXMLフォーマットの question タグのデータ部分 (0-16のスペース区切りの数字256個)も貼り付け可能です。

圧縮形式は連続したハイフンを 1 つは a 2 つは b . . . 26 個は z に置き換えています。

ペンシルマーク込みの形式はタブ区切りの 9 (16) 桁 18 (32) 行のビットパターンデーターです。 最初の 9 (16) 行は 16 ビットの現在のペンシルマークの情報と五つの識別情報。 残りの行にはもしあれば次のステップのペンシルマークの情報が入ります。 ペンシルマーク情報は右端のビット (0x1) が 1、次が 2 ... 十六番目が 16 です。 識別情報は十七番目が赤表示、十八番目が灰色表示、十九番目が手筋の目印、二十番目が既定マスの印、 二十一番目がペンシルマーク(未確定)の印です。

パズルファイルビューアーで読み込み中にファイルが大きすぎて最後まで読めない場合の対処
方法は java コマンドの -Xmx オプションを指定して Java で使えるメモリーを増やします。
セットアッププログラムが作ったショートカット(デスクトップ/リンク)アイコンの場合プロパティのリンク先には -Xmx100m が設定されていて5メガぐらいまで読めますが、 Java のメモリー管理の性質上次々にファイルを読んでいくと使用済みメモリーの回収が間に合わなくなることがあります。 エラーをとめるには -Xmx100m の 100m (100メガ) のところを大きくしてください。

PuzzleSort ユーティリティ:
パズルファイルを処理するコマンドラインユーティリティです。NumPl のセットアップ先でコマンドプロンプト(ターミナル)から下記のコマンドを実行すると簡単な説明が英文で表示されます。
java -cp lib/NumPl.jar puzzle.numpl.PuzzleSort (9x9ナンプレ用)
java -cp lib/NumPl.jar puzzle.numpl.PuzzleSort16 (16x16ナンプレ用)

ソースコードとコンパイル:
少なくともJava SE JDK 6Apache Ant 1.7 が必要です。 Eclipse に取り込めます。
ソースコードファイルを含めてセットアップした NumPl の lib フォルダーで Ant を実行してください。 Ant によってソースファイルが展開され必要なファイルがコピーされます。 コピー先のデフォルトは NumPl のセットアップ先に Build フォルダーが作られその中に入ります。 ant -Dest=コピー先 で変えられます。
例:ant "-Dest=C:\My Project\Java"
Eclipse の場合 External Tools の Ant build で lib フォルダー内の build.xml を指定して実行できます。

コピー先の中は NumPl と Colorable で、Colorable 内で Ant を実行すると Colorable がコンパイルされ新しい Colorable.jar と Colorable_src.zip が Colorable/lib に作成されます。 NumPl 内で Ant を実行すると コンパイル済みの Colorable を使って NumPl がコンパイルされ NumPl.jar と NumPl_src.zip と NumPl-yymmdd.zip が NumPl/lib に作成されます。 パズルの入った NumPlPuzzle1.txt や NumPlDPuzzle1.txt が NumPl/puzzles にあると NumPl コンパイル時に新しいパズル集が作成されます。
Eclipse のプロジェクトは New Project の Java Project from existing Ant Buildfile を選んで Ant Buildfile の欄に Colorable と NumPle フォルダーの build.xml を指定して Link to the buildfile in the file system にチェックを入れて作ります。

Copyright(C) 2007 Time Intermedia Corporation. All Rights Reserved.

株式会社タイムインターメディア | 自動生成エンジンとは | お問い合わせ | About Us