前のトピックへ

数独にPythonプログラムを書く

このページ

詳細なプログラム:数独キット

これは、数独ライブラリーを解決するために、オブジェクト指向プログラミングの使用である

class sudoku.sudoku.Box(idx, p)[ソース]

ハウスブロックグループカテゴリ

パラメタ:
  • idx – INT、このグループのコード
  • p – Pointオブジェクトは、このグループリストに属している

ノート

これは女性のカテゴリ、GroupBase、INIT()に置き換えられます

get_group_number(num, pos=, []notInLineX=None, notInLineY=None)[ソース]

もしブロックグループ内のすべてのコードを埋めるためになかった場合は、このPointオブジェクトを充填することができるnumは、numは同じx-y軸座標を有し、我々はグループNumerを呼ばれる。

パラメタ:
  • num – INTは、グループ番号のブロックグループのコードを見つけること
  • pos – それが空白の場合は、リスト、グループ番号を見つけるために、そこから、機能ブロックオブジェクトは、すべての空白PointオブジェクトをPointオブジェクトのリストを取得します。
  • notInLineX – BOOL、コールget_all_pos()は、x軸の有無にかかわらず、空白のスポットを設定した場合。
  • notInLineY – BOOL、コールget_all_pos()は、空白のスポットを設定するか、Y軸が含まれていない場合があります。
戻り値:

GroupNumber、なしまたはオブジェクトGroupNumber

class sudoku.sudoku.Chain(numList, posList)[ソース]

チェーン(チェーン)は、これらの点上のコードの総数は、最大2つ以上のブランクスポットの同じグループで構成されているので、他の空白のスポット内の同じグループで、ポイント数と正確に一致に充填することができるこのリンクコードのすべてを満たすことは不可能。

パラメタ:
  • numList – int型のリスト、リンクコードのすべての代表者のリスト
  • posList – ポイントリスト、リンク上のすべてのブランクスポットの代表のリスト
class sudoku.sudoku.GroupBase(idx, p)[ソース]

基本的なカテゴリーの(x軸、y軸、ブロックおよび他の基を含む)すべてのグループクラス

最初のグループ·クラスの基本的な機能(INIT())

パラメタ:
  • idx – INT、このオブジェクトコード
  • p – Pointオブジェクトこのオブジェクトは、リストに属し
allow(v)[ソース]

オブジェクトがこのグループコード(V)に挿入することができるかどうかをチェックする?

パラメタ:v – int型、検査対象のコード
戻り値:「はい」または「いいえ」
count_num_possible(count=1)[ソース]

このグループ内のすべての空白のスポットのリストを取得し、残りの図の[count]ポイント上で充填することができる。

ノート

出力はタプルのリストで、このタプルは2値が含まれ、1は数字、他の物点のリストである

パラメタ:count – intが、達成されるべき指し
戻り値:フォーマットのリスト、[(数値、[P1、P2...])、...]
get_all_pos(diff=, []method='a', num=0, notInLineX=None, notInLineY=None, chain=None, possibles=None)[ソース]

このグループのPointオブジェクトのリストを取得します

パラメタ:
  • diff – 収縮したと指摘して除外するリスト、
  • method – CHAR、:すべて、S:非ブランク、U:空白
  • num – ときUの方法であれば、INT、およびこのパラメータが1-9に設定されている、それはすべての空白のスポットが、この数を収容することができます取得します
  • notInLineX – BOOL、ポイントが含まれているか、X軸が含まれていません
  • notInLineY – BOOL、ポイントが含まれているか、Y軸が含まれていません
  • chain – BOOLには、チェーン、チェック·ポイントまたはポイントではないチェーンを取得するには、このパラメータを設定した場合
  • possibles – int, if method=”u” and possibles!=None, it will only get the possible set’s length = possibles
戻り値:

リスト:Pointオブジェクト一覧

get_num_pos(v)[ソース]

デジタル点vのグループを埋めるために行われて

パラメタ:v – INTは、デジタルポイントを取得したい
戻り値:なし、またはPointオブジェクト
class sudoku.sudoku.GroupNumber(b, num, p, direction, idx)[ソース]

