Kodomo

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

Задание

Оценка за задание есть наибольшая из оценок за решённые задачи.

Задание должно быть выложено в репозиторий homework, который должен быть выложен на bitbucket. В противном случае, вне зависимости от задачи вы получаете не более 6 баллов.

Если вы хотите получить оценку выше 8 баллов, код должен быть чистым и читаемым (по существу я этого требовал и раньше). Т.е. все функции, переменные и классы имеют содержательные и понятные названия. Схема именования сущностей в одном типе сущностей однородна (т.е. либо везде сокращения, либо везде полные слова). Функции не бывают длиннее ~10 строк и не делают больше одного дела. Строки не бывают длиннее 75 символов (включая отступы). Внутри строк есть одна политика на тему того, как ставить пробелы. Части кода расположены стандартным образом: импорты -> константы и глобальные переменные -> определения (функций и классов) -> if __name__ == "__main__".

Я настоятельно рекомендую писать чистый код изначально (да, это значит, что иногда в очевидных, казалось бы, местах приходится на 10 минут задуматься над названием переменной), потому что так быстрее получить рабочую программу. Всё равно основное время уходит на отладку, а

  1. (6 баллов) Напишите программу, которая рисует на экране 100 кружочков, и позволяет кликом по кружочку зачеркнуть его крестом. (Центр креста должен совпасть с центром зачёркиваемого кружка).

  2. (8 баллов) Напишите программу, которая позволяет щелчком правой кнопки мыши создавать кружок случайного радиуса от 20 до 80 пикселей (под курсором мыши) и щелчком левой кнопки мыши перечёркивать его. Событие "щелчёк правой кнопки мыши" называется '<3>'.

  3. (10 баллов) Напишите программу, которая рисует на экране 10 кружочков, и при клике по кружочку заставляет его перепрыгнуть на новое место, выбранное случайным образом. (Если кликнуть по кружочку на новом месте, он должен снова перепрыгнуть, и т.д.). При каждом прыжке кружок меняет свой цвет по правилу: если был красный, стал оранжевый, если был оранжевый, стал жёлтый, ... если был голубой, стал фиолетовый, если был фиолетовый, стал красный. // Можно не при клике, а при касании мышью (событие '<Motion>' отрабатывает на каждый короткий отрезок перемещения мыши). См. пример про canvas.coords() и canvas.itemconfig().