Введение
Стремительный рост требований современного рынка труда к цифровым компетенциям педагогов обуславливает необходимость углублённой подготовки будущих учителей в области информационных технологий, в том числе владения инструментами объектно ориентированного программирования (ООП). Разработка игровых приложений является одним из наиболее эффективных методов повышения мотивации студентов и развития их интереса к информатике. Игровые приложения позволяют студентам осваивать основы объектно ориентированного программирования в увлекательной и доступной форме, создавая визуальные модели реальных процессов и явлений. Хотя основы объектно ориентированного программирования изучаются в рамках школьного курса информатики [1,c.147-164], практическая подготовка будущих учителей информатики может быть дополнена более глубоким рассмотрением динамических аспектов объектно ориентированного программирования.
Использование Delphi представляет собой актуальное решение для разработки игровых приложений, в которых в качестве игровых элементов применяются динамические объекты [2]. Динамические объекты в Delphi – это экземпляры классов, память под которые распределяется динамически в ходе исполнения программы.
Повышение мотивации и самостоятельности студентов при обучении программированию опирается на деятельностный подход [3, с.272-284; 4, с.19-35], согласно которому развитие навыков происходит через активную практическую деятельность. В рамках нашего исследования такой деятельностью выступает создание игрового приложения с динамическими объектами. С позиций деятельностного подхода мотивация формируется в процессе самой деятельности, когда студент видит чёткую цель и имеет возможность поэтапно её достигать [5, с.45-70]. Согласно теории самодетерминации [6], внутренняя мотивация студентов напрямую зависит от удовлетворения трех базовых психологических потребностей. В разработанном комплексе заданий мы целенаправленно создаем условия для их реализации:
1. Потребность в автономии удовлетворяется через предоставление студентам свободы модификации игровых проектов – выбора дизайна, дополнительных функций, что позволяет им ощущать себя инициаторами и авторами своего обучения.
2. Потребность в компетентности поддерживается принципом постепенного усложнения заданий: от разработки простой игры по образцу до самостоятельной реализации новых механик (например, «Стрельба по мишеням», «Сбор фруктов»). Это создает «лестницу успеха», укрепляя у студента веру в свои силы.
3. Потребность в связанности реализуется через организацию поддерживающей обратной связи от преподавателя.
Анализ литературы позволяет выделить три основных подхода: 1) традиционный (синтаксически ориентированный) – изучение конструкций языка на абстрактных примерах [7, c.242-246]; 2) проектный – разработка целостного приложения, часто игрового [8]; 3) проблемно ориентированный – решение задач с постепенным наращиванием сложности [9, c. 209-220]. Игровые приложения в Delphi рассматриваются в работе [2; 8].
Цель исследования – разработать, теоретически обосновать и экспериментально проверить методический подход к обучению студентов педагогических направлений созданию игровых приложений с динамическими объектами в среде Delphi и разработать практические рекомендации для преподавателя.
Материалы и методы исследования
Материалами исследования являются: Федеральный государственный образовательный стандарт высшего образования по направлению подготовки 44.03.05 Педагогическое образование (ФГОС ВО) [10] и образовательная программа (ОП) [11] этого же направления, учебно-методическая литература [12, c.62-73; 13, с.29-95; 14, с.7-23], авторский комплекс заданий, отчёты студентов (исходные коды), протоколы наблюдения.
Методы исследования включают: анализ научной и учебно-методической литературы по ООП, изучение нормативной документации, проектирование комплекса заданий, педагогический эксперимент.
Педагогический эксперимент проводился на базе Таганрогского института имени А. П. Чехова (филиал) РГЭУ (РИНХ) в 2024/2025 учебном году. Участники: 16 студентов 2 курса направления 44.03.05 (профили «Математика и Информатика») в рамках дисциплины «Объектно ориентированное программирование». Эксперимент длился 4 недели (8 аудиторных часов и 12 часов самостоятельной работы).
Оценка эффективности проводилась на констатирующем и контрольном этапах по трём критериям: сформированность предварительных навыков программирования (0–3 балла: 0 – не выполнил, 1 – частично с помощью, 2 – выполнил основные функции, 3 – выполнил полностью с дополнительными возможностями); интерес к ООП (анкетирование по 5-балльной шкале, где 5 – очень высокий, 1 – очень низкий); уровень самостоятельности (1 балл – полное копирование кода, 2 балла – частичная самостоятельная модификация, 3 балла – полная самостоятельная разработка).
Описание констатирующего этапа. Перед началом обучения студентам было предложено разработать простое консольное приложение на Delphi без использования динамических объектов (задача: создать массив записей и вывести данные). Результаты: только 3 студента (18,75%) смогли корректно реализовать массивы записей; средний балл по навыку – 1,2; средний интерес – 2,1 (из 5); средняя самостоятельность – 1,2. Отмечены типичные затруднения: непонимание динамического выделения памяти, отсутствие навыков отладки.
Разработанный комплекс заданий. Для студентов педагогических направлений предложен и апробирован комплекс из трёх заданий возрастающей сложности.
Задание 1 (базовое). Игра «Конфетти» – подробная пошаговая инструкция (см. ниже). Цель – научиться создавать, перемещать и удалять динамические объекты TShape по щелчку мыши, использовать таймер.
Задание 2 (средней сложности). «Стрельба по мишеням» – самостоятельная модификация: движение мишеней, подсчёт попаданий, таймер обратного отсчёта.
Задание 3 (повышенной сложности). «Сбор фруктов» – полностью самостоятельная разработка с элементами случайного поведения объектов, счётчиком собранных фруктов.
Детальное описание задания 1 «Конфетти» (базовый уровень). Разработать в среде RAD Studio Delphi 10.4 [15] игровое приложение «Конфетти» (рис.3). Правила: пользователь щёлкает по конфетти левой кнопкой мыши, убирая их с поля за 7 секунд. При успехе выводится «Победа! Молодец!», при неудаче – сообщение о проигрыше.
Решение.
1.Создать новый проект: File → New → Windows VCL Application – Delphi. В форме Form1 в Object Inspector свойству Caption присвоить «Конфетти».
2.На форме разместить компоненты: MainMenu1, три Label (Standard), UpDown1 (Win32), Edit1 (Standard), Shape1 (Additional), Timer1 (System). Timer1 – для динамического обновления свойств объектов.
3.Сохранить проект: File → Save Project As. Модуль: UnitGame, проект: ProjectGame.
Реализация интерфейса. В таблице 1 показана установка свойств компонентов формы.
Таблица 1
Порядок установки значений свойств компонентов формы «Конфетти»
|
Выделенный компонент |
Окно Object Inspector |
Свойство |
Установка значений для выделенного компонента |
|
В конструкторе форм выбрать форму «Конфетти» (Form1) |
|||
|
Form1 |
Вкладка Properties |
BorderStyle |
Выбрать: bsSingle |
|
ClientHeight |
Ввести значение: 600 |
||
|
ClientWidth |
Ввести значение: 900 |
||
|
Color |
Выбрать: clSkyBlue |
||
|
Label1 |
Вкладка Properties |
Align |
Выбрать: alTop |
|
Font |
Выбрать размер: 14 Выбрать цвет: зеленый |
||
|
Alignment |
Выбрать: taCenter |
||
|
Label2 |
Вкладка Properties |
Align |
Выбрать: alTop |
|
Alignment |
Выбрать: taCenter |
||
|
Font |
Выбрать размер: 48 Выбрать цвет: Красный |
||
|
Visible |
Выбрать значение: false |
||
|
Label3 |
Вкладка Properties |
Caption |
Ввести текст: Установите время для игры: |
|
Top |
Ввести значение: 165 |
||
|
Left |
Ввести значение: 276 |
||
|
Font |
Выбрать размер: 14 |
||
|
Edit1 |
Вкладка Properties |
Top |
Ввести значение: 170 |
|
Left |
Ввести значение: 536 |
||
|
Font |
Выбрать размер: 14 |
||
|
UpDown1 |
Вкладка Properties |
Associate |
Выбрать: Edit1 |
|
Max |
Ввести значение: 20 |
||
|
Min |
Ввести значение: 1 |
||
|
Shape |
Вкладка Properties |
Visible |
Выбрать значение:false |
|
Timer1 |
Вкладка Properties |
Enabled |
Выбрать значение: false |
|
Interval |
Ввести значение: 500 |
||
|
Edit1 |
Вкладка Properties |
Text |
Ввести значение: 7 |
|
ReadOnly |
Выбрать значение: true |
||
Примечание: составлено авторами на основе полученных данных в ходе исследования.
Реализация кода модуля UnitGame. Нажатием F12 открыть редактор кода. В разделе var объявить глобальные переменные (рис.1).
|
{1} var {2} Game1:TForm1; {3} Obj:TShape; {4} N, R, I:integer; {5} T:real; {6} Log:boolean; |
Рис. 1. Объявление глобальных переменных. Составлено авторами
В строке 3 – Obj (TShape); строка 4: N – число объектов, R – размер, I – параметр цикла; строка 5: T – время; строка 6: Log – наличие объектов.
Для формы создать процедуру FormCreate (рис. 2).
|
{1} procedure TForm1.FormCreate(Sender: TObject); {2} begin {3} Label1.Caption:=' Команда "Начать игру" – запускает игру.'#13#10+ {4} ' Команда "Закрыть игру" – завершает игру.'#13#10+' Правила '+ {5} ' игры:'+#13#10+' игрок, щёлкая левой кнопкой мыши по конфетти, должен'+ {6} ' убрать все конфетти'#13#10+' с игрового поля за отведённое время '+ {7} '(по умолчанию установлено 7 секунд);'#13#10+' если игрок справляется,'+ {8} ' появляется надпись "Победа! Молодец!", иначе '#13#10+ {9} ' выводится сообщение о проигрыше.'; {10} Edit1.Text:='7'; {11} Randomize; N:=15; R:=60; end; |
Рис. 2. Процедура TForm1.FormCreate. Составлено авторами
Рассмотрим код процедуры TForm1.FormCreate. В строках 3-9 – вывод правил игры; строка 10 – время по умолчанию 7 с; строка 11 – инициализация генератора случайных чисел, N:=15, R:=60.

