私は基本的に入力を受け取り、有効なスクラブル単語のリストを通り、入力を与えられた単語のうちのどれを作ることができるかを決定する、pythonプロジェクトを完成しようとしています。Python Scrabbleの挑戦が有効な単語を見つける
最初の部分は、やや簡単だったが、実際に重要な部分は私に問題を与えています。ここで
は、私がこれまで持っているものです。
import argparse
import sys
"""
Step 1: Get input from the user
"""
parser = argparse.ArgumentParser()
parser.add_argument("rack", type=str, help = "letters on the rack (no spaces)")
args = parser.parse_args()
rack = args.rack
rack = rack.upper()
rack = sorted(rack)
"""
Step 2: Open the sowpods.txt file, read the contents and turn it into a list
"""
def file_len(fname):
with open(fname) as f:
for i, l in enumerate(f):
pass
return i + 1
scores = {"a": 1, "c": 3, "b": 3, "e": 1, "d": 2, "g": 2,
"f": 4, "i": 1, "h": 4, "k": 5, "j": 8, "m": 3,
"l": 1, "o": 1, "n": 1, "q": 10, "p": 3, "s": 1,
"r": 1, "u": 1, "t": 1, "w": 4, "v": 4, "y": 4,
"x": 8, "z": 10}
file = "sowpods.txt"
length = file_len(file)
file = open("sowpods.txt", 'r')
file_list = list(file)
for i in range(length):
value = file_list[i]
value = value.rstrip('\n')
file_list[i] = value
"""
Step 3: Find valid words
"""
#for x in range(len(file_list)):
for x in range(82980,83000):
tmp = rack
test = file_list[x]
pos = []
if len(test) > len(tmp):
break
else:
for y in range(len(test)):
letter = test[y]
if letter in tmp[y:(len(tmp))]:
pos.append(letter)
print(pos)
私は私はしばらくの間でプログラムされていないとして、それは非常に厄介だと確信していますが、私はちょうどプログラムが妥当性をチェックする部分を把握したいです。今のところ、ループは私がラックから作ることができる言葉があることを知っている範囲を通りますが、私は立ち往生しています。助けを借りてthisの投稿を見ましたが、正直言って、何が起こっているのか分かりません。
私はここに私の頭の上に少し行くことかもしれないが、私はまだこれを理解したいと思います。
A [トライ](https://en.wikipedia.org/ wiki/Trie)データ構造は、しばしばコンパクトな方法で辞書を表現するのに有用である。 –