Учебник программирования: «Программирование — это интересно!»

Задания обновляются! Следите за новостями! (29-06-16) Долгое время я обучал на «обычных задачах»: найти сумму, найти сумму четных и т.д. Но понял, что это не очень интересно и решил сделать свой учебник — интересный учебник по программированию, с занимательными задачами, с играми и графикой. Сказано — сделано. Давая задачи на поиск максимального значения в массиве […]

Прыгающий мячик

Создадим двигающийся мячик: Добавим отражение от стен. Для этого, после изменения координат добавим проверку на пересечение границы Запустите программу. Должна появится ошибка: Подумайте, что нужно сделать, чтобы исправить программу. Пока мячик летает «в невесомости». Добавим тяготение (притяжение к нижней части экрана). Для этого каждый кадр будем добавлять к скорости 1: Для того, чтобы мяк прыгал […]

Основы ООП (план)

Классы методы, свойства Наследование(?) Класс мячик Класс прыгающий мячик Много прыгающих мячиков Летающие мячики Фонтаны и т.д. Аналог agar.io ___ отдельными статьями: угадай пару (поставить перед PIL??) аэрохоккей на двоих (до ООП) Чужие (древний консольный вариант) Чужие (вид сверху с перемещениями) Сапер Пак-мен Бомбермен Тетрис

PIL

Для того, чтобы выводить изображения на Canvas, придется установить PIL (Python Image Library), точнее ее форк: pillow. Для установки выполните следующие действия: Если у вас windows: 1. Пуск-выполнить (или сочетание клавиш Win+R) 2. Напечатать cmd и нажать Enter (откроется консоль — черное окно с текстом. Или не черное, но все равно с текстом) 3. В […]

Выполнять, пока получается. Цикл while

Рисовать, пока не будет нарисован красный: 1. Рисовать, пока не будет нарисовано два красных 2. Рисовать, пока не будет нарисован красный и синий 3. Рисовать, пока не будет нарисован красный или синий 4. По щелчку создать в этом месте круг, который начинает двигаться в случайном направлении и двигается, пока не удариться 3 раза о любую […]

Ветвление, оператор if

Для того, чтобы получить анимацию, нужно несколько раз в секунду выводить новое изображение и удалять старое. Круг, который движется вправо: Сделаем так, чтобы круг остановился у правой границы: 1. Сделать круг, который движется от центра влево и останавливается у левой границы 2. Сделать круг, который движется от центра вверх и останавливается у верхней границы 3. […]

Делать определенное количество раз. Цикл for

Мы уже использовали ранее цикл for для повторения действий определенное количество раз, когда управляли Черепашкой. Воспользуемся им еще раз и порисуем. Начнем с одного круга в случайном месте и нарисуем его по щелчку мыши: 1. Нарисовать 20 кругов в случайных местах 2. Нарисовать 40 кругов в случайных местах случайного размера, случайного цвета 3. Нарисовать 20 […]

Работаем в Tkinter с клавиатурой

Для того, чтобы в Tkinter вызывать действия по нажатию клавиш (реагировать на клавиатуру), используется почти такой же bind, как и для реакции на мышь, только привязывать надо не к холсту (Canvas), а к главному окну (root): root.bind(‘<Key>’,keypress). По нажатию на любую клавишу круг двигается вправо: Чтобы с помощью клавиш управления курсором управлять кругом, нужно знать […]

Удаление всего, отдельного элемента, группы элементов

Рассмотрим удаление элементов на холсте. Для удаления будем использовать метод delete(): canv.delete(ALL) удаляет все объекты на холсте. Если нужно удалить не все, а только часть, то есть два пути: удалять по имени и удалять по тегу (метке) Удаление по имени позволит удалить только один объект. А удаление по метке — сколько угодно, в том числе […]

Работаем с мышью в Tkinter

Возьмем самый простой вариант создания окна и холста: С функциями (командами) вы уже знакомы, так что данный код не должен вызвать непонимание: Сначала создается функция click, которая рисует окружность, а потом эта функция вызывается. Теперь сделаем так, чтобы она вызывалась по щелчку мыши. Однажды мы это уже делали, но с Черепашкой. В Tkinter немного иначе. […]

Черепашка меняет скорость и отражается от стен

В прошлом уроке мы рассмотрели, как остановить Черепашку, когда она дошла до определенной границы. Теперь сделаем так, чтобы Черепашка разворачивалась, когда доходила до правой стороны экрана (x = 200) 1. Черепашка после запуска программы ползет влево и, достигнув координаты x = -200, разворачивается и начинает ползти вправо 2. Черепашка ползает влево-вправо, разворачиваясь на границах x […]

Черепашковый зоопарк. Несколько Черепашек сразу на одном экране

(черновик) Убрать, не делать. Несколько черепашек создать, и запустить Проверка расстояния одной черепашки от другой Хождение цепочкой (одна выбирает случайное направление, а другие идут за ней) Гонки Черепашек

Маршрут для Черепашки