Рис.3. Внешний вид игрового окна формы «Конфетти». Составлено авторами
Отображение динамических объектов на форме «Конфетти». По команде «Начать игру» срабатывает процедура N1Click (рис. 4).
|
{1} procedure TForm1.N1Click(Sender: TObject); {2} begin {3} for I:=1 to N do begin {4} Obj:=TShape.Create(Form1); {5} Obj.Name:='Konfetti'+IntToStr(I); {6} Obj.Width:=R; Obj.Height:=R; Obj.Shape:=stEllipse; {7} Obj.Top:=Random(Form1.ClientHeight - R); {8} Obj.Left:=Random(Form1.ClientWidth - R); {9} Obj.Brush.Color:=Random(10000000); {10} Obj.OnMouseDown:=Shape1MouseDown; {11} Obj.Parent:=Form1; end; {12} Label1.Visible:=false; Label3.Visible:=false; {13} Edit1.Visible:=false; UpDown1.Visible:=false; {14} N1.Enabled:=false; {15} T:= 0; Timer1.Enabled:=true; end; |
Рис. 4. Процедура TForm1.N1Click. Составлено авторами
Рассмотрим код процедуры TForm1.N1Click. В строках 3-11 цикл создаёт N объектов TShape с уникальными именами, случайными координатами, цветом и обработчиком Shape1MouseDown. Родитель – Form1. В строках 12-15 компоненты Label1, Label3, Edit1, UpDown1 скрываются, команда «Начать игру» блокируется и запускается таймер.
Управление динамическими объектами. Обработчик щелчка мыши Shape1MouseDown (рис. 5).
|
{1}procedure TForm1.Shape1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); {2} begin {3} TShape(Sender).Visible:=false; {4} Log:=false; {5} for I:=1 to N do {6} if TShape(FindComponent('Konfetti'+IntToStr(I))).Visible=true {7} then Log:=true; {8} if (not Log) and (T<=StrToInt(Edit1.text)) then begin {9} Timer1.Enabled:=false; {10} Label2.Visible:=true; {11} Label2.Caption:='Победа! Молодец!';end;end; |
Рис. 5. Процедура TForm1.Shape1MouseDown. Составлено авторами
Рассмотрим код процедуры TForm1.Shape1MouseDown. При щелчке объект исчезает (строка3). В строках 5-11 цикл проверяет наличие видимых объектов (Log). Если все убраны и время не истекло, таймер останавливается, выводится «Победа! Молодец!».
Для перемещения объектов организуется процедура TForm1.Timer1Timer обработчика события OnTimer (рис. 6).
|
{1}procedure TForm1.Timer1Timer(Sender: TObject); {2}begin {3}for I:=1 to N do {4} with TShape(FindComponent('Konfetti'+IntToStr(I))) do begin {5} Left:=Left + Random(R div 2)-R div 3; {6} Top:=Top + Random(R div 2)-R div 3; {7} if Top < 1 then Top:= 10; {8} if Left < 1 then Left:=10; {9} if Top > Form1.ClientHeight - R then Top:=Form1.ClientHeight - R; {10} if Left > Form1.ClientWidth - R then Left:=Form1.ClientWidth - R; end; {11} T:=T+(Timer1.Interval)/1000; {12} Form1.Caption:='Время='+FloatToStr(T)+'c'; {13} if T>StrToInt(Edit1.Text) then begin {14} Timer1.Enabled:=false; {15} Label2.Visible:=true; Label2.Caption:='Проигрыш! '; {16} for I:=1 to N do {17} TShape(FindComponent('Konfetti'+IntToStr(I))).Enabled:= false; end; end; |
Рис. 6. Процедура TForm1.Timer1Timer. Составлено авторами
Рассмотрим код процедуры TForm1.Timer1Timer. В строках 3-10 цикл случайно изменяет координаты объектов с проверкой границ. Счётчик времени T увеличивается, заголовок формы отображает текущее время. При превышении лимита (строки 13-17) – таймер останавливается, выводится «Проигрыш!», объекты становятся неактивными.
Завершение игры. Процедура N2Click для пункта меню «Закрыть игру» (рис. 7).
|
{1} procedure TForm1.N2Click(Sender: TObject); {2} begin {3} Timer1.Enabled:= false; {4} for I:=1 to N do (FindComponent('Konfetti'+IntToStr(I))).Free; {5} N1.Enabled:=true; {6} Label1.Visible:=true; {7} Label3.Visible:=true; {8} UpDown1.Visible:=true; {9} Edit1.Visible:=true; {10} Label2.Visible:=false; {11} Close; end; |
Рис. 7. Процедура TForm1.N2Click. Составлено авторами
Рассмотрим код процедуры TForm1.N2Click. Выполнение кода в строке 3 останавливает работу таймера Timer1. В строке 4 метод Free освобождает место в оперативной памяти, занятое этим объектом. В строке 5 свойству Enabled объекта N1 присваивается значение true, чтобы пункт меню «Начать игру» стал активным для повторного запуска игры. Аналогично в строках 6-9 свойствам Visible компонент Label1, Label3, UpDown1, Edit1 присваивается значение true. В строке 10 свойству Visible компонента Label2 присваивается значение false.
На рисунке 8 представлено игровое окно, иллюстрирующее игровой процесс.

