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

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

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

(черновик) рисовать, пока не будет нарисован красный рисовать, пока не будет нарисовано два красных рисовать, пока не будет нарисован красный и синий рисовать, пока не будет нарисован красный или синий while 1 break гонять мяч от стены до стены, пока не удариться 3 раза о любую стену

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

Сделать круг, который двигается вправо (root.after это уже было или нет?) Круг движется вправо и останавливается у правой границы Тоже самое влево, вверх, вниз Круг доходит до правой границы и начинает двигаться в другую сторону Тоже слева Отскакивает от всех стен Круг появляется на экране. По щелчку в круге — появляется в новом месте По […]

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

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

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

Для того, чтобы в Tkinter вызывать действия по нажатию клавиш (реагировать на клавиатуру), используется почти такой же bind, как и для реакции на мышь, только привязывать надо не к холсту (Canvas), а к главному окну (root): root.bind(»,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, вызывать ее нажатием правой кнопки мыши на экране. Левая — очищает и создает новый список. Рассмотрим некоторые приемы, которые понадобятся […]

28. Продолжаем работать со списками

Продолжим работать со списками. На этот раз вернемся к рисованию «шариков» и работе с списком объектов. Задания выполнять в функции task, вызывать ее нажатием правой кнопки мыши на экране. Левая — очищает и создает новый список. 1. Посчитать количество синих 2. Найти общую площадь зеленых 3. Удалить красные 4. Удалить красные, если их граница синяя […]

27. Списки и еще раз списки в Python: отличия числового списка от списка объектов и приемы работы

Сегодня еще один урок, в котором будем работать со списками. Подготовим два списка, один из которых будет заполнен числами, а другой — объектами. Найдем самое большое значение. Начинающие всегда пытаются сравнивать соседние значения, чтобы найти самое большое. Но это тупиковый путь. Представьте что вы находитесь возле 1000 людей, которые стоят в ряд и на вид […]