Федеральное Государственное образовательное учреждение
Калачевский техникум-интернат
Федерального Агентства по Здравоохранению и Социальномуобеспечению
КУРСОВАЯ РАБОТА
По дисциплине
«Технология разработки программных продуктов»
тема: «Разработка программы игры „Собери картинку“»
Выполнил студент
группы Т-43
Шипаев Ю.Н.
Специальность №230105
«Программное обеспечение
вычислительной техники автоматизированныхсистем»
Преподаватель: Логачёва Е.Г.
Калач-на-Дону 2010 г.
Содержание
Введение
1. Разработка эскизного и технического проекта программы
1.1 Назначение и область применения
1.2 Технические характеристики
2. Разработка рабочего проекта
2.1 Разработка программы
2.2 Спецификация программы
2.3 Описание программы
2.4 Тестирование программы
Заключение
Список литературы
Введение
Все, кто имеет дело скомпьютером, так или иначе сталкивались с компьютерными играми, и подавляющеебольшинство может сходу назвать несколько игр, которые им особенно понравились.Те, кто уже совсем наигрался, почти наигрался или ещене наигрался, но в процессе общения с компьютеромуже начал совмещать игры с чем-нибудь болееполезным, возможно, хотели бы придумать какие-нибудь свои, не похожие ни накакие другие игры.
Многое захватывает в такомтворчестве. И не сам процесс игры, а разработка игровой вселенной, еепроектирование и реализация. Когда можно слить воедино сценарий, графику,музыку, искусно задуманный и умело запрограммированный алгоритм — создатьединый фантастический мир, живущий по законам, которые ты же для него ипридумал. В последнее время в общем объеме вновь создаваемого программногообеспечения различного назначения увеличивается доля net-приложений — программ,ориентированных на платформу Microsoft.net. Этообъясняется, прежде всего, новыми возможностями, которые предоставляетплатформа прикладным программам, а также тем, что технология.net поддерживаетсяновейшими операционными системами.
Microsoft.net- это технология, в основе которой лежит идея универсального программного кода,который может быть выполнен любым компьютером, вне зависимости от используемойоперационной системы. Универсальность программного кода обеспечивается за счетпредварительной (выполняемой на этапе разработки) компиляции исходной программыв универсальный промежуточный код (CIL-код, Common Intermediate Language), который во время загрузкитранслируется в выполняемый. Преобразование промежуточного кода ввыполняемый осуществляет JIT-компилятор (от Jast In Time — в тот же момент, «налету»), являющийся элементом виртуальной выполняющей системы (Virtual Execution System, VES).Работу.net-приложений в операционной системе Windowsобеспечивает Microsoft.net Framework.
Цель работы: разработатьпрограмму игры «Собери картинку».
Для достижения поставленной целив работе решались следующие задачи:
разработать эскизный итехнический проект программы;
разработать рабочий проектпрограммы.
Программа игры «Соберикартинку» написана в среде программирования Microsoft Visual C#.
Среда разработки Microsoft Visual C# является инструментом разработки net-приложенийдля Windows. В ней интегрированы удобный дизайнер форм,специализированный редактор кода, отладчик, мастер публикаций и другиекомпоненты, необходимые программисту.
1. Разработка эскизного и технического проектапрограммы1.1 Назначение и область применения
Программа игры «Соберикартинку» — графический вариант хорошо известной игры «15». Еецель — расположить фишки (фрагменты картинки) в правильном порядке. Этологически не сложная и достаточно простая в управлении и использованиипрограмма.
Игра предназначена для детейдошкольного и младшего школьного возраста. Игра «Собери картинку» учитскладывать целое изображение из частей, развивает зрительное восприятие ипроизвольное внимание. Также игра позволяет знакомить детей с картинками,описывающими окружающий мир с целью его познания.
Эту программу можно использоватьпри обучении пользованию мышкой для детей с двигательными нарушениями.
Программа может бытьиспользована также любым пользователем для отвлечения от основной работы сцелью отдыха.1.2 Технические характеристики
Смоделировать логическую игру«Собери картинку» так, чтобы программа случайным образом располагалана игровом поле фрагменты картинки и одну пустую клеточку.
К логическим (иногда их называютеще классическими) играм, относятся в первую очередь те, с помощью которыхчеловечество коротало вечера до изобретения компьютера. Это карточные игры, игрысо словами и настольные игры: шахматы, шашки, нарды, крестики-нолики, маджонг,разнообразные пасьянсы. В последнее время к «классике» стали такжеотносить и простейшие компьютерные игры раннего периода, например «15»,«Собери картинку» тетрис, «Сапер» (Minesweeper) илиBust-A-Move.
Программа «Собери картинку»разбивает картинку на фрагменты и предлагает их собрать. Игра умеет работать сфайлами расширения bmp. Играющий, используя резервнуюклеточку, с помощью мыши перемещает фишки с фрагментами картинки таким образом,чтобы собрать целостную картинку.
Программа располагает на экранеигровое поле размером 4*4. На поле расположены случайным образом фрагментыкартинки, которые программа получает путем разбиения картинки, находящейся вфайлах изображения (BMP) и одна пустая клеточка, в которую игрок может помещатьнужный фрагмент картинки. Фрагменты картинки располагаются случайным образом.
Фишка, которую пользовательсобирается переместить, должна располагаться рядом с пустой клеточкой. Еслиданное условие выполняется, то игрок может переместить фишку в пустую клетку,иначе игрок выбирает новую фишку. Игра продолжается до тех пор, пока игрок не собереткартинку, либо не пожелает выйти из игры досрочно.
В процессе игры программа должнафиксировать число перемещений фишек сделанных игроком. После того, как картинкабудет собрана, программа сравнивает результат с другими результатами и, если онпревосходит один из рекордов, то сразу заносится в таблицу результатов.
Картинка хранится в файлеизображения (BMP), который при начале игры загружается. Выходные данныепомещаются в двухмерный массив, который выводится на экран.
Программа сделана на языке С# вкачестве net-приложения. Процесс создания программы состоит из двух шагов: сначаласоздается форма, затем — функции обработки событий.
Форма создается путем добавлениянеобходимых компонентов и последующей их настройки.
Основную работу в программевыполняют функции обработки.
Для написания программ на языкеC# понадобятся:
1. Пакет Microsoft.net Framework3.5 Это платформа, которая включает все необходимое для создания и запускапрограмм — библиотеки классов, компоненты и среду, где ваши приложения будутисполняться.
2. Среда разработки, для.netFramework. Среда разработки нужна для того, чтобы сделать процесс работымаксимально удобным. Мы рекомендуем Microsoft Visual C# 2008Express Edition. Если Visual C# 2008 Express уже содержит.netFramework, выполнять пункт 1 не нужно.
Программы на C# можно писать и впростом текстовом редакторе (например, в Блокноте) и компилировать (т.е. преобразовыватьпрограммный код в набор команд, понятных компьютеру) при помощи так называемого«Компилятора C#», входящего в состав.net Framework. Однакоцелесообразно использовать Visual C# Express — упрощенную среду для разработкина языке C#. В ней можно разрабатывать и приложения для Windows, и консольныеприложения с текстовым интерфейсом пользователя. Visual C# Express упроститпроцесс постижения программирования.
2. Разработка рабочего проекта2.1 Разработка программы
Программа имеет имя Kursova. Разработка программы начинается с описанияиспользуемых входных данных, в частности, задается размер игрового поля 4х4,который хранится в именованных константах nw и nh. Затем задается графическаяповерхность формы с помощью метода System. Drawing. Graphics, описываемкартинку, используя метод Bitmap. Далее задаем переменные, в которых будетхраниться высота и ширина клетки и переменные, в которых будут хранитьсякоординаты пустой клетки. Игровое поле хранит номера фрагментов картинки. Признакотображения номера фишки сначала задается как false.
Далее в программе описываютсяметоды. С помощью метода Form1 () загружаем картинку изфайла типа bmp. Определяем высоту и ширину клетки (фишки):
cw = (int) (pics. Width/ nw);
ch = (int) (pics.Height / nh);
Устанавливаем размер клиентской(внутренней) области формы: this. ClientSize = new System. Drawing. Size (cw * nw + 1, ch* nh + 1 + menuStrip1. Height); и определяем еекак рабочую графическую поверхность g = this. CreateGraphics ();
Метод private void newGame () начинает новую игру, располагает фишки вправильном порядке, последнюю фишку делаем пустой.
Метод private void mixer () перемещаетфишки. В переменной d храним положение (относительно пустой) перемещаемой клетки:0 — слева; 1 — справа; 2 — сверху; 3 — снизу. Функция Random() генерирует случайные числа от 1 до 15, в соответствии с которымирасполагаются фрагменты картинки на игровом поле. В цикле for(int i= 0; i
Метод private void drawField () обрисовывает поле. С помощью вложенного циклавыводим фишку с картинкой, где ( ( (field [i,j] — 1)% nw)* cw, (int) ( (field [i,j] — 1) / nw) * ch) — координатылевого верхнего угла области файла-источника картинки, затем выводим пустуюфишку, рисуем границы и определяем номер перемещаемой фишки.
Метод private Boolean finish () проверяет, расположены ли фишки в правильномпорядке. фишки расположены правильно, если числа в них образуют матрицу:
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15
Метод private void move (int cx, int cy) перемещает фишку, на которой сделан щелчок, в соседнююпустую клетку: (cx, cy) — клетка, в которой сделан щелчок, (ex,ey) — пустая клетка. Сначала проверим, возможен лиобмен и, если возможен, то перемещаем фишку из (x, y) в (ex, ey). Затемотрисовываем поле. После окончания игры программа предлагает сыграть еще раз: No- завершить работу программы, Yes — новая игра. С помощью функции MessageBox. Showвыводится сообщение «Поздравляю! Вы справились с поставленной задачей!.. Ещераз?», «Собери картинку». Функция MessageBoxButtons. YesNoпозволят ответить Да или Нет.
С помощью private void Form1_MouseClick (object sender, MouseEventArgs e) обрабатывается щелчок кнопкоймыши на игровом поле, то есть преобразуются координаты мыши в координаты клетки.
Метод private void новаяИграToolStripMenuItem1_Click (object sender, EventArgs e) начинает новую игру.
Листинг программы приведен вприложении 1.2.2 Спецификация программы
Основные требования:
загрузка картинки из файлаизображения. BMP;
разбиение картинки на 15фрагментов и расположение их случайным образом на игровом поле 4х4, для чегоиспользовать генератор случайных чисел;
последняя ячейка игрового полядолжна быть свободной, она используется для помещения в нее фрагмента картинки;
фрагмент может быть перемещен впустое поле, если он находится рядом с пустой клеткой;
использовать классы, методы ифункции C#;
ввод исходных данных производитьиз файла изображения;
вывод данных производить вматрицу;
закончить игру, когда картинкабудет собрана;
предложить начать новую игру илизакончить игру.2.3 Описание программы
Программа «Собери картинку»разбивает картинку на фрагменты и предлагает их собрать. Игра умеет работать сфайлами расширения bmp. Играющий, используя резервнуюклеточку, с помощью мыши перемещает фишки с фрагментами картинки таким образом,чтобы собрать целостную картинку.
Программа располагает на экранеигровое поле размером 4*4. На поле расположены случайным образом фрагментыкартинки, которые программа получает путем разбиения картинки, находящейся вфайлах изображения (BMP) и одна пустая клеточка, в которую игрок может помещатьнужный фрагмент картинки. Фрагменты картинки располагаются случайным образом.
Фишка, которую пользовательсобирается переместить, должна располагаться рядом с пустой клеточкой. Еслиданное условие выполняется, то игрок может переместить фишку в пустую клетку,иначе игрок выбирает новую фишку. Игра продолжается до тех пор, пока игрок несоберет картинку, либо не пожелает выйти из игры досрочно.
В процессе игры программа должнафиксировать число перемещений фишек сделанных игроком. После того, как картинкабудет собрана, программа сравнивает результат с другими результатами и, если онпревосходит один из рекордов, то сразу заносится в таблицу результатов.
Картинка хранится в файлеизображения (BMP), который при начале игры загружается. Выходные данныепомещаются в двухмерный массив, который выводится на экран.2.4 Тестирование программы
Тестирование игры — это один изключевых этапов разработки, требующий самого пристального внимания
Разнообразные подходы ктестированию игр на наличие ошибок и совместимость можно разбить на две группы.
Бета-тестирование (тестированиепредварительной версии) начинается, когда игра находится на стадии междупоздней альфа — и ранней бета-версией, отсюда и название. Этот весьматрудоемкий этап в создании игры «на совести» собственно разработчикаи его проводят по-разному. В ряде случаев бета-тестирование доверяютпользователям.
Контроль качества осуществляетсяспециалистами по тестированию, не имеющими отношения к разработке игры и неявляющимися игроками. Он проводится по спецификации выпуска продукта,определяющей поддерживаемые конфигурации аппаратного и программногообеспечения, и завершает собой производственной цикл создания игры. Передвыпуском игры анализируются также присланные сообщения об ошибках и другиезамечания. После выхода игры в свет группа технической поддержки рассматриваетжалобы пользователей, а разработчики внимательно изучают группы новостей ивеб-форумы. В результате составляется и систематизируется список замечаний, набазе которого выпускается первый патч.
Тестируя игры, следуетпридерживаться трех важнейших правил: а) не отлынивать от тщательного описанияошибок и всегда заносить ошибки в базу данных; б) прежде чем зафиксироватьошибку, необходимо тщательно исследовать проблему; в) проверять, проверять иеще раз проверять.
Для тестирования созданнойпрограммы «собери картинку» ее достаточно запустить и убедиться, чтопрограмма разбивает картинку на 15 фрагментов и располагает их случайнымобразом на игровом поле. Далее, убедиться, что программа реагирует на мышь иперемещает фрагменты в нужном порядке и, в конце концов, достигается требуемыйрезультат — картинка собрана.
Результатом тестированияявляется также выявление недостатков в самом проекте данной игры. А именно,программа работает только с одной картинкой, чтобы заменить картинку необходимов исходнике заменить имя загружаемого файла и снова откомпилировать программу. Игрокне может выбрать картинку, которую он хотел бы собрать. Программа работаеттолько с одним типом файла изображения bmp. Программане имеет меню для выбора необходимого файла и не предоставляет справочнойинформации. Кроме того, программа не предоставляет возможность выбрать, насколько фрагментов разбивать картинку, а всегда разбивает на 15 фрагментов. Программатакже не имеет уровней сложности.
Заключение
Разработка программы «Соберикартинку» показывает, что данный процесс требует значительных творческих иумственных усилий, наличия определенного объема знаний по программированию наязыке C# и умелого использования этих знаний.
Кроме того, важными моментамипри разработки программы являются описание спецификации программы, алгоритма еереализации, хотя C# и предоставляет необходимые средства для упрощения процессапрограммирования.
Проведенное тестированиепрограммы позволяет сделать вывод о работоспособности программы и еесоответствии заданию. Выявленные недостатки предполагают дальнейшую работу надсовершенствованием программы, что предоставляет начинающему программистуобширное поле деятельности для повышения знаний и совершенствовании навыковпрограммирования на Си Шарп, освоении новых аспектов программирования всовременной среде.net.
В результате учета всехотмеченных при тестировании недостатков возможно улучшение созданногопрограммного продукта, на которое потребуется необходимое количество измененийисходного кода программы.
Список литературы
1. Агуров, П.В. C#. Сборник рецептов / П.В. Агуров. — СПб.: БХВ-Петербург,2007. — 411 с.
2. Буткевич, Е. Пишем программы и игры для сотовых телефонов /Е. Буткевич.- СПб.: Питер, 2006. — 204 с: ил.
3. Дрейер, М. C# для школьников: Учебное пособие / М. Дрейер. Перевод сангл. под ред.В. Биллига — М.: Интернет-Университет Информационных Технологий; БИНОМ.Лаборатория знаний, 2009. — 128 с.: ил., табл. — (Лицей информационныхтехнологий).
4. Жарков, В.А. Компьютерная графика, мультимедиа и игры на Visual C#2005 /В.А. Жарков. — М.: Жарков Пресс, 2005. — 812 с.
5. Зубкова, Т.М. Технология разработки программного обеспечения: Учебноепособие /Т.М. Зубкова. — Оренбург: ГОУ ОГУ, 2004. — 101 с.
6. Культин, Н.Б. C# в задачах и примерах /Н.Б. Культин. — СпБ.: БХВ-Петербург,2007. — 241 с.
7. Лабор, В.В. Си Шарп: Создание приложений для Windows / В.В. Лабор. — Мн.:Харвест, 2003. — 384 с.
8. Лунгу, К.Н. Линейное программирование: Руководство к решению задач /К.Н.Лунгу. — М.: ФИЗМАТЛИТ, 2005. — 128 с.
9. Мак-Дональд, Мэтью. Microsoft ASP.net 3.5 с примерами на C# 2008 дляпрофессионалов, 2-е изд.: Пер. с англ. / Мак-Дональд, Мэтью, Шпушта Марио. — М.:ООО “И.Д. Вильямс", 2008. — 1424 с.: ил.
10. Павловская Т.А. С#. Программирование на языке высокого уровня: Учебникдля вузов /Т.А. Павловская. — СПб.: Питер, 2009. — 432 с: ил.
11. Степанченко, И.В. Методы тестирования программного обеспечения: Учеб. пособие/И.В. Степанченко. — Волгоград: ВолгГТУ, 2006. — 74 с.
12. Стефан, Рэнди Дэвис. C# 2005 для «чайников» / Стефан РэндиДэвис, Чак Сфер. — М.: ИД Вильямc, 2008. — 576 с.