Рис. 8. Иллюстрация игрового процесса. Составлено авторами
Примеры задач для самостоятельного решения
Задача 1. «Стрельба по мишеням». Разработать игру: пользователь стреляет по движущимся мишеням (стрельба по щелчку мыши) за 10 секунд. Цель – сбить более 10 мишеней. При успехе – «Вы мастер стрельбы!», иначе – «Поражение».
Критерии выполнения: реализовано движение мишеней (по горизонтали/вертикали или произвольной траектории); реализована стрельба по щелчку мыши; реализован таймер обратного отсчёта.
Задача 2. «Сбор фруктов». На поле движутся фрукты (вверх-вниз). Цель – собрать 15 фруктов за 7 секунд (собирать щелчком мыши). При успехе – «Поздравляем! Вы собрали все плоды», при неудаче – «Фрукты упали раньше срока».
Критерии выполнения: фрукты появляются и двигаются случайным образом в вертикальной плоскости; щелчок по фрукту приводит к его исчезновению и увеличению счётчика собранных плодов; реализован таймер, ограничивающий длительность игры; предусмотрена проверка достижения целевого количества фруктов.
Практические рекомендации по организации поддержки студентов и обратной связи. Стартовый инструктаж (10 мин.):
1. Объяснение цели и правил игры, демонстрация готового приложения «Конфетти».
2. Пошаговое выполнение с комментированием – преподаватель выполняет код на проекторе, студенты повторяют, задавая вопросы.
3. Поддержка при сложностях: для слабых студентов – карточки-подсказки с фрагментами кода (например, объявление переменных, цикл создания объектов); для средних – чек-лист проверки (Visible настроен? Таймер включён? Обработчик мыши назначен?); для сильных – дополнительные мини-задачи (изменить форму или размер объектов).
4. Обратная связь: после каждого аудиторного занятия – короткий опрос «Что было самым трудным?». Письменные комментарии к каждому сданному проекту в системе электронного обучения в течение 2 дней.
5. Организация парной работы (приветствуется, но с индивидуальной сдачей) для взаимопомощи.
Результаты контрольного этапа. После выполнения комплекса заданий проведена итоговая диагностика. Студентам было предложено разработать новое игровое приложение (аналог «Конфетти», но с квадратными объектами и изменённым временем) без готовой инструкции. Сравнение результатов констатирующего и контрольного этапов представлено в таблице 2.
Таблица 2
Сравнение результатов констатирующего и контрольного этапов (средние баллы по группе из 16 человек)
|
Критерий |
Констатирующий этап |
Контрольный этап |
Прирост |
Уровень значимости (p) |
|
Навык работы с динамическими объектами (0–3) |
1,2 |
2,5 |
+1,3 |
p < 0,05 |
|
Интерес к ООП (1–5) |
2,1 |
4,0 |
+1,9 |
p < 0,05 |
|
Уровень самостоятельности (1–3) |
1,2 |
2,4 |
+1,2 |
p < 0,05 |
Примечание: составлено авторами на основе полученных данных в ходе исследования.
Положительная динамика зафиксирована по всем критериям. Распределение студентов по уровням самостоятельности изменилось: доля полностью копировавших код сократилась с 68,75% (11 чел.) до 12,5% (2 чел.), тогда как доля выполнявших полную самостоятельную разработку выросла с 6,25% (1 чел.) до 56,25% (9 чел.). Доля студентов с частичной модификацией увеличилась с 25% (4 чел.) до 31,25% (5 чел.). По данным анкетирования, доля студентов с высоким интересом к ООП (4–5 баллов) выросла с 25% до 62,5%.
Статистическая значимость различий. Для оценки достоверности изменений использовался парный t-критерий Стьюдента [16, с. 41]. Полученные значения t-критерия для всех трёх показателей превышают критическое значение при уровне значимости 0,05 (t(15) > 2,131). Таким образом, различия между констатирующим и контрольным этапами статистически значимы (p < 0,05), что подтверждает эффективность разработанного методического подхода.
Результаты исследования и их обсуждение
Полученные данные подтверждают эффективность предложенного методического подхода. Рост самостоятельности в 2 раза объясняется тем, что пошаговая инструкция игры «Конфетти» формирует когнитивную схему действий, а последующие задания (стрельба, сбор фруктов) требуют её модификации. Можно считать, что предложенный комплекс заданий дополняет существующие методические разработки применительно к педагогическим направлениям подготовки. Вместе с тем ограничением исследования является малая выборка (16 человек); в дальнейшем планируется апробация на больших группах и в дистанционном формате.
Заключение
Проведённое исследование показало, что целенаправленное обучение будущих педагогов созданию игровых приложений с динамическими объектами в Delphi повышает эффективность формирования навыков ООП. Разработанный методический подход включает: теоретическое обоснование (деятельностный подход, теория мотивации); охарактеризованы существующие методы; комплекс из трёх заданий (базовое с полной инструкцией, два – для самостоятельной модификации); детально описанный педагогический эксперимент с количественными данными (уровень самостоятельности вырос с 1,2 до 2,4 балла, доля полностью освоивших – до 75%); практические рекомендации по поддержке студентов и организации обратной связи. Материалы могут быть рекомендованы для педагогических вузов и колледжей. Перспективы дальнейших исследований связаны с адаптацией комплекса для других сред программирования (Python, C#) и дистанционного формата обучения.
Конфликт интересов
Финансирование
Библиографическая ссылка
Арапина-Арапова Е.С., Заика И.В. ОБУЧЕНИЕ БУДУЩИХ ПЕДАГОГОВ СОЗДАНИЮ ИГРОВЫХ ПРИЛОЖЕНИЙ С ИСПОЛЬЗОВАНИЕМ ДИНАМИЧЕСКИХ ОБЪЕКТОВ // Современные проблемы науки и образования. 2026. № 5. ;URL: https://science-education.ru/ru/article/view?id=34617 (дата обращения: 14.06.2026).
DOI: https://doi.org/10.17513/spno.34617



