Пример возврата с PythonPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Пример возврата с Python

Сообщение Anonymous »


2 -1 -1

-1 -1 2

-1 2 -1 -1

-1 -1 -1 0

Л Р Л Р

У У Л Р

Д Д Л Р

Это пример вывода, и L R U D означает влево вправо Вверх вниз, и вы можете думать об этом как о кусочках домино. Описание изображения, введенное здесь, показывает, сколько H и B следует использовать в этой строке и столбце. Если число равно -1, это означает, что ограничений нет. если мы поместим B в ячейку L, то ячейка R должна быть H, если мы поместим H в ячейку L, ячейка R должна быть B. Потому что это фишка домино. То же самое для U и D. Есть условие, при котором мы не можем помещать одни и те же символы рядом и снизу вверх. И нет решения для B и H, поместите туда N. B означает «Базовый», H означает «Высокий», а «N» означает «Нейтральный». Используйте возврат. Пример вывода для этого ввода: B H B H

Ч Б Н Н

Б Х Б Ч

left = [2, -1, -1] вправо = [-1, -1, 2] вверх = [-1, 2, -1, -1] вниз = [-1, -1, -1, 0] matris_check = [ ["Л", "П", "Л", "П"], ["У", "У", "Л", "Р"], ["Д", "Д", "Л", "П"] ] lenx = len(matris_check[0]) лени = лен(matris_check) матрис = [ [Нет, Нет, Нет, Нет], [Нет, Нет, Нет, Нет], [Нет, Нет, Нет, Нет] ] список = ["H", "B", "N"] defsolve(matris, list, matris_check, lenx, leny, i=0, j=0): защита fill_others(): если matris_check[j] == "L" и matris[j] == "B": матрис[j + 1] = "H" если matris_check[j] == "L" и matris[j] == "H": матрис[j + 1] = "B" если matris_check[j] == "U" и matris[j] == "B": матрис[i + 1][j] = "H" если matris_check[j] == "U" и matris[j] == "H": матрис[i + 1][j] = "B" если matris_check[i][j] == "L" и matris[i][j] == "N": матрис[i][j+1] = "N" если matris_check[i][j] == "U" и matris[i][j] == "N": матрис[i+1] = "N" защита check_around(): если i > 0 и (matris[i][j] == "B" и matris[i - 1][j] == "B"): вернуть ложь если j > 0 и (matris[i][j] == "B" и matris[i][j - 1] == "B"): вернуть ложь если i < leny - 1 и (matris[i][j] == "B" и matris[i + 1][j] == "B"): вернуть ложь если j < lenx - 1 и (matris[i][j] == "B" и matris[i][j + 1] == "B"): вернуть ложь если i > 0 и (matris[i][j] == "H" и matris[i - 1][j] == "H"): вернуть ложь если j > 0 и (matris[i][j] == "H" и matris[i][j - 1] == "H"): вернуть ложь если i < leny - 1 и (matris[i][j] == "H" и matris[i + 1][j] == "H"): вернуть ложь если j < lenx - 1 и (matris[i][j] == "H" и matris[i][j + 1] == "H"): вернуть ложь если j == ленкс: вернуть решение (matris, list, matris_check, lenx, leny, i + 1, 0) Элиф я == Лени: возвращаться еще: для письма в списке: если matris[i][j] равен None: если check_around(): matris[i][j] = буква fill_others() решить(matris, list, matris_check, lenx, leny, i, j+1) решить(matris,list,matris_check,lenx,leny,0,0) print(*matris, sep='\n') это мой код, но я не могу контролировать возврат и значения H, B
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»