Вывести ближайшее значение списка, которое соответствует строке? - PullRequest
0 голосов
/ 18 декабря 2018

Я играю в шахматы.Я хочу получить предложенный ход.

best_move_dataset = Collection of played Moves in the History
move_done = is the move i have played if the app started

Solution-Output (best_move_dataset == move_done): nearest equality
f6
f5

Это мой код, и я действительно не знаю, как сделать это решение.

best_move_dataset = ['d4 Nc6 e4 e5 f4 f6','d4 Nc6 e4 e5 f4 f5','d4 Nc6 e3 e5 f4']

moves_done = 'd4 Nc6 e4 e5 f4'
moves_done_list = moves_done.split(' ')
len_moves_done = len(moves_done_list)

len_best_move = len(best_move_dataset)

for move_zaehler in range(len_moves_done):
        print(best_move_dataset[0])

Я надеюсь, что вы, ребята, понимаете, если у вас есть какие-либоПодскажите, как я могу изменить Вопрос, чтобы он был понятнее, тогда, пожалуйста, напомните мне.

Надеюсь, я получу некоторую помощь.

С наилучшими пожеланиями

Тобиас

1 Ответ

0 голосов
/ 18 декабря 2018
best_move_dataset = ['d4 Nc6 e4 e5 f4 f6','d4 Nc6 e4 e5 f4 f5','d4 Nc6 e3 e5 f4']
moves_done = 'd4 Nc6 e4 e5 f4'

best_sequences = [str_.split() for str_ in best_move_dataset]
moves_sequence = moves_done.split()
count = len(moves_sequence)
suggestions = []

for best_sequence in best_sequences:
    if len(best_sequence) > count:
        if moves_sequence == best_sequence[:count]:
            suggestions.append(best_sequence[count])

for suggestion in suggestions:
    print(suggestion)

Вывод:

f6
f5

Объяснение:

После разбиения строк последовательностей перемещения в списки,мы сравниваем последовательность готовых ходов к каждые последовательности ходов в истории (в цикле for).

Если этопоследовательность на длиннее , чем последовательность выполненных ходов, и ее сокращенная часть равна , то же самое , что и последовательность выполненных ходов, мы добавляем следующий ходэта последовательность к подготовленному списку предложений.

Затем в цикле for мы печатаем их.


Примечание:

Вместоиз понимания списка использованного вы можете написать:

best_sequences = []
for str_ in best_move_dataset:
    best_sequences.append(str_.split())
...