3.14M
Category: programmingprogramming

Объектно-ориентированное программирование. Объекты и методы

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. Сколько черепашек можно создать в одной программе?
Можно ли задать всем черепашкам разные цвета?
Костя,
Алёна,
старший разработчик
менеджер проектов
English     Русский Rules