Similar presentations:
Объектно-ориентированное программирование. Объекты и методы
1.
Модуль 5. Урок 1.Объектно-ориентированное
программирование.
Объекты и методы
Ссылка на методичку
2.
Рассмотрим ожидаемый результатОбсуждение
рабочих задач
Игра «Черепашьи гонки». При запуске игры отрисовывается разметка беговой дорожки и
появляются две черепашки. Скорость каждой участницы задаётся случайным образом.
Цель игры — угадать, кто прибежит первым.
3.
В чём сложность?В программе должно быть две черепашки одновременно!
Цвет 1
Координата 1
Цвет 2
Координата 1
Координата 2
Координата 2
Игровые объекты
помнят данные и
выполняют
действия.
● первая черепашка, вперёд; первая черепашка, влево;
● вторая черепашка, вперёд; вторая черепашка, влево.
Обсуждение
рабочих задач
Каждая черепашка имеет собственный набор данных (цвет, скорость) и
управляется отдельными командами.
4.
В чём сложность?В программе должно быть две черепашки одновременно!
Объект 1
Объект 2
ДАННЫЕ
ДАННЫЕ
ДЕЙСТВИЯ
ДЕЙСТВИЯ
Обсуждение
рабочих задач
Каждая черепашка имеет собственный набор данных (цвет, скорость) и
управляется отдельными командами.
5.
Работа с несколькими объектамиОбсуждение
рабочих задач
Чтобы программировать «Черепашьи гонки» и другие игры, нужно
работать с несколькими объектами в одной программе.
Пример программы с несколькими
черепашками
6.
Переменная —это элемент данных, названный каким-то именем.
Подтверждение
квалификации
Переменные нужны для хранения информации, с которой
работает программа.
7.
Функция —это действия с данными:
алгоритм, составленный из уже известных команд и
названный каким-то именем.
Подтверждение
квалификации
Функция даёт программисту команду, выполняющую весь
алгоритм. Эту команду можно использовать в программе
несколько раз.
8.
Переместить черепашкуна 100 пикселей вперёд
forward(100)
Повернуть вправо черепашку на
угол, равный 100 градусам
right(100)
Повернуть влево черепашку на
угол, равный 100 градусам
left(100)
Изменить толщину пера черепашки
на 5 пикселей
pensize(5)
Изменить цвет пера черепашки на
оранжевый
color("orange")
Подтверждение
квалификации
Какие команды соответствуют описаниям?
9.
Работа с объектомПеред тем, как приступить к «Черепашьим гонкам», научимся работать
с несколькими объектами в одной программе.
Но что же такое объект?
«Мозговой
штурм»
Какие примеры объектов реального мира вы знаете?
10.
Объект —это набор данных и действий, которые удобно
воспринимать как единое целое.
«Мозговой
штурм»
Объекты реального мира:
11.
На русском языке:Заяц, беги!
На языке
программирования:
Заяц бежать()
.
«Мозговой
штурм»
Каждый из этих объектов хранит нужную
информацию о себе и умеет выполнять
некоторые действия.
12.
Свойства и методы объектовКаждый объект обладает свойствами и управляется методами.
Методы
заяц.скорость = 50
заяц.бежать()
черепаха.скорость = 1
черепаха.ползти()
рыба.скорость = 30
рыба.плыть()
Переменная, помещённая внутрь
объекта.
Функция, помещённая
внутрь объекта.
«Мозговой
штурм»
Свойства
13.
Обращение к свойствам и методамТочка — это выбор из того, что помнит или умеет объект.
«Мозговой
штурм»
объект.метод()
объект.свойство
14.
Объектно-ориентированное программирование— это подход, который базируется на создании
«Мозговой
штурм»
объектов и управлении ими.
15.
Рассмотрим задачуЗадача. Запрограммировать анимацию как на картинке. Три линии (зелёного,
красного и голубого цветов) отрисовываются в разных направлениях одновременно.
from turtle import *
t1 = Turtle()
t2 = Turtle()
t2.color('green')
t2.left(120)
t3 = Turtle()
t3.color('blue')
t3.left(240)
Создание трёх
черепашек.
«Мозговой
штурм»
t1.color('red')
16.
Рассмотрим задачуЗадача. Запрограммировать анимацию как на картинке. Три линии (зелёного,
красного и голубого цветов) отрисовываются в разных направлениях одновременно.
for i in range(60):
t1.forward(5)
t1.left(5)
Отрисовка узора.
t2.left(5)
t3.forward(5)
t3.left(5)
«Мозговой
штурм»
t2.forward(5)
17.
Рассмотрим задачуЗадача. Запрограммировать анимацию как на картинке. Три линии (зелёного,
красного и голубого цветов) отрисовываются в разных направлениях одновременно.
«Мозговой
штурм»
При желании сектора можно заполнить
цветом. Как это сделать?
18.
Рассмотрим задачуЗадача. Запрограммировать анимацию как на картинке. Три линии (зелёного,
красного и голубого цветов) отрисовываются в разных направлениях одновременно.
t1.begin_fill()
t2.begin_fill()
t3.begin_fill()
t1.end_fill()
t2.end_fill()
t3.end_fill()
«Мозговой
штурм»
#отрисовка узора
19.
Техническое заданиеИгра «Черепашьи гонки». При запуске игры отрисовывается разметка беговой дорожки и
появляются две черепашки. Скорость каждой участницы задаётся случайным образом.
Цель игры — угадать, кто прибежит первым.
разметка поля;
гонка;
победный танец.
«Мозговой
штурм»
Этапы проекта:
20.
Turtle: новые командыКоманда
shape(‘turtle’)
Значение
Изменить «костюм» черепашки
(форму объекта).
Возможные костюмы:
”arrow”, ”turtle”, ”circle”, ”square”, ”triangle”,
”classic”.
Теперь команды применяются к объектам:
shape(‘turtle’)
t1.shape(‘turtle’)
«Мозговой
штурм»
Текущая координата Х черепашки
(по горизонтали).
xcor()
21.
Новая команда стандартной библиотеки PythonКоманда
result = max(number1, number2, ...)
Значение
Определяет максимальное среди
переданных чисел и возвращает его.
«Мозговой
штурм»
Команда пригодится при выявлении победителя!
22.
«Черепашьи гонки»«Мозговой
штурм»
В игре не будет интриги, если задать случайную, но постоянную скорость
каждой черепашке. Скорость объекта должна меняться.
Скорость постоянна
Скорость колеблется
23.
Создать объекты-черепашкиРазместить черепашек на линии старта
Задать линию финиша (координату Х)
Координата Х каждой черепашки
меньше, чем координата финиша?
Нет
Переместить каждую черепашку вперёд
на случайное число пикселей (от 2 до 7)
Определить черепашку с максимальной
координатой Х
«Мозговой
штурм»
Да
24.
«Черепашьи гонки» — гонкаfinish = 200
def startRace(t, x, y, color):
t.color(color)
t.shape('turtle')
t.penup()
Подготовка черепашек
к старту.
t.goto(x, y)
t1 = Turtle()
t2 = Turtle()
startRace(t2, -200, 20, 'blue')
while t1.xcor() < finish and t2.xcor() < finish:
t1.forward(randint(2,7))
t2.forward(randint(2,7))
max_x = max(t1.xcor(), t2.xcor())
Каждая черепашка
ускоряется и замедляется
случайным образом.
«Мозговой
штурм»
startRace(t1, -200, -20, 'red')
25.
«Черепашьи гонки» — победный танецПобедный танец в прототипе может быть любым.
Чем оригинальнее будет идея, тем интереснее!
Определить черепашку-победительницу
Перенести победителя в центр экрана
«Мозговой
штурм»
Запустить победный танец
26.
«Черепашьи гонки» — победный танецТанец, предложенный разработчиком Костей:
def dance(t):
t.speed(15)
t.left(randint(0, 90))
j = 0
while j < 8:
Танец удобно запрограммировать
в отдельной функции.
Для этого в качестве аргумента нужно передать
черепашку-победительницу.
t.penup()
t.goto(0, 0)
i = 1
while i < 32:
t.forward(i)
t.left(i/2+5)
i += 1
j += 1
t.penup()
t.goto(0, 0)
«Мозговой
штурм»
t.pendown()
27.
Для завершения работыпройдите техническое интервью
1. Что такое объект? Свойство объекта? Метод объекта?
Подведение итогов
рабочего дня
2. Сколько черепашек можно создать в одной программе?
Можно ли задать всем черепашкам разные цвета?
Костя,
Алёна,
старший разработчик
менеджер проектов
programming