Ich versuche ein Python-Projekt zu vervollständigen, das grundsätzlich eine Eingabe macht und eine Liste von gültigen Scrabble-Wörtern durchläuft und bestimmt, welche dieser Wörter bei der Eingabe gemacht werden können.Python Scrabble Challenge finde gültige Wörter
Der erste Teil war etwas einfach, aber der Teil, der wirklich wichtig ist, gibt mir Probleme.
Hier ist, was ich bisher:
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)
Ich bin sicher, dass es sehr chaotisch ist, als ich eine Weile nicht programmiert haben, aber ich möchte nur den Teil, um herauszufinden, wo überprüft das Programm für die Gültigkeit . Im Moment läuft die Schleife durch einen Bereich, in dem ich weiß, dass es Worte gibt, die aus dem Rack gemacht werden können, aber ich stecke fest. Ich habe this Post auf etwas Hilfe angeschaut, aber um ehrlich zu sein, bin ich nicht wirklich sicher, was los ist.
Ich gehe vielleicht ein wenig über meinen Kopf hier, aber ich würde immer noch gerne herausfinden.
A [trie] (https://en.wikipedia.org/ wiki/Trie) Datenstruktur ist oft nützlich, um ein Wörterbuch kompakt darzustellen. –