(черновик) Щелкать мышью и запомнить координаты. Черепашке — ползти по ним. Когда закончатся — останавливаться Добавить несколько фигур: слоник, кот, дом, паутина

Черепашка принимает решения

В прошлый раз мы рассмотрели, как научить Черепашку начинать движение после щелчка мыши. Теперь научим ее останавливаться. Чтобы остановить движение Черепашки, нужно отменить вызов ontimer или обнулить скорость. Кроме того, нужно решить, когда останавливать Черепашку. Черепашка ползет вправо, начиная из точки с координатами (0,0). Остановим ее, когда она уползет вправо на 100. Для этого будем […]

Реакция Черепашки на нажатие клавиш

(черновик) Черепашка стоит, по нажатию на стрелки — ползет. … придумать дрифт и хватит нарисовать картинку с дорогой и положить на фон — погонять bgpic(‘bg.gif’) изображение

Реакция Черепашки на щелчки и перемещения мыши

Сделаем так, чтобы Черепашка начинала ползти после щелчка мыши: onscreenclick — указание выполнить команду после щелчка мышью на экране. Команда(функция), которая будет выполнена по щелчку, обязательно должна принять два значения: x,y — координаты щелчка. Передачу параметров в команду(функцию) мы разбирали, когда рисовали фигуры разного размера. Попробуйте изменить fd(100) на fd(1000) и fd(10). Что меняется? Однако, […]

34. Отвлечемся от списков. Простые задачи. Простые игры.

Предлагаю подумать и сделать несколько простых программ (игр). Для тренировки. Никаких подсказок давать не буду, попробуйте придумать и реализовать все сами, от начала и до конца. Разбирать эти задания будем позже. 1. Игра «Ним»: игроки по очереди берут спички из кучи. За один ход можно взять от одной до трех спичек. Выигрывает тот, кто взял […]

33. Решаем проблемы с двумерным списком

На прошлом уроке мы успешно погрузились в трудности, связанные с отображением ячеек двумерного списка. Надеюсь, вы дали себе достаточно времени подумать о проблеме. На самом деле, для ее решения нужно не так уж и много: убрать информацию о позиции ячейки из самой ячейки и передавать ее (r,c) в метод paint при каждой перерисовке. Я настоятельно […]

32. Неразрешимые трудности, дублирование информации, проблема

Продолжаем работать с двумерными списками (таблицами). В прошлом уроке была создана программа для удобной работы с таблицей ячеек: Рассмотрим некоторые задачи предыдущего урока. Отметить всех соседей можно по-разному, например так: Если выделять соседей не только по сторонам, но и по дагоналям, то лучше использовать два цикла: Обратите внимание, чтобы в обоих случаях мы берем и […]

Примерный план подготовки к ЕГЭ по информатике

Программирование (1 часть): Основы программирования — 3 часа (переменные, циклы, ветвление) Разбор задач из ege19 (A12)- 1 час Решение задач на одномерные и двумерные массивы — 4 часа Разбор задач из ege25(С2) — 3 часа Системы счисления: Понимание, перевод, операции (сложение, умножение) — 45 минут ege4(A1) — перевод и сравнение в разных системах счисления 20 […]

Python + Django + virtualenv на Windows: краткая инструкция

Добрый день. Пока очень краткая инструкция по созданию первого приложения на Django: 1. Установить Pythnon 34 2. Установить virtaulenv для создания виртуального окружения pip install virtaulenv c:\Python34\env 3. Создать виртуальное окружение C:\Python34\Scripts\virtaulenv c:\Python34\env 4. Активировать окружение: C:\Python34\env\Scripts\activate.bat 5. Установить django 1.7 pip install django 6. Установить PyCharm 7. Создать первое приложение: c:\Python34\env\Scripts>django-admin.exe startproject project1 8. […]

31. Двумерные списки (массивы, матрицы) в Python

Прежде, чем мы сделаем игру «Сапер» и «Блоки» нужно научится работать с двумерными списками. Если просто, то двумерный список — это таблица. У каждой ячейки таблицы есть номер строки и номер столбца. Т.е. каждая ячейка имеет не один номер, как в обычном списке, а два: номер строки и номер столбца. Поэтому такие списки и называют […]

30. Разбор задач предыдущего урока (без новых заданий)

Рассмотрим некоторые задачи предыдушего урока. Не то, чтобы они были сильно важны для работы со списками, но не вижу причины, почему бы не сделать эти задачи сейчас. Перетаскивание шарика. Перетаскивать шарики можно разными способами. Например так: У этого способа есть один недостаток — шарики могут «теряться» при резком движении мыши. Что ж, зайдем с другой […]

29. Списки и геометрия, забавные задачи

Продолжим работать со списками. Теперь шарики не выстроены в ряд, а раскиданы по экрану. Добавим немного геометрии в наши задания. Некоторые задания просто забавны, другие же являются частью будущих игр. Задания выполнять в функции task, вызывать ее нажатием правой кнопки мыши на экране. Левая — очищает и создает новый список. Рассмотрим некоторые приемы, которые понадобятся […]