Министерство просвещения ПМР
Тираспольский техникум информатики и права
Цикловая Комиссия информационных и экономических дисциплин
Отчет по практике
Этап практики: преддипломная
Специальность: ПОВТ и АС
Ф. И. О. студента:
Слисаренко Дмитрий Александрович
Курс группа: IV курс, 413 группа
База практики: ТСШ №18
Руководитель практики
Земляков Андрей Владимирович
Тирасполь 2013
Содержание
Отзыв о преддипломной практике
. Круг задач решаемых на преддипломной практике
. Список теоретических вопросов
. Дневник практики
. Отчет о проделанной работе
. Индивидуальное практическое задание
.1 Постановка задачи
.2 Общие вопросы теории игр: их виды и классификация
.3 Принципы построения и программирования игровых программ
.4 Основы 2-3D графики
.5 Понятие динамического изображения
.6 Методы и способы программирования динамических изображений
.7 Понятие искусственного интеллекта
.8 Выводить стартовую форму приложения
.9 Запускать игровые программы-примеры
.10 Выдавать сведения об авторе программы. Осуществлять выход из программы
.11 Описание алгоритмов и пользовательского интерфейса программы
.12 Игры
Заключение
Список литературы
Отзыв о преддипломной практике
студента___________________курса____________группы____________
Специальности________________________________________________
Тираспольского техникума информатики и права
ФИО_________________________________________________________
_____________________________________________________________
_____________________________________________________________
_____________________________________________________________
Оценка__________________
руководитель группы
преддипломной практики
от базы практики
ФИО_________________________________________________________
___________________
Подпись
М.П.
«_____»__________________200__г.
1. Круг задач решаемых на преддипломной практике
1.Поиск и анализ литературы необходимой для работы над теоретической частью дипломного проекта.
2.Поиск и анализ литературы необходимой для работы над практической частью дипломного проекта.
3.Выводить стартовую форму приложения.
4.Запускать игровые программы-примеры.
.Выдавать сведения об авторе программы.
.Осуществлять выход из программы.
2. Список теоретических вопросов
1.Понятие информации и её свойств. Виды информации. Информационные процессы.
2.Кодирование информации. Единицы измерения информации.
.Системы счисления (10-я, 2-я, 8-я, 16-я). Позиционные и непозиционные. Основание системы. Способы перевода из одной системы в другую.
.Элементы и узлы ЭВМ. Состав и характеристика основных устройств.
.Логические элементы компьютера(И, ИЛИ, НЕ, ИЛИ-НЕ, И-НЕ, исключающие ИЛИ) и их таблицы истинности.
.Понятие Операционной Системы. Назначение, состав, загрузка ОС.
.Работа с файлами и папками в среде ОС (Ms Dos и Windows).
.Командные оболочки. Работа с файлами и папками в командной оболочке.
.Программное обеспечение ЭВМ. Классификация: системное, прикладное, инструментальное.
.Графический редактор. Назначение, основные функции.
.Текстовый редактор. Назначение, основные функции.
.Табличный редактор. Назначение, основные функции.
.Системы Управления Базами Данных. Назначение, основные функции.
.Понятие алгоритма и его свойств. Исполнители алгоритмов. Способы описания алгоритмов.
.Введение в программирование. Языки низкого и высокого уровня. Общая характеристика системы программирования.
.Этапы подготовки и решения задач на ЭВМ.
.Введение в язык Паскаль и С++. Общая характеристика языков (алфавит, типы данных,).
.Понятие идентификатора в языке Паскаль и С++. Константы и переменные. Понятие выражения. Комментарии.
.Операции языка Паскаль и С++. Стандартные процедуры и функции языка. Приоритет операций.
.Общий вид программы на языке Паскаль и С++. Понятие оператора. Операторы ввода-вывода языка Паскаль и С++. Оператор присваивания.
.Линейная структура программы. Примеры на языке Паскаль и С++.
.Разветвляющаяся структура программы. Примеры на языке Паскаль и С++.
.Циклическая структура программы. Примеры на языке Паскаль и С++.
.Одномерные и двумерные массивы в языке Паскаль и С++. Основные алгоритмы обработки одномерных и двумерных массивов.
.Понятие подпрограммы. Использование подпрограмм в языках Паскаль и С++.
.Введение понятия компьютерной сети. Понятие технологии «Клиент-Сервер».
.Физическая и логическая структура компьютерной сети. Типы линий связи.
.Топология компьютерных сетей. Топология «Звезда», «Кольцо», «Шина» и древовидная топология.
.История создания и общая характеристика сети Internet. Сервисы, предоставляемые сетью Internet.
.Введение в язык HTML. Общий вид документа. Основные тэги.
3. Дневник практики
ДатаСодержаниеПодпись руководителя25.03.13Прибытие на базу практики. Инструктаж по технике безопасности. Ознакомление с кругом задач выполняемых на практике. Ознакомление с теоретическими вопросами, решаемых в ходе практики. Обсуждение и разбор индивидуального задания на практику.26.03.13Анализ литературы по теоретическим вопросам. Разбор теоретических вопросов №1-3. Работа над индивидуальным практическим заданием. Оформление отчета о проделанной за день работе.27.03.13Анализ литературы по теоретическим вопросам. Разбор теоретических вопросов №4-6. Работа над индивидуальным практическим заданием. Оформление отчета о проделанной за день работе.28.03.13Анализ литературы по теоретическим вопросам. Разбор теоретических вопросов №7-9. Работа над индивидуальным практическим заданием. Оформление отчета о проделанной за день работе.29.03.13Анализ литературы по теоретическим вопросам. Разбор теоретических вопросов №10-12. Работа над индивидуальным практическим заданием. Оформление отчета о проделанной за день работе.30.03.13Анализ литературы по теоретическим вопросам. Разбор теоретических вопросов №13-15. Работа над индивидуальным практическим заданием. Оформление отчета о проделанной за день работе.01.04.13Анализ литературы по теоретическим вопросам. Разбор теоретических вопросов №16-18. Работа над индивидуальным практическим заданием. Оформление отчета о проделанной за день работе.02.04.13Анализ литературы по теоретическим вопросам. Разбор теоретических вопросов №19-21. Работа над индивидуальным практическим заданием. Оформление отчета о проделанной за день работе.03.04.13Анализ литературы по теоретическим вопросам. Разбор теоретических вопросов №22-24. Работа над индивидуальным практическим заданием. Оформление отчета о проделанной за день работе.04.04.13Анализ литературы по теоретическим вопросам. Разбор теоретических вопросов №25-27. Работа над индивидуальным практическим заданием. Оформление отчета о проделанной за день работе.05.04.13Анализ литературы по теоретическим вопросам. Разбор теоретических вопросов №28-30. Работа над индивидуальным практическим заданием. Оформление отчета о проделанной за день работе.06.04.13Работа над индивидуальным практическим заданием. Оформление отчета о проделанной за день работе.08.04.13Работа над индивидуальным практическим заданием. Оформление отчета о проделанной за день работе.09.04.13Работа над индивидуальным практическим заданием. Оформление отчета о проделанной за день работе.10.04.13Работа над индивидуальным практическим заданием. Оформление отчета о проделанной за день работе.11.04.13Работа над индивидуальным практическим заданием. Оформление отчета о проделанной за день работе.12.04.13Работа над индивидуальным практическим заданием. Оформление отчета о проделанной за день работе.13.04.13Подведение итогов практики. Подготовка и оформление документации для защиты практики. Фронтальный опрос руководителем по теоретическим вопросам.
4. Отчет о проделанной работе
Целью преддипломной практики является поиск и подбор литературы для дипломного проекта, подготовка теоретической части дипломного проекта и выполнение индивидуального задания, связанного с практической частью дипломной работы.
Основной целью моей дипломной работы была разработка игр и головоломок на основе принципов искусственного интеллекта. В результате проделанной работы я создал комплекс логических игр, разработанных на языке программирования Delphi 7, в этот комплекс входят три игры: Бильярд, Карточная игра - 50, Морской бой.
25.03.13 Прибытие на базу практики. Инструктаж по технике безопасности. Ознакомление с кругом задач выполняемых на практике. Ознакомление с теоретическими вопросами, решаемых в ходе практики. Обсуждение и разбор индивидуального задания на практику.
25 марта я прибыл на базу преддипломной практики в МОУ «ТСШ №18». Со мной сразу был проведен инструктаж по технике безопасности и охране труда на рабочем месте программиста. Затем руководитель ознакомил меня с кругом моих практических задач на практике, выдал мне список теоретических вопросов, которые мне нужно будет проработать для защиты практики. Затем мы обсуждали индивидуальное практическое задание, которое я должен буду выполнить в течении практики.
26.03.13 Анализ литературы по теоретическим вопросам. Разбор теоретических вопросов №1-3. Работа над индивидуальным практическим заданием. Оформление отчета о проделанной за день работе.
Сегодня мною были проработаны следующие теоретические вопросы:
. Понятие информации и её свойств. Виды информации. Информационные процессы.
. Кодирование информации. Единицы измерения информации.
. Системы счисления (10-я, 2-я, 8-я, 16-я). Позиционные и непозиционные. Основание системы. Способы перевода из одной системы в другую.
Для этого я использовал следующую литературу:
1.Гейн А.Г. и др. Основы информатики и вычислительной техники. Москва «Просвещение» 1993 г.
2.Гейн А.Г., Сеноосов А.И., Юнерман Н.А. Информатика 10-11. Москва «Просвещение» 2001 г.
.Извозчиков В.А. Информатика в понятиях и терминах. Москва «Просвещение» 1991 г.
.Фоменко А.М., Фоменко Л.В. Основы информатик и вычислительной техники. Ростов-на-Дону «Феникс» 2001 г.
.Газета «Информатика»
.Интернет-ресурсы.
По индивидуальному практическому заданию мы разобрали с руководителем постановку задачи, после чего я приступил к выполнению своего проекта.
В конце дня я занес результаты моей работы в отчет.
27.03.13 Анализ литературы по теоретическим вопросам. Разбор теоретических вопросов №4-6. Работа над индивидуальным практическим заданием. Оформление отчета о проделанной за день работе.
Сегодня мною были проработаны следующие теоретические вопросы:
1.Элементы и узлы ЭВМ. Состав и характеристика основных устройств.
2.Логические элементы компьютера(И, ИЛИ, НЕ, ИЛИ-НЕ, И-НЕ, исключающие ИЛИ) и их таблицы истинности.
.Понятие Операционной Системы. Назначение, состав, загрузка ОС.
Для этого я использовал следующую литературу:
1.Урнов В.А. Преподавание информатики в компьютерном классе. Москва «Просвещение» 1990 г.
2.Фигурнов В.Э. IBM PC для пользователя 7 издание. Москва «Инфра-М» 1997 г.
.Фоменко А.М., Фоменко Л.В. Основы информатик и вычислительной техники. Ростов-на-Дону «Феникс» 2001 г.
.Газета «Информатика»
.Интернет-ресурсы.
По индивидуальному практическому заданию я работал в графическом редакторе Photoshop CS4, я занимался разработкой фоновых изображений, различных кнопок для моего комплекса игр.
Рис.1. Создание фонового изображения.
В конце дня я занес результаты моей работы в отчет.
28.03.13 Анализ литературы по теоретическим вопросам. Разбор теоретических вопросов №7-9. Работа над индивидуальным практическим заданием. Оформление отчета о проделанной за день работе.
Сегодня мною были проработаны следующие теоретические вопросы:
1.Работа с файлами и папками в среде ОС (Ms Dos и Windows).
2.Командные оболочки. Работа с файлами и папками в командной оболочке.
.Программное обеспечение ЭВМ. Классификация: системное, прикладное, инструментальное.
Для этого я использовал следующую литературу:
1.Урнов В.А. Преподавание информатики в компьютерном классе. Москва «Просвещение» 1990 г.
2.Фигурнов В.Э. IBM PC для пользователя 7 издание. Москва «Инфра-М» 1997 г.
.Фоменко А.М., Фоменко Л.В. Основы информатик и вычислительной техники. Ростов-на-Дону «Феникс» 2001 г.
.Газета «Информатика»
.Интернет-ресурсы.
По индивидуальному практическому заданию я так же продолжал работу в Photoshop CS 4.
Рис.2. Создание фонового изображения. Раздел Авторы.
В конце дня я занес результаты моей работы в отчет.
29.03.13 Анализ литературы по теоретическим вопросам. Разбор теоретических вопросов №10-12. Работа над индивидуальным практическим заданием. Оформление отчета о проделанной за день работе.
Сегодня мною были проработаны следующие теоретические вопросы:
1.Графический редактор. Назначение, основные функции.
2.Текстовый редактор. Назначение, основные функции.
.Табличный редактор. Назначение, основные функции.
Для этого я использовал следующую литературу:
1.Гейн А.Г., Сеноосов А.И., Юнерман Н.А. Информатика 10-11. Москва «Просвещение» 2001 г.
2.Заварыкин В.М. и др. Основы информатики и вычислительной техники. Москва «Просвещение» 1989 г.
.Каймин В.А. и др. Основы информатики и вычислительной техники. Москва «Просвещение» 1989 г.
.Фоменко А.М., Фоменко Л.В. Основы информатик и вычислительной техники. Ростов-на-Дону «Феникс» 2001 г.
.Газета «Информатика»
.Интернет-ресурсы.
По индивидуальному практическому заданию я занимался разработкой меню в языке программирования Delphi 7. Мною была разработана стартовая форма моего проекта.
Рис.3. Стартовая форма.
При запуске моего проекта будет выводится данная форма, которая поприветсвует пользователя и предложит ему начать игру.
В конце дня я занес результаты моей работы в отчет.
30.03.13 Анализ литературы по теоретическим вопросам. Разбор теоретических вопросов №13-15. Работа над индивидуальным практическим заданием. Оформление отчета о проделанной за день работе.
Сегодня мною были проработаны следующие теоретические вопросы:
1.Системы Управления Базами Данных. Назначение, основные функции.
2.Понятие алгоритма и его свойств. Исполнители алгоритмов. Способы описания алгоритмов.
.Введение в программирование. Языки низкого и высокого уровня. Общая характеристика системы программирования.
Для этого я использовал следующую литературу:
1.Абрамов С.А.и др. Задачи по программированию. Москва «Наука» 1988 г.
2.Боон К. Паскаль для всех. Москва «Энергоатомиздат» 1988 г.
.Златопольский Д.М. Я иду на урок информатики. Задачи по программированию. Москва «Первое сентября» 2001 г.
.Немнюгин С.А. Turbo Pascal. Учебник. Санкт-Петербург «Питер» 2001 г.
.Немнюгин С.А. Turbo Pascal. Практикум. Санкт-Петербург «Питер»
.Газета «Информатика»
.Интернет-ресурсы.
По индивидуальному практическому заданию я работал над практическими аспектами решаемой задачи, а именно разобрал следующий этап моего проекта, в среде программирования Delphi 7 мною были запрограммированы разделы меню.
В эти разделы входят: выбор игр (из трех), при наведении на раздел меню с названием, появляется превью данной игры. Так же были организованны пункты меню: Авторы и Выход.
Рис.4. Раздел меню - Бильярд.
В конце дня я занес результаты моей работы в отчет.
01.04.13 Анализ литературы по теоретическим вопросам. Разбор теоретических вопросов №16-18. Работа над индивидуальным практическим заданием. Оформление отчета о проделанной за день работе.
Сегодня мною были проработаны следующие теоретические вопросы:
1.Этапы подготовки и решения задач на ЭВМ.
2.Введение в язык Паскаль и С++. Общая характеристика языков (алфавит, типы данных,).
.Понятие идентификатора в языке Паскаль и С++. Константы и переменные. Понятие выражения. Комментарии.
Для этого я использовал следующую литературу:
1.Абрамов С.А.и др. Задачи по программированию. Москва «Наука» 1988 г.
2.Боон К. Паскаль для всех. Москва «Энергоатомиздат» 1988 г.
.Златопольский Д.М. Я иду на урок информатики. Задачи по программированию. Москва «Первое сентября» 2001 г.
.Немнюгин С.А. Turbo Pascal. Учебник. Санкт-Петербург «Питер» 2001 г.
.Немнюгин С.А. Turbo Pascal. Практикум. Санкт-Петербург «Питер»
.Газета «Информатика»
.Интернет-ресурсы.
По индивидуальному практическому заданию я занимался разработкой следующего раздела меню - Карты. Так же при наведении на раздел курсора мыши, появляется превью игры.
Рис. 5. Раздел меню - Карты.
В конце дня я занес результаты моей работы в отчет.
02.04.13 Анализ литературы по теоретическим вопросам. Разбор теоретических вопросов №19-21. Работа над индивидуальным практическим заданием. Оформление отчета о проделанной за день работе.
Сегодня мною были проработаны следующие теоретические вопросы:
1.Операции языка Паскаль и С++. Стандартные процедуры и функции языка. Приоритет операций.
2.Общий вид программы на языке Паскаль и С++. Понятие оператора. Операторы ввода-вывода языка Паскаль и С++. Оператор присваивания.
.Линейная структура программы. Примеры на языке Паскаль и С++.
Для этого я использовал следующую литературу:
1.Абрамов С.А.и др. Задачи по программированию. Москва «Наука» 1988 г.
2.Боон К. Паскаль для всех. Москва «Энергоатомиздат» 1988 г.
.Златопольский Д.М. Я иду на урок информатики. Задачи по программированию. Москва «Первое сентября» 2001 г.
.Немнюгин С.А. Turbo Pascal. Учебник. Санкт-Петербург «Питер» 2001 г.
.Немнюгин С.А. Turbo Pascal. Практикум. Санкт-Петербург «Питер»
.Газета «Информатика»
.Интернет-ресурсы.
По индивидуальному практическому заданию я занимался разработкой следующего раздела меню - Морской бой. Так же при наведении на раздел курсора мыши, появляется превью игры.
Рис.6. Раздел меню - Морской бой.
В конце дня я занес результаты моей работы в отчет.
03.04.13 Анализ литературы по теоретическим вопросам. Разбор теоретических вопросов №22-24. Работа над индивидуальным практическим заданием. Оформление отчета о проделанной за день работе.
Сегодня мною были проработаны следующие теоретические вопросы:
1.Разветвляющаяся структура программы. Примеры на языке Паскаль и С++.
2.Циклическая структура программы. Примеры на языке Паскаль и С++.
.Одномерные и двумерные массивы в языке Паскаль и С++. Основные алгоритмы обработки одномерных и двумерных массивов.
Для этого я использовал следующую литературу:
1.Абрамов С.А.и др. Задачи по программированию. Москва «Наука» 1988 г.
2.Боон К. Паскаль для всех. Москва «Энергоатомиздат» 1988 г.
.Златопольский Д.М. Я иду на урок информатики. Задачи по программированию. Москва «Первое сентября» 2001 г.
.Немнюгин С.А. Turbo Pascal. Учебник. Санкт-Петербург «Питер» 2001 г.
.Немнюгин С.А. Turbo Pascal. Практикум. Санкт-Петербург «Питер»
.Газета «Информатика»
.Интернет-ресурсы.
По индивидуальному практическому заданию я продолжал работать над программированием оставшихся пунктов меню, а именно - Авторы и Выход.
Рис.7. Раздел меню - Авторы.
Рис.8. Проектирование данного раздела.
В конце дня я занес результаты моей работы в отчет.
04.04.13 Анализ литературы по теоретическим вопросам. Разбор теоретических вопросов №25-27. Работа над индивидуальным практическим заданием. Оформление отчета о проделанной за день работе.
Сегодня мною были проработаны следующие теоретические вопросы:
1.Понятие подпрограммы. Использование подпрограмм в языках Паскаль и С++.
2.Введение понятия компьютерной сети. Понятие технологии «Клиент-Сервер».
.Физическая и логическая структура компьютерной сети. Типы линий связи.
Для этого я использовал следующую литературу:
1.Немнюгин С.А. Turbo Pascal. Учебник. Санкт-Петербург «Питер» 2001 г.
2.Немнюгин С.А. Turbo Pascal. Практикум. Санкт-Петербург «Питер»
.Урнов В.А. Преподавание информатики в компьютерном классе. Москва «Просвещение» 1990 г.
.Фигурнов В.Э. IBM PC для пользователя 7 издание. Москва «Инфра-М» 1997 г.
.Фоменко А.М., Фоменко Л.В. Основы информатик и вычислительной техники. Ростов-на-Дону «Феникс» 2001 г.
.Газета «Информатика»
.Интернет-ресурсы.
По индивидуальному практическому заданию я начал программирование одной из моих игр - Бильярд 3D. Начал с разработки интерфейса и меню будущей игры.
Для разработки интерфейса, я воспользовался графическим редактором Photoshop CS4. Мною были созданы фоновые изображения и кнопки меню моей игры.
Рис.9. Работа в графическом редакторе PhotoShop CS4.
Далее я приступил к программированию, моего интерфейса и меню.
Рис.10. Работа в среде программирования Delphi 7.
В конце дня я занес результаты моей работы в отчет.
05.04.13 Анализ литературы по теоретическим вопросам. Разбор теоретических вопросов №28-30. Работа над индивидуальным практическим заданием. Оформление отчета о проделанной за день работе.
Сегодня мною были проработаны следующие теоретические вопросы:
1.Топология компьютерных сетей. Топология «Звезда», «Кольцо», «Шина» и древовидная топология.
2.История создания и общая характеристика сети Internet. Сервисы, предоставляемые сетью Internet.
.Введение в язык HTML. Общий вид документа. Основные тэги.
Для этого я использовал следующую литературу:
6.Урнов В.А. Преподавание информатики в компьютерном классе. Москва «Просвещение» 1990 г.
7.Фигурнов В.Э. IBM PC для пользователя 7 издание. Москва «Инфра-М» 1997 г.
.Фоменко А.М., Фоменко Л.В. Основы информатик и вычислительной техники. Ростов-на-Дону «Феникс» 2001 г.
.Газета «Информатика»
.Интернет-ресурсы.
По индивидуальному практическому заданию я продолжал работать над игрой Бильярд 3D, сегодня я закончил с программированием интерфейса, довел его до конца, осуществил раздел меню - Выход, затем приступил к написанию кода самой игры. После долгого изучения OpenGl, просмотра многих уроков, я научился создавать несложные фигуры, при помощи этого я без всякого труда за сегодняшний день написал код.
Рис.11. Написание кода игры Бильярд 3D.
Рис.12. Готовая игра Биьярд 3D.
В конце дня я занес результаты моей работы в отчет.
06.04.13 Работа над индивидуальным практическим заданием. Оформление отчета о проделанной за день работе.
По индивидуальному практическому заданию я продолжал работать над написанием двух оставшихся игр. Сегодня я занимался созданием интерфейса для игры Морской бой. Я так же воспользовался графическим редактором Adobe Photoshop CS4 для создания фонового изображения и кнопок меню.
Рис.13. Работа в Photoshop CS4.
В конце дня я занес результаты моей работы в отчет.
08.04.13 Работа над индивидуальным практическим заданием. Оформление отчета о проделанной за день работе.
Сегодня я занимался написанием кода для игры Морской бой.
Рис.14. Программирование игры - Морской бой.
Рис.15. Готовая игра - Морской бой.
В конце дня я занес результаты моей работы в отчет.
08.04.13 Работа над индивидуальным практическим заданием. Оформление отчета о проделанной за день работе.
Сегодня я приступил к разработке моей третьей игры, которая называется - Карточная игра - 50. Суть данной игры состоит в следующем: На столе располагаются 24 раскрытые карты: все карты с номерами от 1 до 6 обычной колоды, где туз считается за 1. Масти карт несущественны. Каждый игрок при своём ходе берёт со стола карту и складывает её значение с суммой тех, которые были взяты ранее (таким образом, подсчитывается общая сумма карт, взятых партнёрами, а не отдельные суммы для каждого партнёра. Первый, кто берёт в точности 50 очков выигрывает. Если игрок, взяв карту, не может не превысить 50 очков, то он проигрывает.
09.04.13 Работа над индивидуальным практическим заданием. Оформление отчета о проделанной за день работе.
Сегодня я приступил к созданию интерфейса для Карточной игры. При помощи все того же Photoshop CS4 я занимался созданием фоновых изображений, кнопок разделов меню.
Рис.16. Работа в графическом редакторе Adobe PhotoShop CS4.
.04.13 Работа над индивидуальным практическим заданием. Оформление отчета о проделанной за день работе.
Сегодня я приступил к программированию карточной игры. Сначала я занялся разработкой интерфейса.
Рис.17. Разработка интерфейса игры.
Организовал пункт меню «Об игре»
Рис.18. Об игре.
.04.13 Работа над индивидуальным практическим заданием. Оформление отчета о проделанной за день работе.
В этот день я занимался оптимизацией некоторых функций моего проекта.
Рис.19. Стартовая форма.
.04.13 Работа над индивидуальным практическим заданием. Оформление отчета о проделанной за день работе.
Сегодня я занимался полным и окончательным тестированием моей программы и анализом результатов ее выполнения. По результатам выполнения программы можно сделать вывод, что программа осуществляет работу правильно и точно.
Рис.20. Готовый комплекс логических игр.
.04.13 Подведение итогов практики. Подготовка и оформление документации для защиты практики. Фронтальный опрос руководителем по теоретическим вопросам.
В этот день мы вместе с руководителем подводили итоги практики. Обсуждали все основные моменты. Еще раз затронули те проблемные моменты, которые возникали в ходе практики. Окончательно скомпоновали и распечатали отчет по преддипломной практике. А затем руководитель проводил со мной беглый опрос по всем теоретическим вопросам, которые будут задаваться на защите практики, чтобы убедиться в твердости моих знаний.
5. Индивидуальное практическое задание
5.1 Постановка задачи
1.Общие вопросы теории игр: их виды и классификация.
2.Принципы построения и программирования игровых программ.
.Основы 2-3D графики.
.Использование 2-3D графики в программировании.
.Понятие динамического изображения.
.Методы и способы программирования динамических изображений.
.Понятие искусственного интеллекта.
.Применение принципов искусственного интеллекта для программирования игр и головоломок.
.Выводить стартовую форму приложения.
.Запускать игровые программы-примеры.
.Выдавать сведения об авторе программы.
.Осуществлять выход из программы.
5.2 Общие вопросы теории игр: их виды и классификация
Игра - это идеализированная математическая модель коллективного поведения нескольких лиц (игроков), интересы которых различны, что и порождает конфликт. Конфликт не обязательно предполагает наличие антагонистических противоречий сторон, но всегда связан с определенного рода разногласиями. Конфликтная ситуация будет антагонистической, если увеличение выигрыша одной из сторон на некоторую величину приводит к уменьшению выигрыша другой стороны на такую же величину и наоборот. Антагонизм интересов порождает конфликт, а совпадение интересов сводит игру к координации действий (кооперации).
Примерами конфликтной ситуации являются ситуации, складывающиеся во взаимоотношениях покупателя и продавца; в условиях конкуренции различных фирм; в ходе боевых действий и др. Примерами игр являются и обычные игры: шахматы, шашки, карточные, салонные и др. (отсюда и название теория игр и ее терминология).
В большинстве игр, возникающих из анализа финансово-экономических, управленческих ситуаций, интересы игроков (сторон) не являются строго антагонистическими ни абсолютно совпадающими. Покупатель и продавец согласны, что в их общих интересах договориться о купле-продаже, однако они энергично торгуются при выборе конкретной цены в пределах взаимной выгодности.
Теория игр - это математическая теория конфликтных ситуаций.
Цель теории игр - выработка рекомендаций по разумному поведению участников конфликта (определение оптимальных стратегий поведения игроков).
Классификация компьютерных игр может быть следующая:
1. Приключенческие игры. Игры могут быть великолепным средством рассказа истории. Эти игры представляют собой мультиплицированный рассказ, в котором можно видеть и контролировать основной персонаж (а иногда и более одного) в очень детальном повествовании. Это - компьютерные версии обычных повествований, начиная от душещипательных рассказов до технотриллеров, научно-фантастических приключений, фантазий и рассказов, до предела набитых разными обманами и мошенничествами. Приключенческие игры развиваются вокруг различных загадок и препятствий, которые нужно преодолеть по мере развития рассказа.
. Фантастические игры, в которых требуется играть некоторую роль (ролевые игры). Их лучше всего определить как компьютеризованную версию рассказа Dungeons and Dragons («Подземелья и драконы»), но действие не всегда происходит в населенном варварами средневековом мире. Часто оно происходит в открытом космосе или в каких-либо областях будущего. В этих играх обычно нужно управлять группой персонажей, которые становятся по мере развития игры сильнее и умнее, и делать некоторые другие вещи. Так же изменяются и враги. Сами рассказы в играх этого типа обычно менее детальны, чем в приключенческих играх, с большим упором на задачу побить чудовищ, чем решить загадки.
. Имитаторы воздушных и космических сражений. Это не военные игры, в которых может оказаться неограниченное число вооружений и врагов, эти игры пытаются быть точными имитаторами полетов и сражений на реальных боевых самолетах. Эти игры предназначены для тех, кто хочет летать на больших и очень мощных машинах. Кабины пилотов выглядят как настоящие, инструменты работают как в настоящем бою, оружие является имитацией реально существующего, а полетные характеристики самолета (и самолета врага) соответствуют действительным. Имитаторы космических сражений выдуманы, однако они разработаны с целью точно повторить реальные маневры в космосе.
. Имитаторы наземных и морских сражений. Игры разработаны для военного оборудования и военных машин. Эта категория игр включает в себя симуляторы настоящих подводных лодок, кораблей и танков, и позволяет игрокам испытать реальные сценарии сражений, и выжить для того, чтобы понять, как использовать правильную тактику в следующей игре.
. Самолеты, поезда и автомобили. В отличие от этих имитаторов, все прочие являются имитаторами военного типа или имеют очень сильный упор на сражение. Эти же игры не относятся к таким имитаторам. Конечно, можно проехать на автомобиле по береговой дороге в Калифорнии со скоростью, вдвое превышающей разрешенную, и потанцевать на всех четырех колесах. Но также можно использовать эти игры, чтобы научиться безопасно летать среди облаков, и получать удовольствие от свободы полета. Даже можно делать такие вещи, как постройка и управление собственной железной дорогой.
. Спортивные имитаторы. Здесь необходимо обучать профессионалов и управлять ими. Эти игры - нечто большее, чем простое изображение бейсбольных игр в картинках, в некоторых из них можно даже контролировать реальное действие. Спортивные имитаторы дают возможность вести рискованную игру в нужное время, доказать, что можно выиграть с помощью быстроты, иметь в команде Генри Аарона и Теда Вильямса, или переиграть Томми Лазорду.
. Аркадные игры / игры действия. Это классические «игры действия» - все зависит от того, насколько быстро руки могут дергать джойстик. Обычно о них говорят как о бессмысленных, так часто и бывает. С другой стороны, бывают времена, когда появится потребность дать отдохнуть мозгам. Во многие из этих игр можно играть с помощью клавиатуры или мыши, и джойстики не всегда необходимы. В чем есть необходимость, так это в быстрых рефлексах.
8. Настольные игры, солитер и салонные игры. Многие старые любимые игры появились в компьютерном варианте. Больше не нужно заниматься поисками партнера, чтобы поиграть в шахматы, бэкграммон и риск. Некоторые из этих игр даже научат мошенничать наедине с монитором, и при этом не придется возвращаться домой с пустым карманом после неудачной ночи.
. Имитаторы реальности («игры в бога»). Это игры, которые позволяют создавать реальный мир из ничего. Это игры, которые позволят создать компьютерный мир из набросков, управлять городом, страной или даже миром.
. Игры, в которых делаются деньги. Они копируют игровую деятельность и учат высшим формам азартных предприятий: фондовая биржа, торговля недвижимостью. Они также позволят попробовать управлять корпорацией. В эти игры можно играть для удовольствия, или использовать их для того, чтобы научиться карабкаться вверх по лестнице карьеры.
. Стратегические и военные имитаторы. Здесь можно принимать участие в великих исторических событиях, взять на себя командование немецкой армией у Ленинграда или армией Наполеона у Ватерлоо. Это военные стратегии прошлого, настоящего или будущего.
. Игры для детей. Если есть домашний компьютер, и чтобы дети научились его использовать, то эти игры достойны внимания. Реальность нашей культуры такова, что, как только малыши станут координированы настолько, чтобы правильно пользоваться клавиатурой или мышью, они хотят сразу приняться за такие игры, как Wing Commander, Populous или Eye of the Beholder. Однако же вокруг существует множество игр, в которые дети могут играть просто чтобы получить удовольствие, или же научиться чему-либо.
13. Игры «On-line». Было бы ошибкой считать, что все компьютерные игры для IBM PC приходят к нам на дискетах или CD-дисках, плотно упакованных в красивые пакеты. Фактически, весь обширный мир компьютерных игр доступен и по телефону. Эта категория игр известна как «он-лайн» и включает в себя разнообразные игры, которые имеются в больших коммерческих «он-лайн» сетях и во многих локальных сетях типа «доска объявлений» (bulletin board system - BBS). Для игр «он-лайн», кроме личного компьютера, необходимы модем и кредитная карточка.
. Игры Shareware. Будет ошибкой предположить, что все компьютерные игры приходят в красивых упаковках. Многие хорошие игры приходят вовсе без упаковок, и стоят от 10 до 30 долларов. Обычно можно их опробовать за очень низкую плату или вовсе бесплатно в течение нескольких дней и, если захочется получить легальную копию, следует послать по почте чек компании или лицу, которые создали игру.
. Классические игры. Мир PC-игр во многом похож на мир популярной музыки и фильмов: создается много игр различных наименований, некоторые становятся хитами и держат популярность в течение некоторого времени, другие пропадают. Постепенно эти хиты становится трудно отыскать, и мало-помалу они заменяются другими лучшими играми. Очень мало PC-игр живут более 2-3 лет. Из тех, что действительно остаются, многие настолько хороши, что становятся вечными, и они заслуживают того, чтобы в них играли. Некоторые, как Flight Simulator или King's Quest, обновляются время от времени, так что их можно рассматривать как практически новые игры. Остальные остаются неизменными, и уровень продаж у них таков, что они остаются в обращении, но уже не рекламируются активно их производителями. Это игры, которые не бросаются в глаза, «золотые» игры - классические PC-игры.
.3 Принципы построения и программирования игровых программ
Важность сюжета
Для начала замечу, что для хорошей игры самое главное - это сюжет. Конечно, существует множество неплохих игр и даже целые жанры, в которых нет и намека на сюжетную линию, и все же самые лучшие игры - те, где присутствует интересная фабула. Quake, бесспорно, является классическим шутером от первого лица, но игру Half-Life, относящуюся по сути к тому же жанру, увлекательная сюжетная линия ставит на порядок выше.
Не давайте игроку скучать
Самое ужасное преступление, какое только может совершить создатель игры, - наскучить игроку. Поясним это положение.
а). Не заставляйте игрока дважды повторять одну и ту же последовательность действий. Если он уже выполнил все необходимые шаги и решил сложную головоломку, предоставьте ему возможность в дальнейшем в аналогичной ситуации миновать эту последовательность одной командой. Для ясности приведу два примера.
б). Не стоит заставлять игрока выполнять длинную последовательность сложных трюков без возможности сохраниться, а при малейшей ошибке - начинать все сначала.
в). Сделайте так, чтобы игрок мог свободно перемещаться в окружающем пространстве. Если созданный вами мир занимает большую площадь, позвольте игроку одной командой преодолевать расстояния из конца в конец. Не утомляйте его бесконечными путешествиями туда и обратно.
г). Если в игре есть видеовставки, дайте игроку возможность отказаться от их просмотра (нажав клавишу ESCAPE или правую кнопку мыши). Поверьте, нет ничего скучнее, чем снова и снова созерцать одну и ту же сцену. Всемогущий Создатель не случайно дал нам клавишу ESCAPE. Используйте ее! Еще одно слабое место - повторная загрузка. Не сомневаюсь, вы сочинили потрясающий ролик для заставки, но игрок уже посмотрел его. Позвольте ему на этот раз пропустить ваш шедевр.
Если вам удастся устранить эти и другие утомительные действия, которыми грешат многие творения нашего жанра, вы получите динамичную игру, которая будет держать игрока в напряжении от первой до последней минуты.
Программа может писаться на особом виде ассемблера, либо на языках высокого уровня. Чаще всего применяются интерпретируемые языки наподобие Python.
5.4 Основы 2-3D графики
искусственный интеллект логический игра
Двухмерная (2D - от англ. two dimensions - «два измерения») компьютерная графика классифицируется по типу представления графической информации, и следующими из него алгоритмами обработки изображений. Обычно компьютерную графику разделяют на векторную и растровую, хотя обособляют ещё и фрактальный тип представления изображений.
Векторная графика
Векторная графика представляет изображение как набор геометрических примитивов. Обычно в качестве них выбираются точки, прямые, окружности, прямоугольники, а также как общий случай, кривые некоторого порядка. Объектам присваиваются некоторые атрибуты, например, толщина линий, цвет заполнения. Рисунок хранится как набор координат, векторов и других чисел, характеризующих набор примитивов. При воспроизведении перекрывающихся объектов имеет значение их порядок.
Изображение в векторном формате даёт простор для редактирования. Изображение может без потерь масштабироваться, поворачиваться, деформироваться, также имитация трёхмерности в векторной графике проще, чем в растровой. Дело в том, что каждое такое преобразование фактически выполняется так: старое изображение (или фрагмент) стирается, и вместо него строится новое. Математическое описание векторного рисунка остаётся прежним, изменяются только значения некоторых переменных, например, коэффициентов. При преобразовании растровой картинки исходными данными является только описание набора пикселей, поэтому возникает проблема замены меньшего числа пикселей на большее (при увеличении), или большего на меньшее (при уменьшении). Простейшим способом является замена одного пикселя несколькими того же цвета (метод копирования ближайшего пикселя: Nearest Neighbour). Более совершенные методы используют алгоритмы интерполяции, при которых новые пиксели получают некоторый цвет, код которого вычисляется на основе кодов цветов соседних пикселей. Подобным образом выполняется масштабирование в программе Adobe Photoshop (билинейная и бикубическая интерполяция).
Вместе с тем, не всякое изображение можно представить как набор из примитивов. Такой способ представления хорош для схем, используется для масштабируемых шрифтов, деловой графики, очень широко используется для создания мультфильмов и просто роликов разного содержания.
Растровая графика
Растровая графика всегда оперирует двумерным массивом (матрицей) пикселей. Каждому пикселю сопоставляется значение - яркости, цвета, прозрачности - или комбинация этих значений. Растровый образ имеет некоторое число строк и столбцов.
Без особых потерь растровые изображения можно только лишь уменьшать, хотя некоторые детали изображения тогда исчезнут навсегда, что иначе в векторном представлении. Увеличение же растровых изображений оборачивается «красивым» видом на увеличенные квадраты того или иного цвета, которые раньше были пикселями.
В растровом виде представимо любое изображение, однако этот способ хранения имеет свои недостатки: больший объём памяти, необходимый для работы с изображениями, потери при редактировании.
Фрактальное дерево
Фрактал - объект, отдельные элементы которого наследуют свойства родительских структур. Поскольку более детальное описание элементов меньшего масштаба происходит по простому алгоритму, описать такой объект можно всего лишь несколькими математическими уравнениями.
Фракталы позволяют описывать целые классы изображений, для детального описания которых требуется относительно мало памяти. С другой стороны, фракталы слабо применимы к изображениям вне этих классов.
Трёхмерная графика (3D - от англ. three dimensions - «три измерения») оперирует с объектами в трёхмерном пространстве. Обычно результаты представляют собой плоскую картинку, проекцию. Трёхмерная компьютерная графика широко используется в кино, компьютерных играх.
В трёхмерной компьютерной графике все объекты обычно представляются как набор поверхностей или частиц. Минимальную поверхность называют полигоном. В качестве полигона обычно выбирают треугольники.
Всеми визуальными преобразованиями в 3D-графике управляют матрицы. В компьютерной графике используется три вида матриц:
·матрица поворота
·матрица сдвига
·матрица масштабирования
Любой полигон можно представить в виде набора из координат его вершин. Так, у треугольника будет 3 вершины. Координаты каждой вершины представляют собой вектор (x, y, z). Умножив вектор на соответствующую матрицу, мы получим новый вектор. Сделав такое преобразование со всеми вершинами полигона, получим новый полигон, а преобразовав все полигоны, получим новый объект, повёрнутый/сдвинутый/масштабированный относительно исходного.
Использование 2-3D графики в программировании
Для программирования трехмерной графики сегодня создан ряд специализированных API (Application Programming Interface). Если аппаратура поддерживает данные эффекты - прекрасно, нет - будет мучиться процессор. Все интерфейсы можно разделить на две группы: созданные фирмами под аппаратуру собственной разработки (ЗDfх Glide для Voodoo) и под аппаратуру общего пользования, не учитывающие различий графических адаптеров, таких как OpenGL (разработка Silicon Graphic) и Dlrect3D (DirectX, Microsoft). Недавно появилась шестая версия последнего стандарта, которая имеет все основания стать стандартом в индустрии. Обычно поддерживается один или два интерфейса. Причем в зависимости от интерфейса можем получить не только разницу в цвете, но даже разные сценарии.
Платы ATI традиционно пользовались репутацией недорогих универсальных изделий, которые ориентированы скорее на удовлетворение потребностей среднестатистического пользователя, чем на запросы любителей трехмерных компьютерных игр и немногочисленной группы профессионалов, которые предъявляют чрезвычайно высокие требования к графической подсистеме ПК. Иными словами, обладая хорошим соотношением: цена/качество, платы ATI оставались изделиями массового спроса со средними, по современным меркам, показателями производительности при операциях трехмерной графики -- весьма существенный недостаток, учитывая популярность трехмерных игр. Кроме того, пользователи плат ATI сталкивались еще с одной проблемой -- отсутствием драйверов OpenGL, требующихся для игры Quake и ее клонов.
5.5 Понятие динамического изображения
Понятие динамического объекта (динамической системы) является довольно сложным, и к нему имеется несколько подходов. При первом подходе понятие динамической системы рассматривается как существенное обобщение понятия статической, включающее в себя последнюю как частный случай.
Другой подход основан на противопоставлении динамической и статической систем. Под динамической системой понимается система, поведение которой зависит не только от мгновенных значений входных сигналов, но и от состояния системы, обусловленного предыдущими изменениями входных и выходных сигналов. В статической системе мгновенные значения выходных сигналов зависят только от соответствующих мгновенных значений входных сигналов и не зависят от предыдущего состояния системы и прежних изменений входных сигналов.
По-видимому, целесообразно использовать для определения понятия динамической системы первый подход, тем более, что этот подход в последнее время получил широкое распространение.
При втором подходе понятия динамической и статической систем целесообразно заменить понятиями инерционной и безынерционной систем, которые возможно противопоставлять Друг другу.
При этом одна и та же система может рассматриваться и как инерционная, и как безынерционная в зависимости от инерционности устройств, вырабатывающих для нее входные сигналы, либо от инерционности устройств, обрабатывающих ее выходные сигналы. Если переходные процессы этих внешних по отношению к рассматриваемой системе устройств являются значительно более длительными, чем переходные процессы в системе, то ее без большой ошибки можно считать безынерционной.
В дальнейшем будет употребляться терминология, использующая введенные понятия динамической и статической, инерционной и безынерционной систем. Динамической системой называется система, математическая модель которой содержит переменные состояния и переменные преобразования состояния, аналитически это взаимозависимость девяти переменных
Где t - множество моментов времени, х - множество мгновенных значений входных сигналов, - множество допустимых входных сигналов, у - множество выходных сигналов, yt - множество допустимых выходных сигналов, s - множество состояний системы, с - множество параметров системы,
Это абстрактное определение говорит о том, что динамическая система описывается с помощью следующих сигналов: входных переменных х, переменных состояния s, выходных переменных у.
Кроме того, поведение системы зависит от ее параметров. Зависимость переменных состояния от изменения входных сигналов определяется отображением ср. Зависимость выходных переменных от входных и переменных состояния определяется отображением D.
В дальнейшем будет использоваться частный случай понятия динамической системы, для которого t - замкнутый интервал, х - множество кусочно-непрерывных векторных функций с ограниченными мгновенными значениями, s - множество непрерывных кусочно-дифференцируемых векторных функций, с-n-мерное векторное пространство, у - множество непрерывных векторных функций.
Отображение ф описывается с помощью дифференциальных уравнений.
Отображение D является однозначной векторной функцией векторных аргументов. Такое описание задается уравнениями
Общее понятие динамической системы относится не только к объектам, описываемым дифференциальными уравнениями, но и к дискретным объектам, описываемым разностными уравнениями, а также к конечным автоматам. Дальнейшие результаты будут справедливы и для двух последних случаев, хотя выводиться и иллюстрироваться они будут на примере объектов, описываемых дифференциальными уравнениями. Для рассматриваемых нами задач контроля важным является включение в описание контролируемой динамической системы параметров с, которые характеризуют техническое состояние системы, в частности ее работоспособность. Задача контроля динамической системы заключается в формировании входных сигналов х (t), измерении выходных сигналов
У (t), определение на основании этих измерений параметров с и степени работоспособности системы путем сравнения полученных значений параметров с их допустимыми значениями.
5.6 Методы и способы программирования динамических изображений
Одним из распространенных примеров программирования динамических изображений является использование спрайтов. Особенно часто спрайты используются при программировании компьютерных игр. В литературе спрайт определяется как аппаратное или программное средство формирования динамического графического изображения. Спрайт представляет собой растровое графическое изображение небольшого размера, которое может перемещаться по экрану независимо от остального изображения. Спрайт накладывается на основное изображение, перекрывая его.
Спрайт - это небольшое изображение, свободно перемещающееся по монитору. В первоначальном смысле слова этот термин применялся только для аппаратно выводимых изображений. Собственно, лишь один настоящий спрайт можно встретить на IBM PC - аппаратный курсор мыши. При архитектуре х86 под спрайтом принято понимать программно выводимое изображение, которое может иметь сложную форму и передвигаться поверх фона, не затирая его.
Спрайт - это обыкновенная картинка, запакованная в spr формат. У этого формата есть много общего с форматом GIF, а именно:
в файле spr может храниться как статичная картинка, так и последовательность (анимированная картинка);
ограничение на количество цветов - 256 оттенков (впрочем, как и везде в игре);
есть поддержка прозрачности 2х видов:
а) с одним прозрачным цветом (например, сетка оптического прицела);
б) с полу прозрачностью (например, радар или свечение около источника света).
Спрайтами в игре представлен HUD (Holographical Unit Display (голографический модульный дисплей)), прицелы, дым, свечение, вспышки от выстрелов и т.д.
При одновременном выводе нескольких спрайтов важно, чтобы каждый из них не только сохранял под собой фон, но и не портил другие при их перекрытии. Для этого все спрайты сортируются по , означающей, что различные объекты на экране должны находиться на разных расстояниях от зрителя, а если они расположены в одной плоскости, то более близким будет считаться тот, который перекрывает остальные.
К сожалению, спрайты так же имеют и свои недостатки. Главный недостаток - ограниченное количество используемых спрайтов. Дело в том, что при загрузке спрайтов, моделей и объектов, для них резервируется ограниченное место в памяти. Поэтому, количество спрайтов, использованных вами, желательно не должно превышать 200 штук.
Цветовая палитра спрайта - всего 256 цветов. Ограничение на размер 256х256 пикселей.
begin(p[0],0,256);(p);('sprt01.bmp',0,0,1,1);.ax := $13; { устанавливаем режим }
intr($10,r); { 320х200х256 цветов }:= ptr(SegA000,0);
BlackPal;; {рисуем фон}(p);
GetBuffer; {сохраняем фон под спрайтом}; {и рисуем на его месте спрайт}{теперь спрайт будет двигаться по экрану}
{до тех пор, пока мы не нажмем на клавишу}; {восстанавливаем фон};; {сохраняем фон}; {рисуем спрайт};
{ожидаем обратный ход луча кадровой развертки}keypressed;; {чистим буфер клавиатуры}(p);.ax := $3;($10,r); {возвращаемся в текстовый режим};.
Ещё один недостаток - на спрайт никаким образом не влияют тени, отбрасываемые объектами, а так же источники света (т.е. при компиляции спрайт не обрабатывается компилятором). Если спрайт будет находиться в полной темноте - он будет выглядеть светящимся.
Но, тем не менее, данная технология наиболее привлекательна для создания движущихся по основной сцене графических объектов: (меньший размер алгоритма, большие возможности операций с объектом и др.)
5.7 Понятие искусственного интеллекта
Понятие искусственный интеллект, как впрочем, и просто интеллект, весьма расплывчато. Если обобщить все сказанное за последние тридцать лет, то оказывается, что человек просто хочет создать себе подобного в той или иной форме, хочет, чтобы какие-то действия выполнялись более рационально, с меньшими затратами времени и энергии. С конца 40-х годов ученые все большего числа университетских и промышленных исследовательских лабораторий устремились к дерзкой цели: построение компьютеров, действующих таким образом, что по результатам работы их невозможно было бы отличить от человеческого разума. В последнее время наблюдается возрастание интереса к искусственному интеллекту, вызванное повышением требований к информационным системам. Умнеет программное обеспечение, умнеет бытовая техника. Мы неуклонно движемся к новой информационной революции, сравнимой по масштабам с развитием Интернета, имя которой - искусственный интеллект.
Искусственный интеллект является сейчас «горячей точкой» научных исследований. В этой точке, как в фокусе, сконцентрированы наибольшие усилия кибернетиков, лингвистов, психологов, философов, математиков и инженеров. Именно здесь решаются многие коренные вопросы, связанные с путями развития научной мысли, с воздействием достижений в области вычислительной техники и робототехники на жизнь будущих поколений людей. Здесь возникают и получают права на жизнь новые методы научных междисциплинарных исследований. Здесь формируется новый взгляд на роль тех или иных научных результатов и возникает то, что можно было бы назвать философским осмыслением этих результатов. Поэтому я посчитал актуальным раскрыть данную тему в реферате.
Терпеливо продвигаясь вперед в своем нелегком труде, исследователи, работающие в области искусственного интеллекта (ИИ), обнаружили, что вступили в схватку с весьма запутанными проблемами, далеко выходящими за пределы традиционной информатики. Оказалось, что, прежде всего, необходимо понять механизмы процесса обучения, природу языка и чувственного восприятия. Выяснилось, что для создания машин, имитирующих работу человеческого мозга, требуется разобраться в том, как действуют миллиарды его взаимосвязанных нейронов. И тогда многие исследователи пришли к выводу, что, пожалуй, самая трудная проблема, стоящая перед современной наукой - познание процессов функционирования человеческого разума, а не просто имитация его работы. Что непосредственно затрагивало фундаментальные теоретические проблемы психологической науки. В самом деле, ученым трудно даже прийти к единой точке зрения относительно самого предмета их исследований - интеллекта. Некоторые считают, что интеллект - умение решать сложные задачи; другие рассматривают его как способность к обучению, обобщению и аналогиям; третьи - как возможность взаимодействия с внешним миром путем общения, восприятия и осознания воспринятого. Тем не менее, многие исследователи ИИ склонны принять тест машинного интеллекта, предложенный в начале 50-х годов выдающимся английским математиком и специалистом по вычислительной технике Аланом Тьюрингом. «Компьютер можно считать разумным, - утверждал Тьюринг, - если он способен заставить нас поверить, что мы имеем дело не с машиной, а с человеком».
.8 Выводить стартовую форму приложения
Разработка меню в языке программирования Delphi 7. Была разработана стартовая форма моего проекта.
При запуске моего проекта будет выводится данная форма, которая поприветсвует пользователя и предложит ему начать игру.
5.9 Запускать игровые программы-примеры
Работа над практическими аспектами решаемой задачи, а именно разработка следующего этапа моего проекта, в среде программирования Delphi 7 мною были запрограммированы разделы меню.
В эти разделы входят: выбор игр (из трех), при наведении на раздел меню с названием, появляется превью данной игры. При нажатии левой кнопки мыши на название - запускается игра.
5.10 Выдавать сведения об авторе программы. Осуществлять выход из программы
Я продолжал работать над программированием оставшихся пунктов меню, а именно - Авторы и Выход. Данные кнопки располагаются в нижней части моего приложения.
5.11 Описание алгоритмов и пользовательского интерфейса программы
Для выполнения игры необходимо проделать следующее:
. Распаковать архив Logic Game.rar
Для этого необходимо: нажать ПКМ на файл, выбрать пункт - Извлечь файлы.
. После того, как распаковали содержимое архива, у нас имеется папка Logic Game, входим в эту папку, находим в ней ярлык Логические игры.
Двойным щелчком ЛКМ открываем файл.
После запуска, появляется стартовое окно приложения, которое приветствует пользователя и предлагает ему сыграть в игру.
Пользователю предоставленно два варианта ответа Да - что позволит ему сыграть. Нет- выход из программы.
Если пользователь согласен сыграть, то появляется следующее окно:
Здесь представленно три игры, при на ведении на название, появляется превью игры:
Чтобы сыграть просто кликаем на понравившеюся игру.
.12 Игры
Игра Бильярд
Игра бильярд разработанна в OpenGl, данная игра является 3D игрой.
После запуска игры, запускается пользовательский интерфейс, меню из двух пунктов: Новая игра и Выход.
При нажатии на раздел - Новая игра, появляется следующее окно, в котором пользователю необходимо ввести свое имя, затем нажать на кнопку - Начать игру.
Удар по шарам производится левой клавишей мыши, прицеливание при помощи курсора мыши.
При нажатии на правую клавишу мыши можно вращаться вокруг стола.
Карточная игра - 50
Карточная игра - 50. Смысл данной игры состоит в следующем: На столе располагаются 24 раскрытые карты: все карты с номерами от 1 до 6 обычной колоды, где туз считается за 1. Масти карт несущественны. Каждый игрок при своём ходе берёт со стола карту и складывает её значение с суммой тех, которые были взяты ранее (таким образом, подсчитывается общая сумма карт, взятых партнёрами, а не отдельные суммы для каждого партнёра. Первый, кто берёт в точности 50 очков выигрывает. Если игрок, взяв карту, не может не превысить 50 очков, то он проигрывает.
Игра включает в себя такие пункты меню, как: Сдать карты - при нажатии которого начинается игра, Об игре - в данном разделе описано правила игры, и Выход.
Морской бой
Морской бой. Игра имеет свой интерфейс, при входе в игру пользователя просят ввести свое имя, а так же право выбора первого хода.
Затем нажимаем на кнопку применить. У нас появляется следующее окно:
Игра предлагает пользователю раставить корабли самостоятельно, либо нажав на кнопку «Автоматическая растановка», корабли будут расположены на карте в случайном порядке. Если пользователя что-то не устраивает он может нажать на кнопку «Заново» и начать все сначала. После того как корабли раставлены и все готово к началу игры, жмем кнопку «Играть».
У нас появилось окно:
В игре имеется подсказка:
Далее для стрельбы по короблям пользователю необходимо навести курсор мыши на карту компьютера и кликнуть левой клавишей мыши.
Победителем считается тот, кто быстрее уничтожит вражеские корабли.
Так же организован выход из игры.
Анализ полученных результатов
У разработанного комплекса игр минимальные системные требования. Все приложение имеет 29.7 Мб. Эксплуатировать данное приложение может любой человек владеющий компьютером на уровне среднего пользователя.
Заключение
Я, за время прохождения преддипломной практики изучил общие вопросы теории игр: их виды и классификация, принципы построения и программирования игровых программ, основы 2-3D графики, использование 2-3D графики в программировании, понятие динамического изображения, методы и способы программирования динамических изображений, понятие искусственного интеллекта, применение принципов искусственного интеллекта для программирования игр и головоломок.
Выполнил задания предусмотренные программой практики, а именно разработал стартовую форму приложения, реализовал запуск игровых программ, организовал сведения об авторе программы, осуществил выход из программы.
Мною самостоятельно были проведены следующие работы, я работал с графическими редакторами Adobe PhotoShop CS4 и CorelDraw, программой для создания иконок - IconX, изучил множество книг, которые помогли мне в разработке моего дипломного проекта, так же при помощи сети Internet, нашел ответы на неизвестные мне вопросы.
Благодаря этим работам и использованию перечисленных ранее программ, я выполнял поставленные передо мной задачи.
В результате пройденной преддипломной практики я получил новые практические навыки по разработке программных продуктов, научился новым приемам программирования в визуальных средах и выполнил индивидуальное практическое задание, разработал игровую программу в виде головоломок на основе принципов искусственного интеллекта.
Список литературы
Список литературы (по теоретическим вопросам)
1.Абрамов С.А.и др. Задачи по программированию. Москва «Наука» 1988 г.
2.Боон К. Паскаль для всех. Москва «Энергоатомиздат» 1988 г.
.Гейн А.Г. и др. Основы информатики и вычислительной техники. Москва «Просвещение» 1993 г.
.Гейн А.Г., Сеноосов А.И., Юнерман Н.А. Информатика 10-11. Москва «Просвещение» 2001 г.
.Демидович Н.Б., Монахов В.М. Программирование и ЭВМ. Москва «Просвещение» 1977 г.
.Ершов А.П. Основы информатики и вычислительной техники. Москва «Просвещение» 1988 г.
.Ершов А.П. Основы информатики и вычислительной техники в 2-х ч. Москва «Просвещение» 1987 г.
.Ершов А.П. Изучение основ информатики и вычислительной техники в 2-х ч. Москва «Просвещение» 1993 г.
.Заварыкин В.М. и др. Основы информатики и вычислительной техники. Москва «Просвещение» 1989 г.
10.Златопольский Д.М. Я иду на урок информатики. Задачи по программированию. Москва «Первое сентября» 2001 г.
11.Извозчиков В.А. Информатика в понятиях и терминах. Москва «Просвещение» 1991 г.
.Каймин В.А. и др. Основы информатики и вычислительной техники. Москва «Просвещение» 1989 г.
.Кушниренко А.Г., Лебедев Г.В., Сворень Р.А. Основы информатики и вычислительной техники. Москва «Просвещение» 1993 г.
.Немнюгин С.А. Turbo Pascal. Учебник. Санкт-Петербург «Питер» 2001 г.
.Немнюгин С.А. Turbo Pascal. Практикум. Санкт-Петербург «Питер»
.Переверзева Н.А., Ревчук И.Н. Решение задач на алгоритмическом языке. Минск «Народная асвета» 1990 г.
.Урнов В.А. Преподавание информатики в компьютерном классе. Москва «Просвещение» 1990 г.
.Фигурнов В.Э. IBM PC для пользователя 7 издание. Москва «Инфра-М» 1997 г.
.Фоменко А.М., Фоменко Л.В. Основы информатики и вычислительной техники. Ростов-на-Дону «Феникс» 2001 г.
.Фролов Г.Д., Кузнецов Э.И. Элементы информатики. Москва «Высшая школа» 1989 г.
.Газета «Информатика»
.Интернет-ресурсы.
Список литературы (по индивидуальному заданию)
23.Бордман Т. OpenGl учебный курс. Питер, 2006.
24.Жадаева Б. 100% самоучитель Delphi 7. Питер, 2005.
25.Кларк Д., С.Смит, К.Тим Чанг, М.Ошман. Учим PhotoShop. Лондон, 2010.