Что такое хороший алгоритм для определения "трудности" слова для игры в палач, чтобы игра могла выбирать слова для соответствия указанному уровню сложности?
Сложность, по-видимому, связана с количеством необходимых догадок, относительной частотой использования букв (например, словами со многими необычными буквами, может быть труднее догадаться) и, возможно, длиной слова.
Есть также некоторые субъективные факторы, которые можно (компенсировать), например, вероятность того, что слово находится в словаре игрока, и могут быть распознаны, что позволяет перейти от стратегии угадывания, основанной только на частотах букв, на основе угадывания на список известных совпадающих слов.
Моя попытка сейчас ниже в рубине. Любые предложения по улучшению категоризации?
def classify_word(w)
n = w.chars.to_a.uniq.length # Num. unique chars in w
if n < 5 and w.length > 4
return WordDifficulty::Easy
end
if n > w.length / 2
return WordDifficulty::Hard
else
return WordDifficulty::Medium
end
end
Я пишу игру в палач, я бы хотел, чтобы мои дети играли; Я слишком стар, чтобы пытаться "домашнее задание", и, возможно, поэтому вопрос заключается в получении стольких голосов. Слова производятся случайным образом из крупных баз данных слов, которые включают в себя много неясных слов и фильтруются уровнем сложности, определенным для этого слова.