Ваш вопрос не содержит объяснений, но я отвечу на лучшее, что я понял.
Я думаю, вы пытаетесь сделать что-то вроде поискового решения, смешанного с головоломкой для скремблирования?
В любом случае, моя рекомендация - сделать несколько функций для всего, что вам нужно решить. Например:
Как я вижу это, вам нужно знать, могут ли буквы в board
составлять каждое из слов в переменной words
. Это можно сделать с помощью одной функции. Если вам действительно не нужен порядок слова, просто длина, тогда мы можем сделать это так.
def same (word, letters):
temp = []
for every_letter in word:
if every_letter in letters and every_letter not in temp:
temp.append(every_letter)
return len(temp) >= len(word)
Эта функция принимает только один word
и «кучу letters
» (например, список из board
;)) в качестве параметров, то функция сравнивает каждую букву в word
против каждой буквы в «куче letters
", и если он находит совпадение, он добавляет его в переменную temp
, в конце итераций, если временная переменная имеет как минимум то же количество букв, что и начальное слово, тогда можно с уверенностью сказать, что это слово может быть встроенный.
* проблема с этой функцией. Если оригинал word
имеет повторяющиеся буквы, например, слово «масло», то эта функция не будет работать, но поскольку это не ваш случай, мы можем продолжить.
Для второй части мы должны использовать эту функцию для каждого word
в board
поэтому мы будем использовать другую функцию для этого:
def num_words_on_board(board, words):
count = 0
for word in words:
for letters in board:
if same(word, letters):
count += 1
print(count) # This is not needed, just here for testing.
return count
И там мы идем. Эта функция должна вернуть count
, которая равна 3
. Я надеюсь, это поможет вам.
(если кто-то хотят исправить мой код, пожалуйста, не стесняйтесь, это не оптимально любыми средствами. Просто подумал, что было бы легко понять, как это, а не ответ на дубликате вопроса упомянутого Стефана Pochmann)
:)
Вы должны объяснить более, что ваша игра предположим, что нужно сделать. ОДНАКО, похоже, что ваш оператор возврата, скорее всего, имеет отступы слишком далеко.То, как оно реализовано в настоящее время, будет рассмотрено только первое слово в 'board' – nbryans
. В вашем выражении' if' появляется запрос о том, есть ли список слов ('words') в строке, возникающей из-за присоединения к другому списку слов в строку; это то, что вы хотите сделать? –
Да! Не могу согласиться с вами подробнее – user7491985