17. Делаем первую игру на Python: Поймай шарик

Для создания игр разумнее использовать специальные библиотеки (движки), хотя бы Pygame, которые уже содержат такие вещи, как двойная буферизация, работа с спрайтами и т.д. Но первые «игры» мы будем создать с помощью tkinter, потому что цель — научится программировать (в Python), а не создать готовый продукт (игру). Для этой цели простой и понятный tkinter подходит […]

16. Мышка оставляет след. Работаем с информацией о событии (event) в Tkinter

Мышь оставляет след

Рассмотрим такой пример: Что происходит? canv.bind(‘<Button-1>’,paint)связывает событие «Button-1», т.е. щелчок левой кнопкой мыши на Canvas и вызов функции paint, т.е. теперь paint будет вызываться когда мы будем щелкать мышкой в разных местах Canvas, а event.x, event.y поможет нам узнать координаты щелчка. Измените одну строку, но не запускайте сразу. Motion – это событие, которое возникает при […]

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

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

15. Вопросы для самопроверки

Вот и подходит к концу первая часть. Я надеюсь, что вы добросовестно выполняли задания, задавали вопросы и искали ответы. Теперь вы кое-то умеете и впереди у нас небольшой проект: игра «Поймай шарик». Это не будет законченной игрой в полном понимании, но это будет довольно большая программа, которую вы напишите с моей помощью и полностью поймете, […]

14. Повторять, пока получается. Цикл while в Python

Попробуем выводить на экран случайные круги, пока не появится красный: Однако, вместо результата мы видим ошибку. Python сообщает нам, что прежде, чем мы будем использовать color, мы должны поместить туда какое-либо значение: Цикл while будет работать, пока истинно условие, записанное в его заголовке. В данном случае, пока цвет не окажется красным. Усложним задачу: выводить на […]

13. Цикл for – это не только повторение несколько раз

1. Нарисовать 10 окружностей с центром в точке 400, 300 с увеличивающимся радиусом (первая – 10, вторая – 20 и т.д.) 2. Нарисовать 10 окружностей в ряд горизонтально 3. Нарисовать 10 окружностей в ряд вертикально 4. Нарисовать 10 окружностей в ряд, с увеличивающимся радиусом Нарисуем 10 окружностей с увеличивающимся радиусом: А можно и по-другому: Первое […]

12. Принимаем решения. Оператор выбора в Python (ветвление, if)

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

11. Вспомним цикл for и rnd

В первой строке добавьте подключение функций randrange и choice из модуля random: 1. Нарисовать 10 окружностей в случайном месте и случайного размера 2. Нарисовать 12 окружностей в случайном месте, случайного размера и цвета Для задания случайного цвета будем использовать тот же список цветов, что и ранее (я добавил еще несколько штук): colors = [‘lightyellow’, ‘lightgray’, […]

10. Порисуем? Графические примитивы tkinter

Кнопки — это хорошо и удобно, но для выполнения одного-двух действий удобнее использовать события самого Canvas. Сделаем так, чтобы при щелчке левой кнопкой фигуры были нарисованы, а при щелчке правой — удалены. Задания выполнять в функции paint. 1. Нарисовать окружность с центром в точке 300,200, и радиусом 50 (см. справочник Tkinter Canvas) 2. Нарисовать закрашенную […]

9. Жмем на кнопки. Возникают события. Обрабатываем! События Tkinter и их обработка.

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

Tkinter вместо Черепашки

Пришла пора сменить графическую систему отображения. Tkinter – это один из способов создать «окошки и кнопки» на Python. Кроме Tkinter существуют и другие, самые известные: Qt, wxForms. Tkinter удобен тем, что он входит в стандартную поставку Python, а значит доступен всегда (почти всегда). Недостаток – маловато возможностей для построения сложных систем. Но нам это совсем […]

Проверьте себя

Мы разобрали: 1. Создание новых команд (функций) 2. Использование параметров в функциях 3. Получение случайных чисел 4. Повторение кода несколько раз (цикл for) 5. Создание списка возможных цветов и выбор случайного цвета из этого списка. 6. print() для вывода информации на экран (в консоль) Проверьте себя: вы должны понимать код, который написан ниже. a = […]

Задачи для Черепашки

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

Список как способ хранения данных

Сначала мы создадим список возможных цветов: Теперь, без всякой случайности, выберем оранжевый и синий цвет (нумерация идет с нуля): оранжевый — colors[1] синий – colors[5] Убедимся, что это работает: Остался один шаг – выбирать случайный номер. Для этого нужно знать длину списка. Можно написать так: rnd(10), но так делать не стоит. Ведь мы можем захотеть […]

Цикл for. Повторение участка кода

Для того, чтобы не писать одно и тоже по нескольку раз, придумали циклы. Что будет выполнено в результате работы такой программы? 1. Нарисовать 4 окружности подряд 2. Нарисовать 10 окружностей Кстати, на мой взгляд Черепашка двигается слишком медленно. Нельзя ли ее как-нибудь ускорить? 3. Найти команду, которая позволяет увеличить скорость движения Черепашки (если такая есть) […]

Генератор случайных чисел

В процессе обучения мы широко будем использовать генератор случайных чисел. Это будет полезно как в играх, например для случайной расстановки бомб, так и для обычных тренировочных задач. Чтобы получить случайное число, надо подключить модуль random и воспользоваться функцией randrange(), которая получает в качестве аргумента (см. справочник на то, что такое функция, что такое аргумент, результат) […]

Черепашка узнает новые команды

Команды Черепашки ограничены тем, что заложили в нее создатели. Но как быть, если нам требуется нарисовать много квадратов? Конечно, можно скопировать и вставить много раз команды для рисования квадрата, но это будет не слишком красиво и не очень понятно. А уж когда потребуется что-то изменить, то станет совсем грустно. Попробуйте разобраться в такой программе: Чтобы […]

Теперь у вас есть Черепашка!

Первые программы мы будем создавать с помощью специального графического модуля turtle (черепашка). Этот модуль создан для начинающих изучать программирование. С его помощью можно рисовать разные фигуры. А еще с помощью Черепашки удобно рисовать фракталы. Простая программа: подключить модуль Черепашка и показать окно: Чтобы запустить программу нажмите F5 (см. справочник: работа с редактором) Нарисуем линию:   […]

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

От автора: Привет. Меня зовут Борис и я дистанционный репетитор по информатике. Помогаю школьникам готовится к экзаменам, обучаю программированию и созданию сайтов. Я просмотрел много книг для начинающих программистов, но ни одну не могу порекомендовать своим ученикам: в некоторых мало примеров, в других странная, на мой взгляд, очередность изложения материала или нет самого интересного и […]

Дано натуральное число N. Определить, какая цифра в нем расположена левее – минимальная или максимальная

Дано натуральное число N. Определить, какая цифра в нем расположена левее – минимальная или максимальная. Не очень честное решение: