Разработка программного продукта "Игра в шашки"
Рассмотрение особенностей разработки программного продукта "Игра в шашки". Анализ методов заполнения квадратной матрицы. Способы выбора языка программирования для реализации игры. Общая характеристика требований к эргономике и технической эстетике.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 01.05.2013 |
Размер файла | 493,2 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Введение
программирование игра эргономика
Тема моего курсового проекта «Разработка программного продукта «Игра в шашки»». Передо мной встали две проблемы: 1) методы заполнения квадратной матрицы; 2) выбор языка программирования для реализации игры. Над второй пришлось поработать. Был выбран язык программирования Delphi. Изучалась специальная литература, оказали помощь интернет-ресурсы по некоторым вопросам.
Объектом исследования является программирование на языке Delphi.
Предмет исследования - разработка программ-игр на языке программирования Delphi.
Целью исследования было:
теоретическое обоснование и разработка программы «Игра в шашки».
Гипотеза исследования:
Если
v проанализировать содержание понятия «Игра в шашки» и методы построения шахматных полей;
v проанализировать назначение и возможности Delphi;
v проанализировать пути решения проблем создания игр на языке Delphi;
v разработать программу игры в шашки.
То это обеспечит
Ш развитие и прикладное применение навыков программирования;
Ш получение навыков программирования в интегрированной среде программирования Delphi;
В соответствии с целью и гипотезой ставились и решались следующие задачи: Написать программу «Игра в шашки», которая, во-первых, генерирует поле квадратов с некоторыми пустыми клетками; во-вторых, заполняется ли квадратная матрица.
Общие сведения о ПС. Основное функциональное назначение программного средства
Данная программа предназначена для игры в шашки. Для работы с ней нужно запустить файл «WinDraught.exe».
Полное наименование программного средства
Данная программа предназначена для развития логического мышления, навыков работы с мышью. В программе «Игра в шашки» использованы поля для игры белыми фигурами и черными, а также реализована возможность менять стороны расположения шашечных фигур. Системные требования: 486 или совместимый процессор, 256 Mb RAM, ОС WindowsXP. Для работы программы требуется 128 Mb дискового пространства.
Для начала работы нужно запустить исполнимый файл «WinDraught.exe».
Условное обозначение программного средства
Условное обозначение программного средства «Шашки»
Рис.
Разработчики программного средства
Курсовой проект на тему «Игра в шашки» разработан студентом Выголко Александром Петровичем группы 5П-08 обучающийся в Брянском профессионально- педагогическом колледже.
Техническое задание. Основание для разработки
Основанием для разработки программного продукта «Игра в шашки» является задание «Брянского профессионально-педагогического колледжа»
Назначение разработки
Программа «Игра в шашки» предназначена для развития логического мышления, закрепления навыков работы с манипулятором типа мышь.
Требования к программному средству
Требования к функциональным характеристикам:
Программное средство «Игра в шашки» применим к современным программным средствам, разработанным с использованием графического пользовательского интерфейса.
Требования к структуре ПС:
По функциональным признакам структура «Игра в шашки» подразделяется на следующие категории:
· Распределенная система управления
· Логические операции
· Удобный графический интерфейс
Требования к надежности:
Требования к обеспечению надежного функционирования программы должно быть обеспеченно выполнением организационно-технических мероприятий, перечень которых приведен ниже:
1. обеспечить бесперебойное питание технических средств;
2. использование лицензионного программного обеспечения;
3. регулярным выполнением рекомендаций Министерства труда и социального развития РФ, изложенных в Постановлении от 23 июля 1998 г. «Об утверждении межотраслевых типовых норм времени на работы по сервисному обслуживанию ПЭВМ и оргтехники и сопровождению программных средств»;
4. регулярным выполнением требований ГОСТ 51188-78. испытание программных средств на наличие различных компьютерных вирусов. Защита информации.
Должна быть применена надежная защита для программного продукта «Игра в шашки»:
1. От несанкционированного доступа;
2. От проникновения в систему программного продукта компьютерных вирусов;
3. От разрушения или остановки работы программного обеспечения.
Условия эксплуатации:
Программа будет прекрасно работать от плюс 15 до плюс 35 °C при относительной влажности 90% и атмосферном давлении 462 мм.рт.ст., поскольку такие условия приблизительно соответствуют условиям эксплуатации современных компьютеров непромышленного исполнения.
Минимальное количество персонала, требуемого для работы программы должно составлять не менее 1 единицы штата - конечный пользователь программы - оператор.
Конечный пользователь программы (оператор) должен обладать практическими навыками работы с графическим пользовательским интерфейсом операционной системы.
Персонал должен быть аттестован на II квалификационную группу по электробезопасности (для работы с конторским оборудованием).
Персонал, не имеющий II квалификационной группы по электробезопасности, не имеет права находится рядом с ПЭВМ и конторскому оборудованию.
Требования к составу и параметрам технических средств:
В подразделе указывают необходимый состав технических средств с указанием их основных технических характеристик.
В состав технических средств должен входить IBM-совместимый персональный компьютер (ПЭВМ), включающий в себя:
1. процессор Pentium-1000 с тактовой частотой, ГГц - 8, не менее;
2. материнскую плату, ГГц - 5, не менее;
3. оперативную память объемом, Гб - 1, не менее;
4. жесткий диск объемом, ГБ - 20, не менее.
Требования к информационной и программной совместимости:
Исходный код программы был реализован на языке Borland Delphi 7. В качестве интегрированной среды разработки программы должна быть использована среда Borland Delphi 7.
Системные программные средства, используемые программой, должны быть представлены лицензионной локализованной версией операционной системы. Допускается использование пакета обновлений.
Требования к транспортированию и хранению:
Допускается транспортирование программного изделия в транспортной таре всеми видами транспорта (в том числе в отапливаемых герметизированных отсеках самолетов без ограничения расстояний). При перевозке в железнодорожных вагонах вид отправки - мелкий малотоннажный.
При транспортировании и хранении программного изделия должна быть предусмотрена защита от попадания пыли и атмосферных осадков. Не допускается кантование программного изделия. Климатические условия транспортирование приведены ниже:
· температура окружающего воздуха, от плюс 15 °С до плюс 30 °С ;
· относительная влажность воздуха при 25 °С - 70%.
Специальные требования
Программа обеспечивает взаимодействие пользователя (оператора) посредствам графического пользовательского интерфейса, разработанного согласно рекомендациям компании-производителя операционной системы.
Требования к программной документации:
Состав программной документации предусмотрен с ГОСТ 19.101-77;
Состав программной документации включает в себя:
руководство системного программиста;
руководство пользователя;
ведомость эксплуатационных документов.
Программа и методика испытания соответствует требованию согласованного и утвержденного технического задания. Программная документация, входящая в предварительный перечень, соответствует требованиям ГОСТА 19.106-78.
Стадии и этапы разработки
Стадия "Формирование требований к программе «Игра в шашки» " включает в себя выполнение следующих этапов:
· Обследование объекта и обоснованность необходимости создания игры;
· Формирование требований заказчика к программному продукту;
· Оформление Отчета о выполненной работе, и Заявки на разработку игры.
На этапе "Обследование объекта и обоснование необходимости создания игры " в общем случае проводится:
· Сбор данных об объекте;
· Оценка качества функционирования объекта;
· Выявление проблем, решение которых возможно средствами автоматизации;
· Оценка технико-экономической целесообразности создания игрового программного продукта.
На этапе "Формирование требований Заказчика к игре" проводится:
· Подготовка исходных данных для формирования требований к игре (характеристика объекта автоматизации, описание требований к системе, допустимые затраты на разработку, ввод в действие и эксплуатацию, эффект, ожидаемый от системы, условия создания и функционирования системы);
На этапе Оформление Отчета о выполненной работе, и заявки на разработку игры производится:
Оформление Отчета о выполненных работах на данной стадии;
Оформление Заявки на разработку «Игры в шашки» (тактико-технического задания) или другого заменяющего его документа с аналогичным содержанием.
Стадия Разработка концепции игры заключается в выполнении следующих этапов:
· Изучение объекта;
· Проведение необходимых научно-исследовательских работ;
· Разработка вариантов концепции и выбор варианта концепции к игре в соответствии с требованиями Заказчика.
На этапе "Разработка вариантов концепции и выбор варианта концепции игры в соответствии с требованиями Заказчика" в общем случае проводится:
· Разработка альтернативных вариантов концепции и планов их реализации;
· Оценка необходимых ресурсов на их реализацию и функционирование;
· Оценка преимуществ и недостатков каждого варианта;
· Определение порядка оценки качества и условий приемки системы;
Стадия "Техническое задание" заключается в единственном, но чрезвычайно ответственном этапе:
· Разработка и утверждение Технического задания на создание «Игры в шашки».
На этапе "Разработка и утверждение Технического задания на создание игры " проводится:
· Разработка, оформление, согласование и утверждение Технического задания на создание игрового продукта.
Стадия "Эскизный проект" состоит из следующих этапов:
· Разработка предварительных проектных решений;
· Разработка документации на «программный продукт.
На этапе "Разработка предварительных проектных решений по Системе и ее частям" определяются:
· Функции игрового продукта;
· Функции и цели подсистем;
· Состав программных комплексов и отдельных задач;
· Состав комплекса технических средств;
· Функции и параметры основных программных средств и ресурсов.
· На этапе "Разработка документации на программу «Игра в шашки» " проводится:
· Разработка, оформление, согласование и утверждение документации в объеме, необходимом для описания полной совокупности принятых проектных решений, и достаточном для выполнения работ по созданию программы.
Стадия "Технический проект" состоит из следующих этапов:
· Разработка проектных решений по Системе и ее частям;
· Разработка документации на игру и ее части;
· Разработка и оформление документации на поставку изделий для комплектования программного продукта и технических требований (технических заданий) на их разработку;
На этапе "Разработка проектных решений по Системе и ее частям" производится разработка общих решений:
· По Системе и ее частям;
· По функционально-алгоритмической структуре Системы;
· По функциям персонала и организационной структуре;
· По структуре технических средств;
· По алгоритмам решения задач и применяемым языкам;
· По программному обеспечению.
На этапе "Разработка документации на АСУТП и ее части" проводится:
· Разработка, оформление, согласование и утверждение документации в объеме, необходимом для описания полной совокупности принятых проектных решений и достаточном для дальнейшего выполнения работ по созданию игры.
На этапе "Разработка и оформление документации на поставку изделий для комплектования игры и технических требований (технических заданий) на их разработку" проводится:
· Подготовка и оформление документации на поставку изделий для комплектования;
· Определение технических требований или составление ТЗ на разработку несерийных изделий.
Стадия "Рабочий проект (Рабочая документация)" включает в себя следующие этапы:
· Разработка рабочей документации на программу и ее части;
· Разработка и конфигурация программного обеспечения.
На этапе "Разработка рабочей документации на игру и ее части" осуществляется:
· Разработка рабочей документации, содержащей все необходимые и достаточные сведения для обеспечения выполнения работ по вводу в действие и для её эксплуатации, а также для сохранения уровня эксплуатационных характеристик системы в соответствии с принятыми
проектными решениями;
· Оформление, согласование и утверждение рабочей документации на «Игру в шашки».
На этапе "Разработка и конфигурация программного обеспечения" проводится:
· Разработка прикладного программного обеспечения;
· Выбор, адаптация и привязка программных средств, разработка программной документации.
Стадия "Ввод в действие" состоит из следующих этапов:
Подготовка объекта автоматизации к вводу «Игра в шашки» в действие;
· Подготовка персонала;
· Пусконаладочные работы;
· Проведение Предварительных испытаний;
· Проведение Опытной эксплуатации;
· Проведение Приемочных испытаний.
На этапе "Подготовка объекта автоматизации к вводу «Игра в шашки» в действие" проводятся работы по организационной подготовке объекта автоматизации к вводу в действие, в том числе:
· Реализация проектных решений по организационной структуре «Игра в шашки»;
· Обеспечение подразделений объекта управления инструктивно-методическими материалами.
На этапе "Подготовка персонала" проводится:
· Обучение персонала;
· Проверка его способности обеспечить функционирование программы.
На этапе "Пусконаладочные работы" проводится:
· Автономная наладка технических средств;
· Загрузка системного и прикладного программного обеспечения;
· Комплексная наладка всех средств системы.
На этапе "Проведение Предварительных испытаний" осуществляются:
· Испытания игры на работоспособность и соответствие Техническому заданию и в соответствии с Программой предварительных испытаний;
· Устранение неисправностей и внесение изменений в документацию на игру в соответствии с Протоколом испытаний;
· Оформление Акта о приемке «Игры в шашки» в Опытную эксплуатацию.
На этапе "Проведение Приемочных испытаний" проводятся:
· Испытания на соответствие Техническому заданию и в соответствии с Программой приемочных испытаний;
· Анализ результатов испытаний «Игры в шашки» и устранение недостатков, выявленных при испытаниях;
· Оформление Протокола и Отчета по каждому объекту испытаний, определенному Программой испытаний;
Требования к эргономике и технической эстетике
Взаимодействие пользователя с прикладной программой обеспечивает, осуществлению визуального графического интерфейса (GUI). Интерфейс системы понятный и удобный, не перегружен графическими элементами и обеспечивает быстрое отображение экранных форм. Навигационные элементы выполнены в удобной для пользователя форме. Ввод-вывод данных системы, прием управляющих команд и отображение результатов их исполнения выполняются в интерактивном режиме. Интерфейс соответствует современным эргономическим требованиям и обеспечивает удобный доступ к основным функциям и операциям системы.
Интерфейс рассчитан на преимущественное использование манипулятора типа «мышь», то есть управление системой осуществляется с помощью набора экранных меню, кнопок, значков и т. п. элементов.
Все надписи экранных форм, а также сообщения, выдаваемые пользователю (кроме системных сообщений) на русском языке.
Система обеспечивать корректную обработку аварийных ситуаций, вызванных неверными действиями пользователей, неверным форматом или недопустимыми значениями входных данных.
В указанных случаях система выдает пользователю соответствующие сообщения, после чего возвращается в рабочее состояние, предшествовавшее неверной (недопустимой) команде или некорректному вводу данных.
Экранные формы с проектированы с учетом требований унификации:
- все экранные формы пользовательского интерфейса выполнены в едином графическом дизайне, с одинаковым расположением основных элементов управления и навигации;
- для обозначения сходных операций использовались сходные графические значки, кнопки и другие управляющие (навигационные) элементы. Термины, используемые для обозначения типовых операций (добавление информационной сущности, редактирование поля данных), а также последовательности действий пользователя при их выполнении, были унифицированы;
- внешнее поведение сходных элементов интерфейса (реакция на наведение указателя «мыши», переключение фокуса, нажатие кнопки) реализовывались одинаково для однотипных элементов.
Система соответствует требованиям эргономики и профессиональной медицины при условии комплектования высококачественным оборудованием (ПЭВМ, монитор и прочее оборудование), имеющим необходимые сертификаты соответствия и безопасности Госстандарта.
Технические сведения программного средства. Общая архитектура программного средства
Общая архитектура программного продукта «Игра в шашки » представлена на Рисунке 1.
Для игры в шашки используется доска содержащая черные и белые квадраты. Игровыми полями являются только темные поля. У каждого игрока есть по 12 шашек. Первый ход всегда делают белые. Игроки ходят по очереди.
Реализация функционального назначения программного средства
Функциональное назначение программного средства «Игра в шашки» изображено в виде схемы на Рисунке 2.
Разработка алгоритма решения задачи
Алгоритм решения задачи представлен графически в виде блок-схемы на Рисунке 3.
Ходят шашки только по диагонали на одно поле вперед.
Выбить шашку противника можно только перескочив ее. Для этого шашка должна находиться рядом с шашкой противника, а позади нее должно быть свободное поле. Причем выбивать можно не только ходом вперед, но и назад. Если после ударного хода, есть возможность выбить этой же шашкой другую враждебную шашку, то игрок делает еще один ударный ход, не передавая права хода сопернику. То есть за раз можно выбить одну-две-три и более шашек.
Структурная организация данных
Рис.
Разработка интерфейса ПС
Интерфейс программного средства представляет собой удобную среду для пользователя.
Эскиз графического интерфейса пользователя представлен на Рисунке 4 (Приложение 1).
Для смены вида, передвижения шашек, используем манипулятор (мышь), нажимая левую кнопку.
Руководство пользователя. Назначение и условия применения программного средства
Функциональным назначением программы «Игра в шашки» является развитие логического мышления.
Минимальные требования к ЭВМ для работы программы «Игра в шашки»
Таблица 1 - Минимальные требования к ЭВМ
Технические средства: |
||
Процессор |
AMD, Athlon, Celeron |
|
Частота процессора |
1.6 ГГц или выше |
|
Количество процессоров |
1 и выше |
|
Объем установленной памяти |
256 Mb и выше |
|
Объемы жесткого диска |
20 Гб и выше |
|
Дисковая подсистема |
Интерфейс SCSI, аппаратно RAID-5 |
|
CD/DVD |
DVD-ROM |
|
Видеоадаптер |
интегрированный |
|
Звуковая карта |
интегрированная |
|
Порты |
клавиатура PS/2 - 1 мышь PS/2 - 1, USB - 2 |
|
Программные средства |
||
ОС |
Windows ХР |
Для использования программы необходимо выделить файл с именем «WinDraught.exe» далее нажимаем правую кнопку мыши и выбираем открыть или копировать в нужную папку и сохраняем, открываем.
Характеристика программного средства
Данная программа предназначена для развития логического мышления, укрепления навыков работы с манипулятором мышь. Для работы с ней нужно запустить файл «WinDraught.exe».
Программа «Игра в шашки» имеет несколько режимов работы:
1. Игра «Компьютер - Человек».
2. Игра «Компьютер - Компьютер».
3. Игра «Эксперт - Человек».
Игра в шашки заключается в том чтобы, выбить все шашки противника или заблокировать возможность их движения.
Ходят шашки только по диагонали на одно поле вперед.
Выбить шашку противника можно только перескочив её. Для этого шашка должна находиться рядом с шашкой противника, а позади должно быть свободное поле. Причем выбивать можно не только ходом вперед, но и назад. Если после ударного хода, есть возможность выбить этой же шашкой другую враждебную шашку, то игрок делает еще один ударный ход, не передавая права хода сопернику. Если у игрока есть возможность выбить шашку противника, то он обязан сделать этот ударный ход, не зависимо от его желаний.
Если у игрока есть возможность выбить чужие шашки в разных направлениях, то он выбирает какой путь ему необходим.
Работа с программным средством
Первое знакомство с игрой в шашки оставляет только самые приятные впечатления. На мой взгляд, одно из главных достоинств программы продуманный интерфейс и оформление.
За этой простотой кроется масса удобств и изюминок программы. Интерфейс и команды управления программы продуманы настолько хорошо, что управлять ей можно в буквальном смысле, на интуиции.
«Игра в шашки » загружается намного быстрее других аналогичных программ.
Инструкция по эксплуатации программы:
Загрузка игры:
В меню выберите пункт «New»;
Белые ходят первыми;
Переставляйте шашки с помощью мыши;
Эксплуатация программного средства
Стадия эксплуатации программного средства охватывает процессы хранения, внедрения и сопровождения программного средства, а также транспортировки и применения программного изделия по своему назначению. Программа будет прекрасно работать от плюс 15 до плюс 35 °C при относительной влажности 70% и атмосферном давлении 462 мм.рт.ст., поскольку такие условия приблизительно соответствуют условиям эксплуатации современных компьютеров непромышленного исполнения.
При транспортировании и хранении программного изделия должна быть предусмотрена защита от попадания пыли и атмосферных осадков.
Минимальное количество персонала, требуемого для работы программы, должно составлять не менее 1 штатных единиц - конечный пользователь программы - оператор.
Конечный пользователь программы (оператор) должен обладать практическими навыками работы с графическим пользовательским интерфейсом операционной системы.
Персонал должен быть аттестован на II квалификационную группу по электробезопасности (для работы с конторским оборудованием).
Персонал, не имеющий II квалификационной группы по электробезопасности, не имеет права даже близко подходить к ПЭВМ и конторскому оборудованию.
Заключение
В процессе выполнения курсового проекта был разработан программный продукт, имеющий название «Игра в шашки», и имеющий широкую специализацию в применении. Разработан интерфейс программы, алгоритм и программа согласно анализу технического задания. Кроме этого создана документация к разработанному программному продукту «Игра в шашки».
Получившаяся программа является приложением начального уровня и обладает возможностью дальнейшего усовершенствования. Например, можно создать горизонтальное расположение доски, разработать различные формы кнопок и другие задумки программиста.
В процессе разработки программы «Игра в шашки» расширены навыки самостоятельной деятельности.
Программный продукт, разрабатывался для простых и сложных игровых последовательностей. Программа была протестирована на наличие ошибок, а также на совместимость с операционной системой Windows XP. И на основании его испытания был сделан вывод о том, что программа полностью отвечает техническим требованиям, которые имеются на сегодняшний день.
Задачи поставлены перед программистом были выполнены, и программный продукт может применяться пользователями на персональных компьютерах для игры.
Программа написана на языке программирования Borland Delphi 7, которая позволяет программисту свободно ориентироваться в программе, использовать ресурсы программы на сто процентов, и делать программы доступными как для начинающего пользователя так и для профессионалов.
Список литературы
1.Архангельский А. Я. Программирование в Delphi 5. -- М., БИНОМ, 2007.
2.Вендров А. М. Проектирование программного обеспечения экономических информационных систем. ? М.: Финансы и статистика, 2007.
3.Вендров А. М. Проектирование программного обеспечения, 2007. ?
4.Ван Тассел. Д. Стиль, разработка, эффективность, отладка и испыта ние программ. - М.: Мир, 2005
5.Гинкул Г.П. Игровой подход к приобретению знаний и его реализация в системе КАПРИЗ. Проблемы применения экспертных систем в народном хозяйстве. Тез. докл. респ. школы-семинара. Кишинев. 2009.
6.Дарахвелидзе П.Г., Марков Е.П. Delphi - среда визуального програм мирования. -СПб.:BHV-Санкт-Петербург, 2006.
7.Епанешников А., Епанешников В. Программирование в среде Delphi 2.0. Епанешников А., Епанешников В. Программирование в среде Delphi 2.0.
8.Жоголев. Е.А. Введение в технологию программирования (конспект лекций). - М.: "ДИАЛОГ-МГУ", 2008.
9.Минский М. Фреймы для представления знаний. -- М.: Мир, 2009.
10.Попов Э. В. Особенности разработки и использования экспертных систем// Искусственный интеллект. Кн. 1. Системы общения и экспертные системы. -- М.: Радио и связь, 2008.
11.Немнюгин С. А. Программирование на языке высокого уровня. ? М.: Просвещение, 2006.
12.Никифоров В. В. Основы разработки программных продуктов. ? М.: Просвещение, 2006.
13.Рудаков А. В. Технология разработки программных продуктов. ? М.: Академия, 2006.
14.Соммервил И. Инженерия программного обеспечения. ? М.: СПб.: Ки ев: Изд. Дом «Вильямс», 2007.
15.Соммервил И. Инженерия программного обеспечения. ? М.: СПб.: Киев: Изд. Дом «Вильямс», 2007.
16.Таунсенд К., Фохт Д. Проектирование и программная реализация экспертных систем на персональных ЭВМ. -- М.: Финансы и статистика, 2005.
17.Таунсенд К., Фохт Д. Проектирование и реализация экспертных систем на ПЭВМ. М., Финансы и статистика, 2007.
18.Хомоненко А. Гофман В. Delphi 7 в подлиннике. ? М.: Просвещение, 2006.
19.Фокс. Дж. Программное обеспечение и его разработка. - М.: Мир, 2005.
20.«Компьютерное проектирование программного обеспечения» / Издательство Московского университета, 2007.
21.Компьютерное проектирование программного обеспечения. - Изда тельство Московского университета, 2007.
22.«Объектно- ориентированное программирование» / Иванова Г. С., Ничушкина Т. Н., Пугачев Е. К.
23.«Программное обеспечение и его разработка» / Фокс. Дж../ М.: Мир / 2005 год.
24.«Разработка графических и мультемедийных приложений» / Жарков В.А.
25.«Стиль, разработка, эффективность, отладка и испытание программ» / Ван Тассел. Д. / М.: Мир /.
26.Учебное пособие. В 4-х частях. Ч.1. Описание среды. - М.:ДИАЛОГ-МИФИ, 2007.
27.Учебное пособие. В 4-х частях. Ч.2. Язык Object Pascal 9.0. - М.:ДИАЛОГ-МИФИ, 2007.
28.« Языки программирования» / О. Л. Голицына, Т. Л. Партыка, И. И. Попов / Издательство: Инфра-М, Форум / 2008 год / ISBN: 978-5-91134-171-8, 978-5-16-003200-9
Приложение 1
Рисунок 1 - Архитектура программного продукта.
Рисунок 2 - Функциональное назначение программы «Игра в шашки»
Рисунок 3 - Блок схема программы «Игра в шашки»
Рисунок 4- Графический интерфейс программы
Приложение 2
Код программы:
unit MainUnit;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
PosFrame, StdCtrls, GameLogic, Menus, ComCtrls, Clipbrd, ActnList;
const
MM_DOMOVE = WM_USER + 1;
MM_DEBUG = WM_USER + 2;
MM_IS_ANIMATION = WM_USER + 3;
type
TMode = (mdMachineWhite, mdMachineBlack, mdTwoMachine, mdView);
TGameHistory = class
procedure Deselect(Action: TAction; const Category: string);
end;
var
MainForm: TMainForm;
implementation
uses GameTactics;
{$R *.DFM}
function Thinker(APosition: Pointer): Integer;
var
Position: TPosition;
Estimate: Integer;
begin
Position := TPosition(APosition^);
SelectMove(Position, MainForm.Deep, Estimate);
SendMessage(MainForm.Handle, MM_DOMOVE, Integer(@Position), Estimate);
Result := 0;
end;
procedure TMainForm.FormShow(Sender: TObject);
var
Position: TPosition;
begin
LoadLib;
Position := StartBoard;
PositionFrame.Debug := Memo.Lines;
PositionFrame.OnAcceptMove := AcceptMove;
NewGameAction.Execute;
BeginerAction.Execute;
MachineBlackAction.Execute;
end;
procedure TMainForm.SelectCellBtnClick(Sender: TObject);
begin
PositionFrame.SelectCell(1, 6);
end;
procedure TMainForm.AcceptMove(Sender: TObject; const NewPosition: TPosition);
var
St: string;
begin
GameHistory.AddMove(NewPosition);
PositionFrame.SetPosition(NewPosition);
St := GameOver(NewPosition);
if St <> '' then
begin
ShowMessage(St);
PositionFrame.AcceptMove := False;
Exit;
end;
procedure TMainForm.FormResize(Sender: TObject);
begin
PositionFrame.Left := 3;
PositionFrame.Top := 3;
Memo.Left := 3;
Memo.Top := PositionFrame.Top + PositionFrame.Height + 3;
Memo.Width := ClientWidth - 6;
Memo.Height := ClientHeight - PositionFrame.Height - 9;
PartyView.Left := PositionFrame.Left + PositionFrame.Width + 3;
PartyView.Width := ClientWidth - PositionFrame.Width - 9;
PartyView.Top := 3;
PartyView.Height := PositionFrame.Height;
PartyView.Columns[0].Width := 30;
PartyView.Columns[1].Width := (PartyView.Width - 40) div 2;
PartyView.Columns[2].Width := (PartyView.Width - 40) div 2;
end;
procedure TMainForm.DoMove(var Message: TMessage);
var
NewPosition: TPosition;
begin
NewPosition := TPosition(Pointer(Message.WParam)^);
CloseHandle(ThreadHandle);
ThreadHandle := 0;
AcceptMove(nil, NewPosition);
end;
procedure TMainForm.FormCreate(Sender: TObject);
begin
FMode := mdMachineBlack;
Memo.Clear;
DoubleBuffered := True;
FGameHistory := TGameHistory.Create;
end;
procedure TMainForm.TuneState;
var
RunThinker: Boolean;
ThreadId: Cardinal;
Index: Integer;
V: Integer;
begin
if ThreadHandle <> 0 then StopThinking;
PositionFrame.AcceptMove := (Mode = mdView)
or ((Mode = mdMachineWhite) and (PositionFrame.Position.Active = ActiveBlack))
or ((Mode = mdMachineBlack) and (PositionFrame.Position.Active = ActiveWhite));
RunThinker := (Mode = mdTwoMachine)
or ((Mode = mdMachineWhite) and (PositionFrame.Position.Active = ActiveWhite))
or ((Mode = mdMachineBlack) and (PositionFrame.Position.Active = ActiveBlack));
if DebugMenu.Visible then
begin
Index := Lib.IndexOf(FormatPosition(PositionFrame.Position));
if Index <> -1 then
begin
V := Integer(Lib.Objects[Index]);
Memo.Lines.Add(Format('Theory = %.3f', [V/200]));
end;
if not RunThinker then Exit;
ThreadHandle := BeginThread(nil, 8*4096, @Thinker, @PositionFrame.Position, CREATE_SUSPENDED, ThreadId);
SetThreadPriority(ThreadHandle, THREAD_PRIORITY_BELOW_NORMAL);
ResumeThread(ThreadHandle);
end;
procedure TMainForm.DoDebug(var Message: TMessage);
var
Position: PPosition;
begin
if not DebugMenu.Visible then Exit;
if Message.WPAram = 0 then
Приложение 2
begin
Memo.Clear;
Exit;
end;
Position := Pointer(Message.WPAram);
Memo.Lines.Add(Format('E=%d N=%.3f M=%s',
end;
procedure TMainForm.IsAnimation(var Message: TMessage);
begin
if PositionFrame.Animate
then Message.Result := 1
else Message.Result := 0
end;
const
MAX_LEN = 60;
procedure TMainForm.StopThinking;
begin
TerminateThread(ThreadHandle, 0);
CloseHandle(ThreadHandle);
ThreadHandle := 0;
end;
procedure TMainForm.FormDestroy(Sender: TObject);
begin
FreeAndNil(FGameHistory);
end;
procedure TMainForm.UndoMoveItemClick(Sender: TObject);
begin
end;
{ TGameHistory }
procedure TGameHistory.AddWhiteMove(const Move: string);
var
NewItem: TListItem;
begin
NewItem := PartyView.Items.Add;
NewItem.Caption := IntToStr((MoveNo div 2) + 1);
NewItem.Subitems.Add(Move);
PartyView.Selected := NewItem;
PartyView.Selected.MakeVisible(False);
end;
procedure TGameHistory.AddBlackMove(const Move: string);
var
Item: TListItem;
begin
Assert(MainForm.PartyView.Items.Count > 0);
Item := PartyView.Items[PartyView.Items.Count-1];
Приложение 2
Item.Subitems.Add(Move);
PartyView.Selected := Item;
PartyView.Selected.MakeVisible(False);
end;
procedure TGameHistory.NewGame;
begin
MoveNo := 0;
PartyView.Items.Clear;
FPositions[0] := StartBoard;
PositionFrame.SetPosition(StartBoard);
end;
function TGameHistory.GetPartyView: TListView;
begin
Result := MainForm.PartyView;
end;
function TGameHistory.GetPositionFrame: TPositionFrame;
begin
Result := MainForm.PositionFrame;
end;
procedure TGameHistory.Undo;
var
Last: Integer;
Item: TListItem;
begin
Assert(MoveNo > 0);
MainForm.ViewItem.Click;
MoveNo := MoveNo - 1;
PositionFrame.SetPosition(FPositions[MoveNo], False);
Last := PartyView.Items.Count-1;
Assert(Last >= 0);
Item := PartyView.Items[Last];
if Item.SubItems.Count > 1
then Item.SubItems.Delete(1)
else PartyView.Items.Delete(Last);
end;
procedure TMainForm.NewGameActionExecute(Sender: TObject);
begin
StopThinking;
GameHistory.NewGame;
if Mode in [mdMachineWhite, mdTwoMachine] then MachineBlackItem.Click;
PositionFrame.AcceptMove := True;
end;
procedure TMainForm.Deselect(Action: TAction; const Category: string);
var
I: Integer;
begin for I := 0 to ActionList.ActionCount - 1 do
begin
if ActionList.Actions[I].Category <> Category then Continue;
if ActionList.Actions[I] = Action then Continue;
(ActionList.Actions[I] as TAction).Checked := False;
end;
end;
procedure TMainForm.LevelActionExecute(Sender: TObject);
begin
Deselect(Sender as TAction, 'Level');
with Sender as TAction do
begin
Checked := True;
Deep := Tag;
end;
procedure TMainForm.MachineWhiteActionExecute(Sender: TObject);
begin
Deselect(Sender as TAction, 'Mode');
(Sender as TAction).Checked := True;
if Mode = mdMachineWhite then Exit;
FMode := mdMachineWhite;
PositionFrame.FlipBoard := True;
TuneState;
end;
procedure TMainForm.MachineBlackActionExecute(Sender: TObject);
begin
Deselect(Sender as TAction, 'Mode');
(Sender as TAction).Checked := True;
if Mode = mdMachineBlack then Exit;
FMode := mdMachineBlack;
PositionFrame.FlipBoard := False;
TuneState;
end;
procedure TMainForm.TwoMachineActionExecute(Sender: TObject);
begin
Deselect(Sender as TAction, 'Mode');
(Sender as TAction).Checked := True;
if Mode = mdTwoMachine then Exit;
FMode := mdTwoMachine;
TuneState;
end;
procedure TMainForm.ViewGameActionExecute(Sender: TObject);
begin
Deselect(Sender as TAction, 'Mode');
if Mode = mdView then Exit;
FMode := mdView;
ViewItem.Checked := True;
if ThreadHandle <> 0 then StopThinking;
end;
procedure TMainForm.SetPositionActionExecute(Sender: TObject);
var
Position: TPosition;
begin
ViewItem.Click;
FillChar(Position.Field, 32, $00);
Position.Field[31] := -20;
Position.Field[29] := 70;
Position.Active := ActiveWhite;
// Position.Field[0] := 20;
// Position.Field[2] := -70;
// Position.Active := ActiveBlack;
Position.MoveCount := 0;
PositionFrame.SetPosition(Position);
end;
procedure TMainForm.AddToLibraryActionExecute(Sender: TObject);
var
V: Integer;
Estimate: string;
PositionFmt: string;
Index: Integer;
begin
DecimalSeparator := '.';
Estimate := InputBox('Input', 'Please, enter estimate', '');
if Estimate = '' then Exit;
Estimate := StringReplace(Estimate, ',', '.', []);
V := Round(200 * StrToFloat(Estimate));
PositionFmt := FormatPosition(PositionFrame.Position);
Index := Lib.IndexOf(PositionFmt);
if Index = -1 then
Lib.AddObject(PositionFmt, TObject(V))
else begin
Lib.Sorted := False;
Lib[Index] := PositionFmt;
Lib.Objects[Index] := TObject(V);
Lib.Sorted := True;
end;
SaveLib;
end;
procedure TMainForm.CopyGameActionExecute(Sender: TObject);
var
MoveNo: Integer;
Item: TListItem;
CurrentSt: string;
AllParty: TStringList;
procedure Add(const St: string);
begin
if Length(CurrentSt) + Length(St) + 1 > MAX_LEN then
begin
AllParty.Add(CurrentSt);
CurrentSt := '';
end;
if CurrentSt <> '' then CurrentSt := CurrentSt + ' ';
CurrentSt := CurrentSt + St;
end;
begin
AllParty := TStringList.Create;
try
CurrentSt := '';
for MoveNo := 0 to PartyView.Items.Count-1 do
begin
Item := PartyView.Items[MoveNo];
Add(Item.Caption + '.');
Add(Item.SubItems[0]);
if Item.SubItems.Count > 1 then
Add(Item.SubItems[1]);
end;
if CurrentSt <> '' then AllParty.Add(CurrentSt);
Clipboard.AsText := AllParty.Text;
finally
AllParty.Free;
end;
end;
end.
Размещено на Allbest.ru
...Подобные документы
Применение языка Delphi в качестве языка программирования для реализации игры "Разноцветные кубики". Методы заполнения квадратной матрицы. Разработка алгоритма решения задачи, структурная организация данных. Характеристика программного средства.
курсовая работа [281,8 K], добавлен 14.05.2013История возникновения и происхождения игры в шашки, ее популярность. Классификация шашечных игр по размерам доски и особенностям правил, виды и варианты шашек. Правила воспроизведения сражений в "Русские шашки". Составление алгоритма и кода программы.
курсовая работа [250,3 K], добавлен 28.01.2012Исследование общих правил игры в шашки, инструкции пользователя и программиста. Характеристика основных алгоритмов, исполняющих задачи класса Life Widget. Оценка ходов компьютера и человека. Построение дерева поиска лучшего хода исходя из оценки функций.
контрольная работа [1,3 M], добавлен 20.12.2012Определение унитарных и бинарных функций. Представление булевых функций: дизъюнктивная и конъюнктивная нормальная форма. Общая характеристика правил и стратегии игры в шашки. Особенности математической модели цифрового устройства для игры в шашки.
курсовая работа [544,0 K], добавлен 28.06.2011Объектно-ориентированное программирование: понятие и содержание, история зарождения и развития, особенности и принципы реализации. Структура и назначение разрабатываемой программы, используемые технические и программные средства, формирование инструкции.
курсовая работа [1,2 M], добавлен 17.04.2013Обоснование выбора языка программирования. Анализ входных и выходных документов. Логическая структура базы данных. Разработка алгоритма работы программы. Написание программного кода. Тестирование программного продукта. Стоимость программного продукта.
дипломная работа [1008,9 K], добавлен 13.10.2013Общие сведения и существующие среды реализации компьютерной игры "Лабиринт". Разработка алгоритмов в виде блок-схемы, принципы программной реализации игры. Особенности тестирования разработанного программного продукта. Аспекты эксплуатации продукта.
курсовая работа [1,4 M], добавлен 18.01.2017Архитектура программного продукта и требования к платформе, обоснование выбора разработки. Закономерности и основные этапы алгоритмизации и программирования, а также отладка и тестирование продукта. Разработка и содержание руководства пользователя.
дипломная работа [2,3 M], добавлен 19.01.2017Приемы практического использования объектно-ориентированного подхода в создании законченного программного продукта. Разработка кроссплатформенной компьютерной игры "Морской бой". Принципы "хорошего стиля программирования C++/Qt". Описание классов игры.
курсовая работа [2,7 M], добавлен 12.08.2014Технологии разработки программного обеспечения. Процедура постановки задачи, определения требований. Последовательность действий логической, разветвленной и циклической структуры. Терминология программирования. Этапы создания программного продукта.
презентация [793,8 K], добавлен 15.11.2010Обзор методов и средств реализации поставленной задачи. Описание компьютерной игры "Японские кроссворды". Обоснование инструментария разработки программного продукта. Алгоритмический анализ задачи. Графический интерфейс и лингвистическое обеспечение.
курсовая работа [725,4 K], добавлен 27.08.2013Проектирование игры "Морской бой" путем составления диаграмм UML, IDEF0, DFD, моделирующих требования к программе. Разработка программы с использованием языка C# и фреймворка.NETFramework 3.5. Тестирование белого ящика и альфа-тестирование продукта.
курсовая работа [3,9 M], добавлен 24.10.2013Обзор существующих решений и обоснование выбора языка программирования. Разработка структурной схемы, интерфейса программного продукта. Технические требования к оборудованию, тест программного продукта, руководство системного программиста и оператора.
дипломная работа [2,0 M], добавлен 10.07.2012Анализ требований к программному продукту. Требования к информационной и программной совместимости. Проектирование архитектуры программного продукта. Виды программ и программных документов. Общие сведения о С++. Технология разработки программного модуля.
дипломная работа [1,2 M], добавлен 05.08.2011Характеристика программного продукта и стадий разработки. Расчет затрат на разработку и договорной цены, эксплуатационных расходов, связанных с использованием нового программного продукта. Оценка конкурентоспособности. Изучение, оценка рыночного спроса.
курсовая работа [139,0 K], добавлен 22.09.2008Обоснование выбора метода проектирования и инструментальных средств для разработки программного средства и базы данных. Требования к эргономике и технической эстетике. Разработка алгоритмов приложения. Руководство пользователя. Безопасность труда.
дипломная работа [2,9 M], добавлен 17.10.2014Входные и выходные данные программы. Выбор языка программирования. Рабочая среда Delphi 7. Правила игры "Кости". Разработка пользовательского интерфейса. Экономическое обоснование программного продукта. Расчет расходов на содержание и эксплуатацию.
дипломная работа [960,6 K], добавлен 07.02.2016Анализ криптографических методов шифрования данных. Разработка криптосистемы, основанной на схеме Эль-Гамаля. Определение функциональных и нефункциональных требований. Выбор языка программирования и среды разработки. Тестирование программного продукта.
дипломная работа [1,6 M], добавлен 17.07.2016Обоснование выбора языка, виды языков программирования. Характеристика программного продукта, постановка задачи, методы решения, программная реализация, программная документация. Руководство по использованию программы. Защита программного продукта.
дипломная работа [1,6 M], добавлен 22.02.2010Этапы разработки и отладки приложения "Помощь почтальону". Составление сопроводительной документации. Выбор средств и методов программирования. Анализ проектных данных. Особенности создания базы данных, СУБД. Тестирование созданного программного продукта.
контрольная работа [2,5 M], добавлен 17.12.2014