Kodomo

Пользователь

Задание

1: darcs + ssh

Я надеюсь, что у каждого из вас есть доступ к компьютеру, кроме kodomo / kodomo-count / компьютеров класса: например, домашний компьютер или компьютер в лаборатории. Далее будем называть его me.

С этого момента вам будет, наверное, проще вместо того, чтобы копировать файлы на kodomo всякий раз вручную, просто редактировать локальную копию репозитория и после darcs rec не забывать отправлять изменения на kodomo: darcs push.

2*: Ханойские башни

Задача только для тех, кто решил все предшествующие задачи из всех предыдущих заданий.

Основная идея Ханойских башен. Есть n дисков разного диаметра и m шестов. Положим, что i-й диск имеет диаметр i. Изначально все диски сложены на одном шесте в порядке увеличения диаметра (сверху самый тонкий). За один ход можно переложить один (верхний) диск с одного шеста на другой. При этом диск можно класть только поверх диска большего диаметра.

Создайте в репозитории скрипт hanoi.py, который получает с коммандной строки число дисков и число шестов, и отображает на экране по шагам решение задачи перемещения дисков с первого шеста на второй. Если задача не решаема, программа сообщает об этом.

Советы: первым делом определите представление состояния ханойских башен; опишите и отладьте функцию, которая отображает состояние; только затем опишите функцию, которая решает задачу; проще всего задачу решать рекурсией.

Подсказки к заданию 1

Windows

Настройка доступа через SSH по ключу

Настройка darcs

Как сказать darcs, где брать SSH

Есть два способа. Иногда один из них по непонятным мне причинам может не сработать.

Первый:

Этот способ несколько лучше, но он работает только в том случае, если у вас в пути к программам PuTTY нету пробелов (т.е. если PuTTY лежит у вас в C:\Program Files\PuTTY, этот способ не пройдёт, а если вдруг что-нибудь вроде C:\Programs\PuTTY, то получится).

Нужно прописать в несколько переменных среды для darcs пути к программам из дистрибутива PuTTY: в переменную DARCS_SSH – полный путь к plink.exe (включая сам plink.exe), в DARCS_SCP – к pscp.exe, в DARCS_SFTP – к psftp.exe

Второй:

Не прописывать никаких переменных среды, а скопировать в ту директорию, где лежит darcs, утилиты из семейства PuTTY. Скопировав, их нужно переименовать: plink.exe -> ssh.exe; pscp.exe -> scp.exe; psftp.exe -> sftp.exe.

Перменные среды

Правой кнопкой мыши по My Computer (Мой Компьютер) -> Properties (Свойства) -> Advanced (Дополнительно) -> Environment variables (Переменные среды).

Видим две таблички вида: слева имя переменной, справа – её значение. Переменную можно вписать в любую из них: если впишете в верхнюю, изменения будут касаться только вас, если в нижнюю, то всех пользователей

Отыскиваем имя переменной XXX и правим для неё значение (если её нет, говорим создать переменную). Жмём ОК.

Изменения переменных среды будет касаться только тех программ, которые запущены после изменения. Т.е., после изменения среды нужно будет, например, закрыть и запустить заново FAR.

Linux