私は 4x4 の文字表を持っており、そこで可能なすべてのパスを見つけたいと思っています。それらは言葉の候補です。「使用済み」変数に問題があります。これは、パスが既に存在するすべての場所を含むリストであるため、そこには再度移動しません。すべてのパスに 1 つの使用済みリストが必要です。しかし、正しく動作しません。たとえば、現在の単語と使用済みリストを印刷するテスト印刷がありました。単語に文字が 1 つしかない場合もありましたが、パスは 16 個のセル/インデックスすべてを通過していました。
サイズ 8 の for ループは、考えられるすべての方向に対して存在します。また、main-function は、chase-function を 16 回実行します。つまり、可能な開始点ごとに 1 回です。Move 関数は、特定の方向に移動した後にインデックスを返します。is_allowed は、特定の部門への移動が許可されているかどうかをテストします。サンプル入力: oakaoastsniuttot. (最初の 4 文字が最初の行である 4x4 の表など) サンプル出力: ある単語の辞書にあるすべての実際の単語使用されていませんが、使用されています。
def chase(current_place, used, word):
used.append(current_place) #used === list of indices that have been used
word += letter_list[current_place]
if len(word)>=11:
return 0
for i in range(3,9):
if len(word) == i and word in right_list[i-3]: #right_list === list of all words
print word
break
for i in range(8):
if is_allowed(current_place, i) and (move(current_place, i) not in used):
chase(move(current_place, i), used, word)