Разработка рабочего проекта




 

Разработка программы

 

Программа имеет имя 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 < nw * nh * 10; i++), где nw * nh * 10 - кол-во перестановок происходит анализ перемещения фрагментов картинки и определяется фишка, которую нужно переместить в пустую клетку, запоминаем координаты пустой фишки.

Метод 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.

 

Спецификация программы

 

Основные требования:

загрузка картинки из файла изображения. BMP;

разбиение картинки на 15 фрагментов и расположение их случайным образом на игровом поле 4х4, для чего использовать генератор случайных чисел;

последняя ячейка игрового поля должна быть свободной, она используется для помещения в нее фрагмента картинки;

фрагмент может быть перемещен в пустое поле, если он находится рядом с пустой клеткой;

использовать классы, методы и функции C#;

ввод исходных данных производить из файла изображения;

вывод данных производить в матрицу;

закончить игру, когда картинка будет собрана;

предложить начать новую игру или закончить игру.

 

Описание программы

 

Программа "Собери картинку" разбивает картинку на фрагменты и предлагает их собрать. Игра умеет работать с файлами расширения bmp. Играющий, используя резервную клеточку, с помощью мыши перемещает фишки с фрагментами картинки таким образом, чтобы собрать целостную картинку.

Программа располагает на экране игровое поле размером 4*4. На поле расположены случайным образом фрагменты картинки, которые программа получает путем разбиения картинки, находящейся в файлах изображения (BMP) и одна пустая клеточка, в которую игрок может помещать нужный фрагмент картинки. Фрагменты картинки располагаются случайным образом.

Фишка, которую пользователь собирается переместить, должна располагаться рядом с пустой клеточкой. Если данное условие выполняется, то игрок может переместить фишку в пустую клетку, иначе игрок выбирает новую фишку. Игра продолжается до тех пор, пока игрок не соберет картинку, либо не пожелает выйти из игры досрочно.

В процессе игры программа должна фиксировать число перемещений фишек сделанных игроком. После того, как картинка будет собрана, программа сравнивает результат с другими результатами и, если он превосходит один из рекордов, то сразу заносится в таблицу результатов.

Картинка хранится в файле изображения (BMP), который при начале игры загружается. Выходные данные помещаются в двухмерный массив, который выводится на экран.

 

Тестирование программы

 

Тестирование игры - это один из ключевых этапов разработки, требующий самого пристального внимания

Разнообразные подходы к тестированию игр на наличие ошибок и совместимость можно разбить на две группы.

Бета-тестирование (тестирование предварительной версии) начинается, когда игра находится на стадии между поздней альфа - и ранней бета-версией, отсюда и название. Этот весьма трудоемкий этап в создании игры "на совести" собственно разработчика и его проводят по-разному. В ряде случаев бета-тестирование доверяют пользователям.

Контроль качества осуществляется специалистами по тестированию, не имеющими отношения к разработке игры и не являющимися игроками. Он проводится по спецификации выпуска продукта, определяющей поддерживаемые конфигурации аппаратного и программного обеспечения, и завершает собой производственной цикл создания игры. Перед выпуском игры анализируются также присланные сообщения об ошибках и другие замечания. После выхода игры в свет группа технической поддержки рассматривает жалобы пользователей, а разработчики внимательно изучают группы новостей и веб-форумы. В результате составляется и систематизируется список замечаний, на базе которого выпускается первый патч.

Тестируя игры, следует придерживаться трех важнейших правил: а) не отлынивать от тщательного описания ошибок и всегда заносить ошибки в базу данных; б) прежде чем зафиксировать ошибку, необходимо тщательно исследовать проблему; в) проверять, проверять и еще раз проверять.

Для тестирования созданной программы "собери картинку" ее достаточно запустить и убедиться, что программа разбивает картинку на 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 с.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-08-04 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: