Я хочу, чтобы моя программа взяла 25 букв в качестве входных данных и поместила их в какой-то список, чтобы я мог составить правила для того, какая буква может связываться с другой, до тех пор, пока не получит из нее три слова, которые не перекрываются.
Что я сделал, это было:
def matris():
matris = [[],[],[],[],[]]
counter = 0
counter2 = 0
counter3 = 0
counter4 = 0
counter5 = 0
while counter !=5:
matris[0].append(raw_input('One letter: '))
counter+=1
while counter2 !=5:
matris[1].append(raw_input('One letter: '))
counter2+=1
while counter3 !=5:
matris[2].append(raw_input('One letter: '))
counter3+=1
while counter4 !=5:
matris[2].append(raw_input('One letter: '))
counter4+=1
while counter5 !=5:
matris[4].append(raw_input('One letter: '))
counter5+=1
return matris
Так, например, когда я запускаю это, он спрашивает у меня «Одна буква» * 25, которая может генерировать матрицу, выглядящую примерно так:
matris = [['a', 'g', 'i', 't', 'u']
['s', 'r', 'g', 's', 'm']
['f', 'e', 'd', 'c', 't']
['r', 's', 'i', 'f', 'x']
['t', 'i', 't', 't', 'i']]
Если у кого-то есть лучший способ сделать это, я был бы благодарен, если бы вы поделились им. И способ, который будет работать с тем, что я хочу, чтобы моя программа делала, что я не уверен, что смогу с моей версией.
У меня есть dictionary.txt, который я сделал что-то вроде:
dictionary = open ('dictionary.txt', 'r')
, поэтому я подумал, что я попытаюсь начать сопоставлять matris[0][0]+matris[0][1]
и посмотреть, есть ли слово, начинающееся с т. Е. 'a'+'g'
, а затем взять следующую букву и так далее, пока вы не найдете, скажем, три лучших (наиболее ценные) ) слова.
Я предполагаю, что мне нужен класс. Вот как далеко я зашёл:
Class hypotes:
def __init__ (self, usedPosiiton, word):
self.u = usedPosition
self.w = word
positions = []
bestWords = [] # There should be maximum three words in this list,
# the words with highest score
Я думал, что мне нужно сохранить позиции в массиве, чтобы потом я мог убедиться, что слова, которые лучше всего, не используют одинаковые буквы?
Думаю, мне понадобится помощь с этим классом.
letterValuePoints = {'A':50, 'B':110, 'C':190, 'D':70, 'E':50, 'F':90,
'G':70, 'H':70, 'I':50, 'J':170, 'K':70, 'L':50,
'M':70, 'N':50, 'O':70, 'P':110, 'R':50, 'S':50,
'T':50, 'U':110, 'V':90, 'X':190, 'Y':170, 'Z':210,
'Å':110, 'Ä':90, 'Ö':110}
Позже я подумал, что когда я буду давать каждой букве значение, я сделаю это так, но я не знаю, будет ли это хорошим способом?