これは、数独ライブラリーを解決するために、オブジェクト指向プログラミングの使用である
ハウスブロックグループカテゴリ
パラメタ: |
|
---|
ノート
これは女性のカテゴリ、GroupBase、INIT()に置き換えられます
もしブロックグループ内のすべてのコードを埋めるためになかった場合は、このPointオブジェクトを充填することができるnumは、numは同じx-y軸座標を有し、我々はグループNumerを呼ばれる。
パラメタ: |
|
---|---|
戻り値: | GroupNumber、なしまたはオブジェクトGroupNumber |
チェーン(チェーン)は、これらの点上のコードの総数は、最大2つ以上のブランクスポットの同じグループで構成されているので、他の空白のスポット内の同じグループで、ポイント数と正確に一致に充填することができるこのリンクコードのすべてを満たすことは不可能。
パラメタ: |
|
---|
基本的なカテゴリーの(x軸、y軸、ブロックおよび他の基を含む)すべてのグループクラス
最初のグループ·クラスの基本的な機能(INIT())
パラメタ: |
|
---|
このグループ内のすべての空白のスポットのリストを取得し、残りの図の[count]ポイント上で充填することができる。
ノート
出力はタプルのリストで、このタプルは2値が含まれ、1は数字、他の物点のリストである
パラメタ: | count – intが、達成されるべき指し |
---|---|
戻り値: | フォーマットのリスト、[(数値、[P1、P2...])、...] |
このグループのPointオブジェクトのリストを取得します
パラメタ: |
|
---|---|
戻り値: | リスト:Pointオブジェクト一覧 |
ブロックグループグループ数
パラメタ: |
|
---|
X軸のグループ
最初のグループ·クラスの基本的な機能(INIT())
パラメタ: |
|
---|
y軸の基
最初のグループ·クラスの基本的な機能(INIT())
パラメタ: |
|
---|
数独、オブジェクト全体
パラメタ: | file – ファイル、数独の初期化ファイル |
---|
属性:
rec視聴:フォーマット【の(x、y、V、T、d)は、...]解決するレコードのリスト
いっぱい:INTは、ポイントを充填した
行われます。BOOL、解決するかどうか
エラー:BOOL、エラーが発生したかどうか
LINEX:X軸·グループ·オブジェクトのリスト
線を引いた:グループオブジェクトのリストのY軸
B:ブロックグループオブジェクトリスト
pは二次アレイ点リスト
N:デジタルオブジェクト一覧
チェーン:チェーン(連鎖)オブジェクトリスト
座標を確認して(x、y)の点(ポイント)のオブジェクトは、数vを入力することができます
パラメタ: |
|
---|---|
戻り値: | 「はい」または「いいえ」 |
ポイントは、すべてのポイントオブジェクトのリストを参照してください(P)を見ることができます作られ
パラメタ: |
|
---|---|
戻り値: | 点オブジェクトのリスト |
取得するために)(GroupBase.get_all_posを呼び出すことによって、すべてのポイントのオブジェクトリストを取得します
パラメタ: |
|
---|---|
戻り値: | 点オブジェクトのリスト |
数独定義ファイルを読む
パラメタ: | file – ファイル名だけを与えた場合のファイル、数独定義ファイルは、あなたが、絶対ファイルのアドレスを与えることができ、システムがファイルを取りに行くためにディレクトリデータの下にインストールされます |
---|
座標(x、y)を充填することができる番号のリストを指し、この番号を削除し、ν
パラメタ: |
|
---|---|
戻り値: | int型、後述するように |
2:あなたが番号を設定した場合
1:数値は単なる削減である場合
0:チェックがTrueの場合に番号を和らげることができず、この例外が開始されますSudokuError
デジタルオブジェクト
ノート
このクラスの国の唯一のオブジェクトを想像することができ、それぞれの国が1から9まで、独自のコードを持っています。
パラメタ: | v – 1〜9のint、このオブジェクトコード、 |
---|
数独の表のポイント
ノート
あなたはすべての点オブジェクトを想像することができます家です
これは、プログラムの開始点(ポイント)オブジェクト化(init())である
パラメタ: |
|
---|
課題を解決するMethodオブジェクト
パラメタ: |
|
---|
ロックを解除するために数独ゲームを解決するための方法の実現
パラメタ: |
|
---|---|
戻り値: | タプルの形式は以下のように、その意味は、(セットは、メソッド指数は、まず、のみ、低下させる)。 |
セット:INT、ポイント数を設定
低減します。int、ポイント数を削減
优先インデックス:int型、戻り値は、解決方法をジャンプした後、
最初:INT、別のスタート解法デジタルソリューションを作るために戻るとき
のみ:BOOL、同法を解決するために、他の解決策をできるように戻った後、最初の数は、アドレス
ストア実行状況
MethodLoopIdx: | int型、サイクルインデックス番号を解く |
---|---|
MethodIdx: | INT、この方法は、現在使用されているインデックス番号を解く |
CheckPos: | このリストを設定した場合、そのうちの一つが設定されるとき、リストの点リスト、座標(x、y)、、、システムは処理を停止する |
WriteDownAlready: | |
ブール、ギャップがシミュレーションされたか否かを、それらが少数に充填することができると書い |
|
EmulatePossibles: | |
int型は、点または数字の可能な数を含む、シミュレーション時間の使用を制限することができる |
|
TryStack: | 【(mは、X、Y、idxの)、...]リストの形式 |
M:Matrixオブジェクト、点(x、y)が返信することができるように、バックアップするために、最初のIDX確数に設定される前に
X:int型、x座標をしようとする
Y:int型、Yは、試してみるの座標
idxの:int型、インデックス値の数は、0から開始してもよい
TryIdx: | int型、解があるときにメソッドが、これは数回、この方法を行うことが第一であることがすでに投機であるインデックス値の深さを推測 |
---|---|
TryUse: | ブール値、使用するかどうかを推測する |
EmuUse: | シミュレーションを使用するかどうかをBOOL、 |
Scope: | INT、この数独の難しさ |
Level: | 制限なし:限定の難しさ、0を解決する方法を用いて、int型 |
Original: | 初期化マトリックス、Matrixオブジェクト |
Result: | 行列は、現在の数独オブジェクト |
PrintSteop: | BOOL、印刷するかどうかの手順を解く |
NowPath: | STR、現在の作業ディレクトリ |
一つの例外処理、各点が満たされたときに数独ゲームを生成する
パラメタ: |
|
---|
唯一の例外、ポイントが設定または(V)時に集合の行動として表現されているタイプの生産の数字を引くことができない場合に、Rはマイナスアクションとして表現されている
パラメタ: |
|
---|
checkPos設定したとき、これらのポイントが設定されている場合、例外時に座標リスト、[(X1、Y1)、...]、、、それは、このイベントの処理がトリガされます
パラメタ: |
|
---|
彼らはで満たされることが判明しているところからクロスインパクトグループNumerをする場所の下に、それぞれの番号を確認し、あなたが数字を与えるために、残りのポイントを見つけることができれば、それであれば、まだ、デジタルブロックグループを持っていない人あなたは明らかに、この図にこの点を埋めることができ
パラメタ: |
|
---|---|
戻り値: | タプルの形式は以下のように、その意味は、(セットは、メソッド指数は、まず、のみ、低下させる)。 |
セット:INT、ポイント数を設定
低減します。int、ポイント数を削減
优先インデックス:int型、戻り値は、解決方法をジャンプした後、
最初:INT、別のスタート解法デジタルソリューションを作るために戻るとき
のみ:BOOL、同法を解決するために、他の解決策をできるように戻った後、最初の数は、アドレス
一点のみがデジタルに充填することができる場合、各グループのx軸またはy軸をチェックする
パラメタ: | m – オブジェクト全体としての数独の世界 |
---|---|
戻り値: | タプルの形式は以下のように、その意味は、(セットは、メソッド指数は、まず、のみ、低下させる)。 |
セット:INT、ポイント数を設定
低減します。int、ポイント数を削減
优先インデックス:int型、戻り値は、解決方法をジャンプした後、
最初:INT、別のスタート解法デジタルソリューションを作るために戻るとき
のみ:BOOL、同法を解決するために、他の解決策をできるように戻った後、最初の数は、アドレス
各図、彼らは満たされた着弾位置し、グループ内のこれらのブロックのさらに数からのクロスをチェックして、それであれば、残りの数を与えるためにポイントを見つけることができ、それは明らかであるこれは、この番号にこのポイントを挿入
パラメタ: |
|
---|---|
戻り値: | タプルの形式は以下のように、その意味は、(セットは、メソッド指数は、まず、のみ、低下させる)。 |
セット:INT、ポイント数を設定
低減します。int、ポイント数を削減
优先インデックス:int型、戻り値は、解決方法をジャンプした後、
最初:INT、別のスタート解法デジタルソリューションを作るために戻るとき
のみ:BOOL、同法を解決するために、他の解決策をできるように戻った後、最初の数は、アドレス
同じ人が、それはそれぞれの状況が正しいに従うことを望むかもしれない、このアクションが論理的であることが、この結果につながることを意味するのであれば、アクションの最後のレコードの後、元のレコードから各リストを比較し、すべての結果のリストを比較
パラメタ: |
|
---|---|
戻り値: | タプル、フォーマット(セット、軽減)は、設定しています。設定した合計を、削減します。可能性の総数を削減する |
その次の停留所まで塩基性溶液法のいくつかを解決し、状況が発生したときに返すようにして使用を開始後、デジタルvの座標(x、y)点を推測した:
1:ターゲットのリストは、ポイントが時間checkvalの数に設定された座標
2:これは解決されている数独
-1:あなたが数独のルールを破壊した場合
0:すべての基本的な法律が解決しようとしましたが、まだ解決策を得ることができません
マトリックス·オブジェクトの後とシミュレーション結果
パラメタ: |
|
---|---|
戻り値: | タプル、フォーマット(RTN、マトリックス、IDX) |
1:ターゲットのリストは、ポイントが時間checkvalの数に設定された座標
2:これは解決されている数独
-1:あなたが数独のルールを破壊した場合
0:すべての基本的な法律が解決しようとしましたが、まだ解決策を得ることができません
マトリックス:Matrixオブジェクトのシミュレーション結果
IDX:INTは、RTN== 1の場合、このインデックス値は、この数はcheckvalに設定された1点が示されます
数が1点に設定されている場合、1〜3のグループは、それがあれば、直接同じ基本的な人間の本能として設定し、この状態かどうかをチェックします空白部分を残した可能性があります。
パラメタ: |
|
---|---|
戻り値: | タプルの形式は以下のように、その意味は、(セットは、メソッド指数は、まず、のみ、低下させる)。 |
セット:INT、ポイント数を設定
低減します。int、ポイント数を削減
优先インデックス:int型、戻り値は、解決方法をジャンプした後、
最初:INT、別のスタート解法デジタルソリューションを作るために戻るとき
のみ:BOOL、同法を解決するために、他の解決策をできるように戻った後、最初の数は、アドレス
グループ内であれば(ラインまたはブロック)のみのブランク点
パラメタ: | m – 数独、オブジェクト全体 |
---|---|
戻り値: | タプルの形式は以下のように、その意味は、(セットは、メソッド指数は、まず、のみ、低下させる)。 |
セット:INT、ポイント数を設定
低減します。int、ポイント数を削減
优先インデックス:int型、戻り値は、解決方法をジャンプした後、
最初:INT、別のスタート解法デジタルソリューションを作るために戻るとき
のみ:BOOL、同法を解決するために、他の解決策をできるように戻った後、最初の数は、アドレス
可能な唯一の1のリストの数字かどうかを確認するために、各ポイントブランクチェック。
パラメタ: |
|
---|---|
戻り値: | タプルの形式は以下のように、その意味は、(セットは、メソッド指数は、まず、のみ、低下させる)。 |
セット:INT、ポイント数を設定
低減します。int、ポイント数を削減
优先インデックス:int型、戻り値は、解決方法をジャンプした後、
最初:INT、別のスタート解法デジタルソリューションを作るために戻るとき
のみ:BOOL、同法を解決するために、他の解決策をできるように戻った後、最初の数は、アドレス
どのような空のポイントリスト(POS)から取得した数値は、結合(チェーン)が形成されている
パラメタ: |
|
---|---|
戻り値: | 結合(連鎖)一覧 |
番号リスト内の各点は、残りの解の数が数独を得ることができることを推測するために一枚ずつ充填することができる、デジタル数充填小児期が最も大きい点を排出推測
パラメタ: |
|
---|---|
戻り値: | タプルの形式は以下のように、その意味は、(セットは、メソッド指数は、まず、のみ、低下させる)。 |
セット:INT、ポイント数を設定
低減します。int、ポイント数を削減
优先インデックス:int型、戻り値は、解決方法をジャンプした後、
最初:INT、別のスタート解法デジタルソリューションを作るために戻るとき
のみ:BOOL、同法を解決するために、他の解決策をできるように戻った後、最初の数は、アドレス
点(p1)が二つ以上の可能な数を有する場合は、各番号をシミュレートし、シミュレーション結果を得ることができる。
それはエラーを生成した場合、我々は数削減を入れ替えることができます
それは全体の数独のロックを解除することが可能であるならば、我々はこの番号を設定できます。
ように全ての数は1または2であり得るしないように、我々は、これらのシミュレーションの解決プロセスを比較することができ、それらは、同じ結果を解決する必要がある場合には、それは、このステップは一般的な解決策であることを意味する。
パラメタ: | m – オブジェクト全体としての数独の世界 |
---|---|
戻り値: | タプルの形式は以下のように、その意味は、(セットは、メソッド指数は、まず、のみ、低下させる)。 |
セット:INT、ポイント数を設定
低減します。int、ポイント数を削減
优先インデックス:int型、戻り値は、解決方法をジャンプした後、
最初:INT、別のスタート解法デジタルソリューションを作るために戻るとき
のみ:BOOL、同法を解決するために、他の解決策をできるように戻った後、最初の数は、アドレス
基(x軸、y軸、ブロック)ときに、特定の数の複数点を充填することができる有する場合には、この図に充填箱点をシミュレートすることができるシミュレーション結果を得た。
我々は排除することができたときにエラーが発生した場合、この数は、この数を指摘するかもしれない
我々は時に数独を解くことができれば、我々はこの時点では、この数を設定することができます
全ての点は、1または2である場合の結果を得ることができない、我々は、彼らが共通の溶液の結果を持っている場合、それはアクションが一般的な解決策であることを意味し、各位置のシミュレーション結果を比較することができ
パラメタ: | m – オブジェクト全体としての数独の世界 |
---|---|
戻り値: | タプルの形式は以下のように、その意味は、(セットは、メソッド指数は、まず、のみ、低下させる)。 |
セット:INT、ポイント数を設定
低減します。int、ポイント数を削減
优先インデックス:int型、戻り値は、解決方法をジャンプした後、
最初:INT、別のスタート解法デジタルソリューションを作るために戻るとき
のみ:BOOL、同法を解決するために、他の解決策をできるように戻った後、最初の数は、アドレス
グループ番号は、他のいくつかのポイントをも和らげるには
パラメタ: | m – オブジェクト全体としての数独の世界 |
---|---|
戻り値: | タプルの形式は以下のように、その意味は、(セットは、メソッド指数は、まず、のみ、低下させる)。 |
セット:INT、ポイント数を設定
低減します。int、ポイント数を削減
优先インデックス:int型、戻り値は、解決方法をジャンプした後、
最初:INT、別のスタート解法デジタルソリューションを作るために戻るとき
のみ:BOOL、同法を解決するために、他の解決策をできるように戻った後、最初の数は、アドレス
した場合のポイント(P1)のみ2は数、我々は、この点を解決し、これは解決を参照fをシミュレートするために、別の番号(第二組)に設定されている(第1セット)、この時点でいくつかのいずれかをすることを引き受けることができなかったときプロセス、最初の点の交点p1のコロニーが変化することが、このチャタリングが(両方のポイントが表示されている)、ブランクポイントで、最初はこの数が移入さも存在し、缶はできませんこれは、これらの点のいくつかを排除することができる。
パラメタ: | m – オブジェクト全体としての数独の世界 |
---|---|
戻り値: | タプルの形式は以下のように、その意味は、(セットは、メソッド指数は、まず、のみ、低下させる)。 |
セット:INT、ポイント数を設定
低減します。int、ポイント数を削減
优先インデックス:int型、戻り値は、解決方法をジャンプした後、
最初:INT、別のスタート解法デジタルソリューションを作るために戻るとき
のみ:BOOL、同法を解決するために、他の解決策をできるように戻った後、最初の数は、アドレス
メソッドの解決に署名すると、すべてのための1であり、呼び出し元に返されるオブジェクトのリストを保存
戻り値: | オブジェクトリストを解決する方法 |
---|
(P1)の点は、これが数独を解決するために、ビューの人々のポイントを満たすために設定するために、より直感的な方法を指しているかどうかをチェックするために、溶液法への回答を得ることができたとき
パラメタ: |
|
---|---|
戻り値: | TRUE:セット、偽:設定されていません |
ファイルに定義されている数独を解く!
パラメタ: |
|
---|---|
例外: |
|
戻り値: | Matrix object. |
コンピュータを解決するための試行錯誤法は、第一の位置毎に荷受人を呼び出す
パラメタ: |
|
---|---|
戻り値: | BOOL、TRUE:あなたはすでにこの数独ソリューションを持っている場合 |
チェックして、リンクステータスと情報のMatrixオブジェクト(m)を更新し、リンクの総数を得る(=0)。
パラメタ: | m – オブジェクト全体としての数独の世界 |
---|---|
戻り値: | タプルの形式は以下のように、その意味は、(セットは、メソッド指数は、まず、のみ、低下させる)。 |
セット:INT、ポイント数を設定
低減します。int、ポイント数を削減
优先インデックス:int型、戻り値は、解決方法をジャンプした後、
最初:INT、別のスタート解法デジタルソリューションを作るために戻るとき
のみ:BOOL、同法を解決するために、他の解決策をできるように戻った後、最初の数は、アドレス
マトリックス·グループ·Numbe(M)内のオブジェクトがある場合は、新しいリストをmngroupする方がある場合は、この番号(数値)を確認し、更新する
パラメタ: |
|
---|---|
戻り値: | タプルの形式は以下のように、その意味は、(セットは、メソッド指数は、まず、のみ、低下させる)。 |
セット:INT、ポイント数を設定
低減します。int、ポイント数を削減
优先インデックス:int型、戻り値は、解決方法をジャンプした後、
最初:INT、別のスタート解法デジタルソリューションを作るために戻るとき
のみ:BOOL、同法を解決するために、他の解決策をできるように戻った後、最初の数は、アドレス
再帰関数は、位置が再帰的に他のすべての可能なグループ番号に自分自身を識別するために、この番号に電話して、既知のグループ番号の数に記入されています
パラメタ: |
|
---|---|
戻り値: | タプルの形式は以下のように、その意味は、(セットは、メソッド指数は、まず、のみ、低下させる)。 |
セット:INT、ポイント数を設定
低減します。int、ポイント数を削減
优先インデックス:int型、戻り値は、解決方法をジャンプした後、
最初:INT、別のスタート解法デジタルソリューションを作るために戻るとき
のみ:BOOL、同法を解決するために、他の解決策をできるように戻った後、最初の数は、アドレス
定数WRITEN_POSSIBLE_LIMITSは9..1に設定すると、数値はおそらく人々のように、各ポイントになります
パラメタ: | m – オブジェクト全体としての数独の世界 |
---|---|
戻り値: | タプルの形式は以下のように、その意味は、(セットは、メソッド指数は、まず、のみ、低下させる)。 |
セット:INT、ポイント数を設定
低減します。int、ポイント数を削減
优先インデックス:int型、戻り値は、解決方法をジャンプした後、
最初:INT、別のスタート解法デジタルソリューションを作るために戻るとき
のみ:BOOL、同法を解決するために、他の解決策をできるように戻った後、最初の数は、アドレス