Повторение предыдущих тем и генераторы тестов
- Повторение: функции, область видимости локальных и глобальных переменных, рекурсия
Функции как объекты, передача функций в качестве параметра, использование стандартных методов классов (например, int.__mul__ или подобных)
Программа и модуль на Python, использование __name__
Передача данных из командной строки с помощью sys.argv[]
Передача данных со стандартного ввода с помощью > и |
Домашнее задание
Лабиринт
- Лабиринт задаётся списком списков (двумерным массивом) M x N, в котором ненулевой элемент обозначает стену, а нулевой — свободное место. Переходить с одного свободного места на другое можно только на одну клетку по горизонтали или вертикали. Написать несколько функций:
Замечание Имеется непонятный и ужасный, но работающий генератор лабиринта, и можно временно воспользоваться для решения задач 2,3,…: labpur.py (при вводе с помощью input() получается сразу список списков)
Генератор лабиринта и вывод лабиринта с помощью # и пробелов
- ... «просто» лабиринта
- ... «красивого» лабиринта:
*************** * # * * ##### ##### * * # # # * *## # ### ### * * # # * * ### # ######* * # # # * * ### ### # ##* * # # # * *###### # ### * * # # * * # # ####### * * # * ***************
- ...проходимого или непроходимого лабиринта (управляется параметром)
Выяснить, можно ли добраться из клетки [0][0] в клетку [N-1][M-1]
- ...попутно вычислив длину минимального пути
Вывести любой (не обязательно минимальный) маршрут из [0][0] в [N-1][M-1]
- Вывести минимальный маршрут
- ...на карте лабиринта
Условные обозначения
— тема по Linux
— необязательная тема
— теоретическое задание
— тема для самостоятельного изучения