ブロックグループグループ数

パラメタ:
  • b – int型、ブロックグループコード
  • num – INT、このオブジェクトは、図面を充填し
  • p – ポイントリスト、グループ番号ポイントの対象リストの生成
  • direction – char, “x” or “y” means the direction of this Group Number
  • idx – int型、コードグループのx軸またはy軸
class sudoku.sudoku.LineX(idx, p)[ソース]

X軸のグループ

最初のグループ·クラスの基本的な機能(INIT())

パラメタ:
  • idx – INT、このオブジェクトコード
  • p – Pointオブジェクトこのオブジェクトは、リストに属し
class sudoku.sudoku.LineY(idx, p)[ソース]

y軸の基

最初のグループ·クラスの基本的な機能(INIT())

パラメタ:
  • idx – INT、このオブジェクトコード
  • p – Pointオブジェクトこのオブジェクトは、リストに属し
class sudoku.sudoku.Matrix(file='')[ソース]

数独、オブジェクト全体

パラメタ:file – ファイル、数独の初期化ファイル

属性:

  • rec視聴:フォーマット【の(x、y、V、T、d)は、...]解決するレコードのリスト

  • いっぱい:INTは、ポイントを充填した

  • 行われます。BOOL、解決するかどうか

  • エラー:BOOL、エラーが発生したかどうか

  • LINEX:X軸·グループ·オブジェクトのリスト

  • 線を引いた:グループオブジェクトのリストのY軸

  • B:ブロックグループオブジェクトリスト

  • pは二次アレイ点リスト

  • N:デジタルオブジェクト一覧

  • チェーン:チェーン(連鎖)オブジェクトリスト

allow(x, y, v)[ソース]

座標を確認して(x、y)の点(ポイント)のオブジェクトは、数vを入力することができます

パラメタ:
  • x – int型、X座標
  • y – INT、y座標
  • v – 数字を埋めるために、int型
戻り値:

「はい」または「いいえ」

can_see(p0, method='u', num=0)[ソース]

ポイントは、すべてのポイントオブジェクトのリストを参照してください(P)を見ることができます作られ

パラメタ:
  • method – char, “u”: un-assigned positions, “a”: all, “s”: assigned positions
  • num – if method=”u”, the position must have be possible to be filled the number
戻り値:

点オブジェクトのリスト

get_all_pos(diff=, []method='a', num=0, chain=None, possibles=None)[ソース]

