Объекты и классы

Цель: изучить основы объектно-ориентированного подхода; рассмотреть понятия класса, конструктора, метода.

Справка по модулю turtle

Начало координат

Начало координат находится в центре экрана, по которому движется Черепаха.

Класс Turtle содержит следующие полезные методы (функции):

Метод Назначение
forward(dist) Движение вперёд на dist пикселей в сторону, куда направлена Черепаха
backward(dist) Движение назад на dist пикселей
right(ang) Поворот Черепахи направо на угол ang градусов
left(ang) Поворот Черепахи налево на угол ang градусов

Экземпляр класса Turtle хранит данные о текущем положение объекта и текущем угле поворота. Для получения этих данные используются следующие методы (функции), которые возвращают значения:

Метод Назначение
xcor() Возвращает координату x Черепахи
ycor() Возвращает координату y Черепахи
heading() Возвращает текущее направление Черепахи (в градусах)

Задания для самостоятельной работы

Задание № 1 (sam01.py)

Марсоход находится на площадке размером 400x400 метров. Ваша задача проехать исследуемую площадку по периметру. Путь следования марсохода изображен белым цветом.

Масштаб поля

В этой и следующих задачах 1 метр - равен одному пикселю.

Шаблон решения:

# импортируем классы Screen и Turtle
from turtle import Screen, Turtle

screen = Screen() # создаём экземпляр класса Screen
screen.setup(420, 420) # задаём размер экрана
screen.bgpic("mars-path-1.png") # задаём фоновое изображение

rover = Turtle() # создаём экземпляр класса Turtle
rover.speed(2) # задаём скорость "марсохода"
rover.pensize(4) # изменяем толщину пера
rover.penup() # поднимаем перо
rover.goto(-165,-165) # перемещаем "марсоход" в указанные координаты
rover.pendown() # опускаем перо

# тут будет располагаться ваше решение задачи

Задание № 2 (sam02.py)

Исследуя поверхность Марса, марсоход обнаружил три кратера. Напишите программу с помощью которой марсоход посетит все три кратера по заданному маршруту. Для написания программы используйте информацию на карте.

Шаблон решения:

from turtle import Turtle, Screen

screen = Screen()
screen.setup(420, 420)
screen.bgpic("mars-path-4.png")

rover = Turtle()
rover.speed(2)
rover.pensize(4)
rover.penup()
rover.goto(-160,-135)
rover.pendown()

# тут будет располагаться ваше решение задачи

Задание № 3 (sam03.py)

Марсоходу необходимо объехать особенно большой кратер по-кругу. Используя информацию на карте, напишите программу движения марсохода по указанной траектории. После каждого поворота на экран выводится текущее направление марсохода в следующем формате:

Текущий курс марсохода: 30.0 град.
Текущий курс марсохода: 60.0 град.
Текущий курс марсохода: 90.0 град.
...

Шаблон решения:

from turtle import Turtle, Screen

screen = Screen()
screen.setup(420, 420)
screen.bgpic("mars-path-5.png")

rover = Turtle()
rover.speed(2)
rover.pensize(4)
rover.penup()
rover.goto(-40,-160)
rover.pendown()

# тут будет располагаться ваше решение задачи

Задание № 4 (sam04.py)

Марсоходу необходимо посетить ещё три кратера, при этом не упав в расщелину (обозначена тёмно-красным цветом). Напишите программу с помощью которой марсоход доедет до всех трёх кратеров, не упав в пропасть. Марсоход должен остановиться на последнем кратере. Порядок посещения кратеров выберите самостоятельно.

Программа должна вывести на экран координаты каждого кратера в следующем формате:

Координаты кратера: (30, -130)

Шаблон решения:

from turtle import Screen, Turtle

screen = Screen()
screen.setup(420, 420)
screen.bgpic("mars-path-6.png")

rover = Turtle()
rover.speed(2)
rover.pensize(4)
rover.penup()
rover.goto(-160,160)
rover.pendown()

# тут будет располагаться ваше решение задачи

Задание № 5 (sam05.py)

Марсоходу необходимо составить детальную карту поверхности планеты. Для этого ему нужно проехать по указанному на карте маршруту. Напишите программу движения марсохода.

Предупреждение

Марсоходу не обязательно точно следовать белой линии. Все повороты могут быть совершены на 90 градусов. Главное, чтобы движение происходило по зигзагообразной траектории.

Шаблон решения:

from turtle import Turtle, Screen
screen = Screen()

screen.setup(420, 420)
screen.bgpic("mars-path-2.png")

rover = Turtle()
rover.speed(2)
rover.pensize(4)
rover.penup()
rover.goto(-165,-165)
rover.pendown()

# тут будет располагаться ваше решение задачи

Задание № 6 (sam06.py)

Вам необходимо разработать программу альтернативного движения марсохода по поверхности планеты для составления карты. Маршрут движения марсохода показан на рисунке. Напишите программу движения марсохода.

Предупреждение

Марсоходу не обязательно точно следовать белой линии. Все повороты могут быть совершены на 90 градусов. Главное, чтобы движение происходило по зигзагообразной траектории.

Шаблон решения:

from turtle import Screen, Turtle

screen = Screen()
screen.setup(420, 420)
screen.bgpic("mars-path-3.png")

rover = Turtle()
rover.speed(2)
rover.pensize(4)
rover.penup()
rover.goto(-165,-165)
rover.pendown()

# тут будет располагаться ваше решение задачи