Все статьи Комплексные задачи. Котик следует за мышкой
В этой практике вы начнёте по шагам решать комплексные задачи, двигаясь от математической модели и псевдокода к готовой программе
Выполнять задания надо в парах. Это также называется парным программированием.
Не все программисты умеют правильно заниматься парным программированием. О том, как это делать неправильно, расскажет ролик от Atlassian:
Инструкция к парному программированию
Мы будем выполнять парное программирование иначе:
- Сначала вы подготавливаете решение вдвоём:
- Если задача требует моделирования, вы вдвоём составляете модель и рисуете её в свободной форме (если опыта мало, лучше рисовать на листочке и выписывать все формулы там же)
- Если же стоит цель разобраться с возможностями библиотеки, вы изучаете документацию и примеры в документации
- Затем один из вас пишет псевдокод готовой программы
- Наконец, вы кодируете решение по очереди
- например, можно по очереди писать по одной функции
- пока один программист пишет, другой должен внимательно следить и аккуратно поправлять его
Задание workshop1.1
Нарисуйте стрелку такую же, какая показана на скриншоте ниже. В этом вам помогут методы Shape::setOutlineColor и sf::Shape::setOutlineThickness, изучите их документацию.
Затем закрасьте фон окна белым цветом. Используйте для этого необязательный параметр метода RenderWindow::clear
Задание workshop1.2
Заставьте стрелку двигаться к текущей позиции курсора мыши, поворачиваясь в сторону курсора. Скорость движения стрелки должна быть ограничена величиной 20 пикселей в секунду, скорость поворота стрелки ограничена величиной 90° в секунду.
Вы должны делать задачу последовательно:
- Зарисовать на листочке подробную иллюстрацию решения вместе с формулами
- Написать псевдокод на уровне “функции с комментариями вместо инструкций” и сохранить псевдокод в отдельном файле
- Затем выполнить кодирование, то есть реализовать тела всех функций
Изучить поведение можете с помощью Интерактивного пример на JavaScript
Справиться с задачей вам поможет слайд из лекции:
Задание workshop1.3
С помощью руководства Sprites and textures, а также документации класса sf::Sprite нарисуйте на белом фоне кота. Используйте спрайт, представленный ниже.
Вы можете открыть контекстное меню над картинкой и выбрать пункт
Сохранить изображение как...
. Так вы получите изображение, которое затем можно загрузить в спрайт. Будьте внимательны, указывая путь к изображению, и не используйте относительный путь — лучше скопировать изображение в каталог программы.
Задание workshop1.4
Требуется разработать программу, в которой кот будет двигаться к лазерной указке, поворачиваясь зеркально строго влево или вправо (т.е. 0° либо 180°) в направлении указки. Отразить кота зеркально можно с помощью метода Sprite::setScale, передав параметры (-1, 1)
в качестве нового масштаба спрайта; вернуть обратно можно с помощью параметров (1, 1)
. Позиция лазерной указки выбирается пользователем путём клика мышью.
Спрайт точки попадания лазерной указки:
Вы должны делать задачу последовательно:
- Зарисовать на листочке подробную иллюстрацию решения вместе с формулами
- Написать псевдокод на уровне “функции с комментариями вместо инструкций” и сохранить псевдокод в отдельном файле
- Затем выполнить кодирование, то есть реализовать тела всех функций