取得するために)(GroupBase.get_all_posを呼び出すことによって、すべてのポイントのオブジェクトリストを取得します

パラメタ:
  • diff – Pointオブジェクトのリストは、リスト上のこれらの点を除外
  • method – char, “a” – all, “u” – unassigned, “s” – assigned
  • num – INT、ギャップは[数字]この数字を埋めるようにすることができなければなりません
  • chain – BOOLには、チェーン、チェック·ポイントまたはポイントではないチェーンを取得するには、このパラメータを設定した場合
  • possibles – int型のみpossiblesのデジタルポイントの合計を埋めるためにそこに行われる場合は、このパラメータを設定する
戻り値:

点オブジェクトのリスト

print_rec()[ソース]

溶液プロセスのすべてを印刷

read(file)[ソース]

数独定義ファイルを読む

パラメタ:file – ファイル名だけを与えた場合のファイル、数独定義ファイルは、あなたが、絶対ファイルのアドレスを与えることができ、システムがファイルを取りに行くためにディレクトリデータの下にインストールされます
reduce(x, y, v, d='set', check=False, info='')[ソース]

座標(x、y)を充填することができる番号のリストを指し、この番号を削除し、ν

パラメタ:
  • x – int型、X座標
  • y – INT、y座標
  • v – int型、デジタルの可能性が除去される
  • d – STR、回答の説明を表示
  • check – BOOL、あなたがチェックしたい場合は、
  • info – STRの詳細な説明への答えを得る
戻り値:

int型、後述するように

  • 2:あなたが番号を設定した場合

  • 1:数値は単なる削減である場合

  • 0:チェックがTrueの場合に番号を和らげることができず、この例外が開始されますSudokuError

setit(x, y, v, d='define', info='')[ソース]

オブジェクトポイントvの座標値(x、y)の設定

パラメタ:
  • x – int型、X座標
  • y – INT、y座標
  • v – INTは、デジタルを設定する
  • d – STR、回答の説明を表示
  • info – STRの詳細な説明への答えを得る
戻り値:

INT、=1:セットアップが成功した場合、0:失敗した場合

sort_unassigned_pos_by_possibles(possibles=0)[ソース]

[P1、P2、...]の形式でグループリスト内の空白部分を取得し、高低から排出許可桁数の合計を記入

パラメタ:possibles – 0:すべての取得、=0:数字のみが空白の合計数を終了点のリストを取得することができます
戻り値:点オブジェクトのリスト
class sudoku.sudoku.Number(v)[ソース]

デジタルオブジェクト

ノート

このクラスの国の唯一のオブジェクトを想像することができ、それぞれの国が1から9まで、独自のコードを持っています。

パラメタ:v – 1〜9のint、このオブジェクトコード、
can_see_by_group_number(p1)[ソース]

この点を確認し、P1、グループ番号を参照してください、この図の(番号)を作成することができます

パラメタ:p1 – ポイント、Pointオブジェクト
戻り値:あなたはグループ番号オブジェクトを取得する場合は、[なし]、そうでなければ、見ることができない
setit(p1)[ソース]

このリストにないすべての空のP点を保存

パラメタ:p1 – ポイントは、このオブジェクトのポイントオブジェクトへの帰属
class sudoku.sudoku.Point(x, y)[ソース]

数独の表のポイント

ノート

あなたはすべての点オブジェクトを想像することができます家です

これは、プログラムの開始点(ポイント)オブジェクト化(init())である

パラメタ:
  • x – intが、このオブジェクトのx座標
  • y – int型、オブジェクトのy座標
can_see(p1)[ソース]

このオブジェクトが別のポイント·ポイント(P1)を見ることができるかどうかをテストする?

パラメタ:p1 – ポイント、Pointオブジェクト
戻り値:int型は、この値は同じポイントを表し、3か7にすることはできません

リターンコード:

  • 0:あなたは、点p1を見ることができない

  • 1:これは、x軸に見ることができる

  • 2:これは、y軸に見ることができる

  • これは、ブロック群に見られる

can_see_those(posList)[ソース]

テストは、そのポイントのポイント(POSLIST)のリストを参照して、この点を見ることができます

パラメタ:posList – リストは、リスト形式[(x、y)は、...]
戻り値:リストは、リスト形式[(x、y)は、...]
class sudoku.sudoku.SolveMethod(fun, idx, name='', level=0, obvious=True)[ソース]

課題を解決するMethodオブジェクト

パラメタ:
  • fun – カルバートでのPythonのプログラム名で定義された関数を、
  • idx – INT、実行の最初の注文を修復
  • name – STR、解決のこの方法に名前を付ける
  • level – 整数、この解法の難易度、値が高いほど、より困難
  • obvious – BOOL、人々のために、どうか、直感的なアプローチは、目視を使用することです
run(m, *args, **ks)[ソース]

ロックを解除するために数独ゲームを解決するための方法の実現

パラメタ:
  • m – オブジェクト全体としての数独の世界
  • ks – 最初の(INT):開始番号(INT)、のみ(ブール値):わずか数をチェック
戻り値:

タプルの形式は以下のように、その意味は、(セットは、メソッド指数は、まず、のみ、低下させる)。

  • セット:INT、ポイント数を設定

  • 低減します。int、ポイント数を削減

  • 优先インデックス:int型、戻り値は、解決方法をジャンプした後、

  • 最初:INT、別のスタート解法デジタルソリューションを作るために戻るとき

  • のみ:BOOL、同法を解決するために、他の解決策をできるように戻った後、最初の数は、アドレス

class sudoku.sudoku.Status[ソース]

ストア実行状況

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、現在の作業ディレクトリ

exception sudoku.sudoku.SudokuDone(x, y, v)[ソース]

一つの例外処理、各点が満たされたときに数独ゲームを生成する

パラメタ:
  • x – 数独は、最後の点のx座標、終わっ解くINT、
  • y – INTは、数独ソリューションを終えたとき、yは最後の点の座標
  • v – 数独は、最後のポイントは、数字を記入されて、終わっ解くINT、
exception sudoku.sudoku.SudokuError(x, y, v, t)[ソース]

唯一の例外、ポイントが設定または(V)時に集合の行動として表現されているタイプの生産の数字を引くことができない場合に、Rはマイナスアクションとして表現されている

パラメタ:
  • x – int型、ルールのx座標とすると、エラーが発生した
  • y – int型、ルールのy座標は、ときに、エラーが発生
  • v – int型、ルールは、エラーが発生したときの設定や数値を減算する
  • t – char, “s” – set, “r” – reduce
exception sudoku.sudoku.SudokuStop[ソース]

一つの例外処理、(デバッグ)recLimitに達した記録を解く場合

exception sudoku.sudoku.SudokuWhenPosSet(x, y, v)[ソース]

checkPos設定したとき、これらのポイントが設定されている場合、例外時に座標リスト、[(X1、Y1)、...]、、、それは、このイベントの処理がトリガされます

パラメタ:
  • x – あなたが設定する点のx座標を確認したいINT、
  • y – ポイントはy座標をチェックするように設定されているint型、
  • v – int型は、あなたがポイントを確認したいときに設定されている、デジタルのセット
sudoku.sudoku.check_inobvious_number(m, first=1, only=False)[ソース]

彼らはで満たされることが判明しているところからクロスインパクトグループNumerをする場所の下に、それぞれの番号を確認し、あなたが数字を与えるために、残りのポイントを見つけることができれば、それであれば、まだ、デジタルブロックグループを持っていない人あなたは明らかに、この図にこの点を埋めることができ

パラメタ:
  • m – オブジェクト全体としての数独の世界
  • first – チェックされる最初の数に
  • only – BOOL、偽:最初の数をチェック:真のすべてのデジタルをチェック
戻り値:

タプルの形式は以下のように、その意味は、(セットは、メソッド指数は、まず、のみ、低下させる)。

  • セット:INT、ポイント数を設定

  • 低減します。int、ポイント数を削減

  • 优先インデックス:int型、戻り値は、解決方法をジャンプした後、

  • 最初:INT、別のスタート解法デジタルソリューションを作るために戻るとき

  • のみ:BOOL、同法を解決するために、他の解決策をできるように戻った後、最初の数は、アドレス

sudoku.sudoku.check_line_last_possible_for_number(m, **kw)[ソース]

一点のみがデジタルに充填することができる場合、各グループのx軸またはy軸をチェックする

パラメタ:m – オブジェクト全体としての数独の世界
戻り値:タプルの形式は以下のように、その意味は、(セットは、メソッド指数は、まず、のみ、低下させる)。
  • セット:INT、ポイント数を設定

  • 低減します。int、ポイント数を削減

  • 优先インデックス:int型、戻り値は、解決方法をジャンプした後、

  • 最初:INT、別のスタート解法デジタルソリューションを作るために戻るとき

  • のみ:BOOL、同法を解決するために、他の解決策をできるように戻った後、最初の数は、アドレス

sudoku.sudoku.check_obvious_number(m, first=1, only=False)[ソース]

各図、彼らは満たされた着弾位置し、グループ内のこれらのブロックのさらに数からのクロスをチェックして、それであれば、残りの数を与えるためにポイントを見つけることができ、それは明らかであるこれは、この番号にこのポイントを挿入

パラメタ:
  • m – オブジェクト全体としての数独の世界
  • first – チェックされる最初の数に
  • only – FALSE:最初の数がチェックされます。真のすべてのデジタルをチェック
戻り値:

タプルの形式は以下のように、その意味は、(セットは、メソッド指数は、まず、のみ、低下させる)。

  • セット:INT、ポイント数を設定

  • 低減します。int、ポイント数を削減

  • 优先インデックス:int型、戻り値は、解決方法をジャンプした後、

  • 最初:INT、別のスタート解法デジタルソリューションを作るために戻るとき

  • のみ:BOOL、同法を解決するために、他の解決策をできるように戻った後、最初の数は、アドレス

sudoku.sudoku.compare_result(m, emu, result)[ソース]

同じ人が、それはそれぞれの状況が正しいに従うことを望むかもしれない、このアクションが論理的であることが、この結果につながることを意味するのであれば、アクションの最後のレコードの後、元のレコードから各リストを比較し、すべての結果のリストを比較

パラメタ:
  • m – オブジェクト全体としての数独の世界
  • emu – 二次リスト形式で[[点、割り当てられた番号]、...]
  • result – マトリックス·オブジェクト·リスト、Matrixオブジェクトの各々は、シミュレーション結果を表す
戻り値:

タプル、フォーマット(セット、軽減)は、設定しています。設定した合計を、削減します。可能性の総数を削減する

sudoku.sudoku.emulator(m, x, y, v, targets=, []checkval=0)[ソース]

その次の停留所まで塩基性溶液法のいくつかを解決し、状況が発生したときに返すようにして使用を開始後、デジタルvの座標(x、y)点を推測した:

  • 1:ターゲットのリストは、ポイントが時間checkvalの数に設定された座標

  • 2:これは解決されている数独

  • -1:あなたが数独のルールを破壊した場合

  • 0:すべての基本的な法律が解決しようとしましたが、まだ解決策を得ることができません

マトリックス·オブジェクトの後とシミュレーション結果

パラメタ:
  • m – オブジェクト全体としての数独の世界
  • x – INT、初期x座標
  • y – int型は、出発のy座標
  • v – int型、座標(x、y)は、デジタルのセットをシミュレートすること指し
  • targets – ポイントリスト、チェックすべき点のリスト
  • checkval – INTは、あなたが目標を設定している場合、いくつかのチェックを設定するには、このパラメータを設定する必要があります
戻り値:

タプル、フォーマット(RTN、マトリックス、IDX)

  • RTN:
    • 1:ターゲットのリストは、ポイントが時間checkvalの数に設定された座標

    • 2:これは解決されている数独

    • -1:あなたが数独のルールを破壊した場合

    • 0:すべての基本的な法律が解決しようとしましたが、まだ解決策を得ることができません

  • マトリックス:Matrixオブジェクトのシミュレーション結果

  • IDX:INTは、RTN== 1の場合、このインデックス値は、この数はcheckvalに設定された1点が示されます

sudoku.sudoku.fill_last_position_by_setting(m, sets)[ソース]

数が1点に設定されている場合、1〜3のグループは、それがあれば、直接同じ基本的な人間の本能として設定し、この状態かどうかをチェックします空白部分を残した可能性があります。

パラメタ:
  • m – 数独、オブジェクト全体
  • sets – INTは、最終的にチェックするためにペンを設定し、どのくらい
戻り値:

タプルの形式は以下のように、その意味は、(セットは、メソッド指数は、まず、のみ、低下させる)。

  • セット:INT、ポイント数を設定

  • 低減します。int、ポイント数を削減

  • 优先インデックス:int型、戻り値は、解決方法をジャンプした後、

  • 最初:INT、別のスタート解法デジタルソリューションを作るために戻るとき

  • のみ:BOOL、同法を解決するために、他の解決策をできるように戻った後、最初の数は、アドレス

sudoku.sudoku.fill_last_position_of_group(m, **kw)[ソース]

グループ内であれば(ラインまたはブロック)のみのブランク点

パラメタ:m – 数独、オブジェクト全体
戻り値:タプルの形式は以下のように、その意味は、(セットは、メソッド指数は、まず、のみ、低下させる)。
  • セット:INT、ポイント数を設定

  • 低減します。int、ポイント数を削減

  • 优先インデックス:int型、戻り値は、解決方法をジャンプした後、

  • 最初:INT、別のスタート解法デジタルソリューションを作るために戻るとき

  • のみ:BOOL、同法を解決するために、他の解決策をできるように戻った後、最初の数は、アドレス

sudoku.sudoku.fill_only_one_possible(m, **kw)[ソース]

可能な唯一の1のリストの数字かどうかを確認するために、各ポイントブランクチェック。

パラメタ:
  • m – 数独、オブジェクト全体
  • first – int型、検査されるべき最初の数字
  • only – BOOL、最初の数またはすべてをチェック
戻り値:

タプルの形式は以下のように、その意味は、(セットは、メソッド指数は、まず、のみ、低下させる)。

  • セット:INT、ポイント数を設定

  • 低減します。int、ポイント数を削減

  • 优先インデックス:int型、戻り値は、解決方法をジャンプした後、

  • 最初:INT、別のスタート解法デジタルソリューションを作るために戻るとき

  • のみ:BOOL、同法を解決するために、他の解決策をできるように戻った後、最初の数は、アドレス

sudoku.sudoku.get_chains(m, group, pos, numbers)[ソース]

どのような空のポイントリスト(POS)から取得した数値は、結合(チェーン)が形成されている

パラメタ:
  • m – オブジェクト全体としての数独の世界
  • group – xまたはy軸またはブロックオブジェクト
  • pos – ポイント·オブジェクト·リストの基
  • numbers – INT、結合(連鎖)のポイントを形成する
戻り値:

結合(連鎖)一覧

sudoku.sudoku.guess(m, idx=0, **kw)[ソース]

番号リスト内の各点は、残りの解の数が数独を得ることができることを推測するために一枚ずつ充填することができる、デジタル数充填小児期が最も大きい点を排出推測

パラメタ:
  • m – オブジェクト全体としての数独の世界
  • idx – 整数、0:他の新しい推測を示している:それは推測が、この点は、いくつかの数の最初であり得ることであることを意味
戻り値:

タプルの形式は以下のように、その意味は、(セットは、メソッド指数は、まず、のみ、低下させる)。

  • セット:INT、ポイント数を設定

  • 低減します。int、ポイント数を削減

  • 优先インデックス:int型、戻り値は、解決方法をジャンプした後、

  • 最初:INT、別のスタート解法デジタルソリューションを作るために戻るとき

  • のみ:BOOL、同法を解決するために、他の解決策をできるように戻った後、最初の数は、アドレス

sudoku.sudoku.reduce_by_emulate_possible_in_one_position(m, **kw)[ソース]

点(p1)が二つ以上の可能な数を有する場合は、各番号をシミュレートし、シミュレーション結果を得ることができる。

  • それはエラーを生成した場合、我々は数削減を入れ替えることができます

  • それは全体の数独のロックを解除することが可能であるならば、我々はこの番号を設定できます。

  • ように全ての数は1または2であり得るしないように、我々は、これらのシミュレーションの解決プロセスを比較することができ、それらは、同じ結果を解決する必要がある場合には、それは、このステップは一般的な解決策であることを意味する。

パラメタ:m – オブジェクト全体としての数独の世界
戻り値:タプルの形式は以下のように、その意味は、(セットは、メソッド指数は、まず、のみ、低下させる)。
  • セット:INT、ポイント数を設定

  • 低減します。int、ポイント数を削減

  • 优先インデックス:int型、戻り値は、解決方法をジャンプした後、

  • 最初:INT、別のスタート解法デジタルソリューションを作るために戻るとき

  • のみ:BOOL、同法を解決するために、他の解決策をできるように戻った後、最初の数は、アドレス

sudoku.sudoku.reduce_by_emulate_possible_number_in_group(m, **kw)[ソース]

基(x軸、y軸、ブロック)ときに、特定の数の複数点を充填することができる有する場合には、この図に充填箱点をシミュレートすることができるシミュレーション結果を得た。

  • 我々は排除することができたときにエラーが発生した場合、この数は、この数を指摘するかもしれない

  • 我々は時に数独を解くことができれば、我々はこの時点では、この数を設定することができます

  • 全ての点は、1または2である場合の結果を得ることができない、我々は、彼らが共通の溶液の結果を持っている場合、それはアクションが一般的な解決策であることを意味し、各位置のシミュレーション結果を比較することができ

パラメタ:m – オブジェクト全体としての数独の世界
戻り値:タプルの形式は以下のように、その意味は、(セットは、メソッド指数は、まず、のみ、低下させる)。
  • セット:INT、ポイント数を設定

  • 低減します。int、ポイント数を削減

  • 优先インデックス:int型、戻り値は、解決方法をジャンプした後、

  • 最初:INT、別のスタート解法デジタルソリューションを作るために戻るとき

  • のみ:BOOL、同法を解決するために、他の解決策をできるように戻った後、最初の数は、アドレス

sudoku.sudoku.reduce_by_group_number(m, first=1, only=False)[ソース]

グループ番号は、他のいくつかのポイントをも和らげるには

パラメタ:m – オブジェクト全体としての数独の世界
戻り値:タプルの形式は以下のように、その意味は、(セットは、メソッド指数は、まず、のみ、低下させる)。
  • セット:INT、ポイント数を設定

  • 低減します。int、ポイント数を削減

  • 优先インデックス:int型、戻り値は、解決方法をジャンプした後、

  • 最初:INT、別のスタート解法デジタルソリューションを作るために戻るとき

  • のみ:BOOL、同法を解決するために、他の解決策をできるように戻った後、最初の数は、アドレス

sudoku.sudoku.reduce_by_two_possible_in_one_position(m, **kw)[ソース]

した場合のポイント(P1)のみ2は数、我々は、この点を解決し、これは解決を参照fをシミュレートするために、別の番号(第二組)に設定されている(第1セット)、この時点でいくつかのいずれかをすることを引き受けることができなかったときプロセス、最初の点の交点p1のコロニーが変化することが、このチャタリングが(両方のポイントが表示されている)、ブランクポイントで、最初はこの数が移入さも存在し、缶はできませんこれは、これらの点のいくつかを排除することができる。

パラメタ:m – オブジェクト全体としての数独の世界
戻り値:タプルの形式は以下のように、その意味は、(セットは、メソッド指数は、まず、のみ、低下させる)。
  • セット:INT、ポイント数を設定

  • 低減します。int、ポイント数を削減

  • 优先インデックス:int型、戻り値は、解決方法をジャンプした後、

  • 最初:INT、別のスタート解法デジタルソリューションを作るために戻るとき

  • のみ:BOOL、同法を解決するために、他の解決策をできるように戻った後、最初の数は、アドレス

sudoku.sudoku.reg_method()[ソース]

メソッドの解決に署名すると、すべてのための1であり、呼び出し元に返されるオブジェクトのリストを保存

戻り値:オブジェクトリストを解決する方法
sudoku.sudoku.set_obvious_method_for_pos(m, method1, p1, v)[ソース]

(P1)の点は、これが数独を解決するために、ビューの人々のポイントを満たすために設定するために、より直感的な方法を指しているかどうかをチェックするために、溶液法への回答を得ることができたとき

パラメタ:
  • m – オブジェクト全体としての数独の世界
  • method1 – INT、優先解法
  • p1 – ポイント、ポイントをチェックする
  • v – int型、番号が設定される
戻り値:

TRUE:セット、偽:設定されていません

sudoku.sudoku.solve(file, loop_limit=0, rec_limit=0, check=None, level_limit=0, emu_limits=2, use_try=True, use_emu=False, print_step=False)[ソース]

ファイルに定義されている数独を解く!

パラメタ:
  • loop_limit – int型、繰り返し回数を制限する法律、0解く:制限なしに
  • rec_limit – INT、デバッグ、停止する際に、レコード = recLimit解決した場合、0:制限なし
  • check – int型、デバッグ、リストが設定されている座標点(x、y)場合、停止
  • level_limit – int型、メソッド、0を解くことの困難の使用を制限していません。0は制限:このパラメータを使用してメソッドを解決することの難しさのほんの度合いを
  • emu_limits – あなたは、アナログ方式を使用する場合、IMT、これはシミュレーションを定義するパラメータの数を制限することができる
  • use_try – BOOL、どうか推測
  • use_emu – BOOL、シミュレーションを使用するかどうか
  • print_step – ブール、情報は溶液プロセスで印刷か否か
例外:
  • SudokuDone – 溶液法は、この数独を解くことができる場合に
  • SudokuError – 解析ステップは、数独のルールに違反する場合には
戻り値:

Matrix object.

sudoku.sudoku.try_error(m=None, file='', depth=0)[ソース]

コンピュータを解決するための試行錯誤法は、第一の位置毎に荷受人を呼び出す

パラメタ:
  • m – 値がNoneの場合Matrixオブジェクトは、最初のオブジェクトを生成するために、数独行列定義ファイルを指定しなければなりません
  • file – ファイル、数独、初期定義ファイル
  • depth – int型、関数の数をカウント再帰の深さを有する
戻り値:

BOOL、TRUE:あなたはすでにこの数独ソリューションを持っている場合

sudoku.sudoku.update_chain(m, **kw)[ソース]

チェックして、リンクステータスと情報のMatrixオブジェクト(m)を更新し、リンクの総数を得る(=0)。

パラメタ:m – オブジェクト全体としての数独の世界
戻り値:タプルの形式は以下のように、その意味は、(セットは、メソッド指数は、まず、のみ、低下させる)。
  • セット:INT、ポイント数を設定

  • 低減します。int、ポイント数を削減

  • 优先インデックス:int型、戻り値は、解決方法をジャンプした後、

  • 最初:INT、別のスタート解法デジタルソリューションを作るために戻るとき

  • のみ:BOOL、同法を解決するために、他の解決策をできるように戻った後、最初の数は、アドレス

sudoku.sudoku.update_group_number(m, num)[ソース]

マトリックス·グループ·Numbe(M)内のオブジェクトがある場合は、新しいリストをmngroupする方がある場合は、この番号(数値)を確認し、更新する

パラメタ:
  • m – オブジェクト全体としての数独の世界
  • num – 数が更新される
戻り値:

タプルの形式は以下のように、その意味は、(セットは、メソッド指数は、まず、のみ、低下させる)。

  • セット:INT、ポイント数を設定

  • 低減します。int、ポイント数を削減

  • 优先インデックス:int型、戻り値は、解決方法をジャンプした後、

  • 最初:INT、別のスタート解法デジタルソリューションを作るために戻るとき

  • のみ:BOOL、同法を解決するために、他の解決策をできるように戻った後、最初の数は、アドレス

sudoku.sudoku.update_indirect_group_number(m, num, amt=0, start=0, first=1, only=False)[ソース]

再帰関数は、位置が再帰的に他のすべての可能なグループ番号に自分自身を識別するために、この番号に電話して、既知のグループ番号の数に記入されています

パラメタ:
  • m – オブジェクト全体としての数独の世界
  • num – int型、検査対象のコード
  • amt – INT、合計が見つかったグループ番号
  • start – INT、このメソッドを解決する上で有用であるが解決策は、メソッドを解決し続けるにジャンプした後、
  • first – あなたが解決策を解決する他の方法の数として数値を指定する場合に有用な方法は、これを解決するint型、
  • only – BOOL、ときにソリューションが数を解決するための唯一の他の方法を解決したい場合は、これを解決する便利な方法
戻り値:

タプルの形式は以下のように、その意味は、(セットは、メソッド指数は、まず、のみ、低下させる)。

  • セット:INT、ポイント数を設定

  • 低減します。int、ポイント数を削減

  • 优先インデックス:int型、戻り値は、解決方法をジャンプした後、

  • 最初:INT、別のスタート解法デジタルソリューションを作るために戻るとき

  • のみ:BOOL、同法を解決するために、他の解決策をできるように戻った後、最初の数は、アドレス

sudoku.sudoku.write_down_possible(m, **kw)[ソース]

定数WRITEN_POSSIBLE_LIMITSは9..1に設定すると、数値はおそらく人々のように、各ポイントになります

パラメタ:m – オブジェクト全体としての数独の世界
戻り値:タプルの形式は以下のように、その意味は、(セットは、メソッド指数は、まず、のみ、低下させる)。
  • セット:INT、ポイント数を設定

  • 低減します。int、ポイント数を削減

  • 优先インデックス:int型、戻り値は、解決方法をジャンプした後、

  • 最初:INT、別のスタート解法デジタルソリューションを作るために戻るとき

  • のみ:BOOL、同法を解決するために、他の解決策をできるように戻った後、最初の数は、アドレス