Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Тестирование разработанного программного продуктаСодержание книги
Поиск на нашем сайте Соответствие поставленной задаче. Разработанное игровое программное приложение (Развивающая игра «Морской бой») отвечает всем необходимым требованиям, реализует все необходимые функции и полностью соответствует поставленной задаче. Аппаратные требования. Тестирование разработанного приложения проводилось на компьютерах различной производительности и под различными операционными системами. Разработанное программное приложение показало высокую надёжность и стабильность работы даже на достаточно слабых компьютерах. В частности, полноценная и вполне комфортная работа возможна даже на компьютерах Intel Pentium-3 с частотой 400 МГц и объёмом установленной оперативной памяти 512 МБ. Рекомендуемое разрешение экрана при работе с данным приложением составляет 800х600 пикселей и более, при глубине цвета от 16 бит и выше. Работа возможна и при более низких разрешениях (640х480) и глубине цвета (8 бит), однако комфортность работы при этом резко падает. Совместимость. В тестах на совместимость с различными операционными системами разработанное программное приложение показало стабильную, устойчивую работу во всех операционных системах, начиная с версии Windows XP и заканчивая Windows-8. На более ранних версиях операционных систем – тестирование не проводилось. Простота использования, Эргономичность. Как показало проведённое тестирование разработанное приложение удобно в использовании, интерфейс прозрачен и интуитивно понятен. Выявленные недостатки Единственным недостатком, выявленным в процессе тестирования является несовместимость системы помощи «Help» с операционными системами «Windows 7» и «Windows 8». Это обусловлено тем, что подпроект системы помощи был собран в старой версии инструментальной среды «Delphi».
ЗАКЛЮЧЕНИЕ Целью данного курсового проекта являлось проектирование и разработка игрового программного приложения (Развивающая игра «Морской бой»), предназначенного для стимуляции и развития у детей дошкольного и младшего школьного возраста таких навыков, как: логика мышления, воображение; планирование собственных действий. В ходе проделанной работы: Ø рассмотрены виды и классификация компьютерных игр и особенности их интерфейсов; Ø изучены возможности инструментальной среды «Delphi» при проектировании и разработке игровых программных приложений; Ø разработаны алгоритмы, реализующие логику поведения компьютерного интеллекта, отвечающего за действия виртуального игрока; Ø спроектировано и реализовано развивающее игровое программное приложение (Развивающая игра «Морской бой»), обладающее развитым мультимедийным интерфейсом и встроенной логикой; Ø проведено тестирование разработанного приложения на его соответствие поставленной задаче, работоспособность, устойчивость и совместимость с различными операционными системами. Проектирование и разработка были выполнены в инструментальной среде «Delphi 2006 Explorer».Данный выбор был детально обоснован. Проведённое финальное тестирование показало, что разработанное приложение: v полностью соответствует поставленной цели; v отвечает всем необходимым требованиям; v реализует все заявленные функции; v совместимо с большинством операционных систем линейки «Windows»; v нетребовательно к аппаратным ресурсам компьютера (работа возможна даже на компьютерах модели Pentium-3 с частотой 400 МГц.); v обладает простым, наглядным, интуитивно-понятным интерфейсом; v стимулирует развитие у детей дошкольного и младшего школьного возраста логику мышления, воображение, способность планирования собственных действий. Дополнительно можно отметить, что разработанное приложение: Ø может быть использовано в качестве базы программного кода при разработке более сложных программных приложений, использующих различные мультимедийные данные. Ø представляет собой готовый шаблон для разработки приложений, управляемых событиями с элементами автоматического принятия решений на основе встроенной логики. Кроме того, разработанное приложение является полноценной компьютерной игрой и может быть использовано по своему прямому назначению. В ходе работы все задачи решены, поставленная цель достигнута.
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ Международные стандарты
Стандарты РФ в соответствии со стандартами ISO
Стандарты «Единой Системы Программной Документации»:
По разработке информационных систем и программированию
ПРИЛОЖЕНИЯ Приложение 1. Руководство пользователя Запуск приложения. Приложение полностью готово к использованию и не требует никаких предварительных настроек. Для запуска программы достаточно запустить исполняемый файл: «Project1.exe» Расстановка кораблей. В начале игры пользователю необходимо расположить на своём игровом поле (левое поле) собственные корабли. При этом в правом игровом поле (поле виртуального противника) выдаётся соответствующая подсказка. Расстановка кораблей осуществляется нажатием левой кнопки «Мыши» и сопровождается характерным звуковым сигналом. Контроль положения кораблей пользователя выполняется автоматически, что не позволит пользователю расположить их в положениях, запрещённых правилами игры. После того, как все корабли игрока расставлены приложение автоматически переходит в состояние «Игра» Игра. При входе в режим «Игра», подсказка в правом поле (поле виртуального противника) исчезает, а само поле превращается в координатную сетку поля боя. Нанесение ударов осуществляется пользователем нажатиями левой кнопки «мыши» в пределах квадратов координатной сетки поля виртуального противника. Каждый выстрел сопровождается соответствующим звуковым фрагментом. В случае промаха соответствующая клетка поля боя помечается точкой. В случае попадания – в клетке отображается часть пораженного корабля виртуального противника. Завершение игры. Игра завершается в четырёх случаях: 1. Пользователь выиграл. В этом случае выдаётся соответствующее сообщение и проигрывается победная музыка. 2. Пользователь проиграл. В этом случае также выдаётся соответствующее сообщение и проигрывается музыка поражения. 3. Пользователь может прервать игру и переиграть её заново нажав пункт меню «Новая игра». 4. Пользователь может просто закрыть приложение нажав стандартную кнопку закрытия окна.
Приложение 2. Исходный код главного модуля программы «Project1.dpr» program Project1; Uses Forms, Unit1 in 'Unit1.pas' {Form1}, Unit2 in 'Unit2.pas' {Form2}; {$R *.res} // Основные Ресурсы {$R Dop_resources.RES} // Дополнительные Ресурсы (Звуки) Begin Application.Initialize; //Application.HelpFile:= 'F:\Информатика\Курсовая\Delphi\работа\исодник программы\morb.HLP'; Application.HelpFile:= 'morb.HLP'; Application.Title:= 'Морской бой'; Application.CreateForm(TForm1, Form1); Application.CreateForm(TForm2, Form2); Application.Run; End.
Приложение 3. Исходный код модуля первой формы «Unit1.pas»
unit Unit1; Interface Uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, Menus, XPMan, Mmsystem; Type TForm1 = class(TForm) Panel1: TPanel; Image1: TImage; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel; Label9: TLabel; Label10: TLabel; Label11: TLabel; Label25: TLabel; Panel2: TPanel; Image2: TImage; Label13: TLabel; Label14: TLabel; Label15: TLabel; Label16: TLabel; Label17: TLabel; Label18: TLabel; Label19: TLabel; Label20: TLabel; Label21: TLabel; Label22: TLabel; Label23: TLabel; Label26: TLabel; MainMenu1: TMainMenu; N1: TMenuItem; N2: TMenuItem; N3: TMenuItem; N4: TMenuItem; N6: TMenuItem; N5: TMenuItem; Label12: TLabel; Label24: TLabel; Label27: TLabel; Label28: TLabel; Label29: TLabel; procedure FormCreate(Sender: TObject); procedure rastkor(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure nash(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure N2Click(Sender: TObject); procedure vistrel(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure N3Click(Sender: TObject); procedure N5Click(Sender: TObject); procedure N6Click(Sender: TObject); private { Private declarations } public { Public declarations } end; Var Form1: TForm1; i, j, g, x 1, y 1, k 11, k 21, k 33, k 32, k 31, m 3, m 2, m 1, //кол-во 3х 2х 1х кораблей m, n, z: integer; rot, //ротация кораблей riad, rnd, //для того что бы рядом не ставились,нужна для рандомирования win, lose, //проверка на победу или поражение bum, //проверка выстрела компьютера kon, //проверка конца игры cokil: boolean; //попал ли комрьютер b1,b2:Array[1..14,1..14] of integer; Implementation uses Unit2; {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); Begin PlaySound('START_WAV', HInstance, SND_RESOURCE or SND_ASYNC or SND_NOWAIT); rot:= false; //заполнение переменных kon:= false; k11:=3; k33:=2; k32:=5; k31:=9; m3:=0; m2:=0; m1:=0; label13.Height:=0; label14.Height:=0; label15.Height:=0; label16.Height:=0; label17.Height:=0; label18.Height:=0; label19.Height:=0; label20.Height:=0; label21.Height:=0; label22.Height:=0; label23.Height:=0; label26.Height:=0; label12.Caption:='Расставьте корабли'; For i:=1 to 10 do //рисует сетку поля игрока for j:=1 to 10 do begin b1[i,j]:=0; image1.Canvas.Rectangle(20*i-20,20*j-20,20*i,20*j); end; randomize; m:=random(10)+1; n:=random(10)+1; z:=(random (100) mod 2); //расстановка клораблей компьютера //четырехпалубный Case n of 1..7: case m of 1..7: for i:=0 to 3 do if z=0 then b2[m+i,n]:=2 else b2[m,n+i]:=2; 8..10: for i:=0 to 3 do if z=0 then b2[m-i,n]:=2 else b2[m,n+i]:=2; end; 8..10: case m of 1..7: for i:=0 to 3 do if z=0 then b2[m+i,n]:=2 else b2[m,n-i]:=2; 8..10: for i:=0 to 3 do if z=0 then b2[m-i,n]:=2 else b2[m,n-i]:=2; end; end; //трехпалубные while m3<2 do begin m:=random(10)+1; n:=random(10)+1; z:=(random(100) mod 2); Case n of 1..7: case m of 1..7: case z of 0: if (b2[m,n]<>2) and (b2[m-1,n-1]<>2) and (b2[m-1,n]<>2) and (b2[m-1,n+1]<>2) and (b2[m,n-1]<>2)and (b2[m+1,n+1]<>2)and (b2[m+1,n]<>2) and (b2[m+1,n-1]<>2) and (b2[m,n+1]<>2) and (b2[m+1,n+2]<>2) and (b2[m-1,n+2]<>2) and (b2[m,n+2]<>2) and (b2[m+1,n+3]<>2) and (b2[m-1,n+3]<>2) and (b2[m,n+3]<>2) and (b2[m,n+3]<>2) then begin for i:=0 to 2 do b2[m,n+i]:=2; m3:=m3+1 end; 1: if (b2[m,n]<>2) and (b2[m+1,n+1]<>2) and (b2[m,n+1]<>2) and (b2[m-1,n+1]<>2) and (b2[m-1,n]<>2)and (b2[m-1,n-1]<>2)and (b2[m,n-1]<>2) and (b2[m+1,n-1]<>2) and (b2[m+1,n]<>2) and (b2[m+2,n-1]<>2) and (b2[m+2,n+1]<>2) and (b2[m+2,n]<>2) and (b2[m+3,n-1]<>2) and (b2[m+3,n+1]<>2) and (b2[m+3,n]<>2) and (b2[m+3,n]<>2) then begin for i:=0 to 2 do b2[m+i,n]:=2; m3:=m3+1 end end; 8..10: case z of 0: if (b2[m,n]<>2) and (b2[m+1,n+1]<>2) and (b2[m,n+1]<>2) and (b2[m-1,n+1]<>2) and (b2[m-1,n]<>2)and (b2[m-1,n-1]<>2)and (b2[m,n-1]<>2) and (b2[m+1,n-1]<>2) and (b2[m-2,n-1]<>2) and (b2[m-2,n+1]<>2) and (b2[m-2,n]<>2) and (b2[m-3,n-1]<>2) and (b2[m-3,n+1]<>2) and (b2[m-3,n]<>2) then begin for i:=0 to 2 do b2[m-i,n]:=2; m3:=m3+1 end; 1: if (b2[m,n]<>2) and (b2[m-1,n-1]<>2) and (b2[m-1,n]<>2) and (b2[m-1,n+1]<>2) and (b2[m,n-1]<>2)and (b2[m+1,n+1]<>2)and (b2[m+1,n]<>2) and (b2[m+1,n-1]<>2) and (b2[m,n+1]<>2) and (b2[m+1,n+2]<>2) and (b2[m-1,n+2]<>2) and (b2[m,n+2]<>2) and (b2[m+1,n+3]<>2) and (b2[m-1,n+3]<>2) and (b2[m,n+3]<>2) and (b2[m,n+3]<>2) then begin for i:=0 to 2 do b2[m,n+i]:=2; m3:=m3+1 end; end end; 8..10: case m of 1..7: case z of 0: if (b2[m,n]<>2) and (b2[m+1,n+1]<>2) and (b2[m,n+1]<>2) and (b2[m-1,n+1]<>2) and (b2[m-1,n]<>2)and (b2[m-1,n-1]<>2)and (b2[m,n-1]<>2) and (b2[m+1,n-1]<>2) and (b2[m+2,n-1]<>2) and (b2[m+2,n+1]<>2) and (b2[m+2,n]<>2) and (b2[m+3,n-1]<>2) and (b2[m+3,n+1]<>2) and (b2[m+3,n]<>2) then begin for i:=0 to 2 do b2[m+i,n]:=2; m3:=m3+1 end; 1: if (b2[m,n]<>2) and (b2[m-1,n-1]<>2) and (b2[m-1,n]<>2) and (b2[m-1,n+1]<>2) and (b2[m,n-1]<>2)and (b2[m+1,n+1]<>2)and (b2[m+1,n]<>2) and (b2[m+1,n-1]<>2) and (b2[m+1,n-2]<>2) and (b2[m-1,n-2]<>2) and (b2[m,n-2]<>2) and (b2[m+1,n-3]<>2) and (b2[m-1,n-3]<>2) and (b2[m,n-3]<>2) then begin for i:=0 to 2 do b2[m,n-i]:=2; m3:=m3+1 end end; 8..10: case z of 0: if (b2[m,n]<>2) and (b2[m-1,n-1]<>2) and (b2[m-1,n]<>2) and (b2[m-1,n+1]<>2) and (b2[m,n-1]<>2)and (b2[m+1,n+1]<>2)and (b2[m+1,n]<>2) and (b2[m+1,n-1]<>2) and (b2[m+1,n-2]<>2) and (b2[m-1,n-2]<>2) and (b2[m,n-2]<>2) and (b2[m+1,n-3]<>2) and (b2[m-1,n-3]<>2) and (b2[m,n-3]<>2) then begin for i:=0 to 2 do b2[m,n-i]:=2; m3:=m3+1 end; 1: if (b2[m,n]<>2) and (b2[m+1,n+1]<>2) and (b2[m,n+1]<>2) and (b2[m-1,n+1]<>2) and (b2[m-1,n]<>2)and (b2[m-1,n-1]<>2)and (b2[m,n-1]<>2) and (b2[m+1,n-1]<>2) and (b2[m-2,n-1]<>2) and (b2[m-2,n+1]<>2) and (b2[m-2,n]<>2) and (b2[m-3,n-1]<>2) and (b2[m-3,n+1]<>2) and (b2[m-3,n]<>2) then begin for i:=0 to 2 do b2[m-i,n]:=2; m3:=m3+1 end end end End end; //двухпалубные while m2<3 do begin m:=random(10)+1; n:=random(10)+1; z:=(random(100) mod 2); Case n of 1..8: case m of 1..8: case z of 0: if (b2[m,n]<>2) and (b2[m-1,n-1]<>2) and (b2[m-1,n]<>2) and (b2[m-1,n+1]<>2) and (b2[m,n-1]<>2)and (b2[m+1,n+1]<>2)and (b2[m+1,n]<>2) and (b2[m+1,n-1]<>2) and (b2[m,n+1]<>2) and (b2[m+1,n+2]<>2) and (b2[m-1,n+2]<>2) and (b2[m,n+2]<>2) then begin for i:=0 to 1 do b2[m,n+i]:=2; m2:=m2+1 end; 1: if (b2[m,n]<>2) and (b2[m+1,n+1]<>2) and (b2[m,n+1]<>2) and (b2[m-1,n+1]<>2) and (b2[m-1,n]<>2)and (b2[m-1,n-1]<>2)and (b2[m,n-1]<>2) and (b2[m+1,n-1]<>2) and (b2[m+1,n]<>2) and (b2[m+2,n-1]<>2) and (b2[m+2,n+1]<>2) and (b2[m+2,n]<>2) then begin for i:=0 to 1 do b2[m+i,n]:=2; m2:=m2+1 end end; 9..10: case z of 0: if (b2[m,n]<>2) and (b2[m+1,n+1]<>2) and (b2[m,n+1]<>2) and (b2[m-1,n+1]<>2) and (b2[m-1,n]<>2)and (b2[m-1,n-1]<>2)and (b2[m,n-1]<>2) and (b2[m+1,n-1]<>2) and (b2[m-2,n-1]<>2) and (b2[m-2,n+1]<>2) and (b2[m-2,n]<>2) then begin for i:=0 to 1 do b2[m-i,n]:=2; m2:=m2+1 end; 1: if (b2[m,n]<>2) and (b2[m-1,n-1]<>2) and (b2[m-1,n]<>2) and (b2[m-1,n+1]<>2) and (b2[m,n-1]<>2)and (b2[m+1,n+1]<>2)and (b2[m+1,n]<>2) and (b2[m+1,n-1]<>2) and (b2[m,n+1]<>2) and (b2[m+1,n+2]<>2) and (b2[m-1,n+2]<>2) and (b2[m,n+2]<>2) then begin for i:=0 to 1 do b2[m,n+i]:=2; m2:=m2+1 end; end end; 9..10: case m of 1..8: case z of 0: if (b2[m,n]<>2) and (b2[m+1,n+1]<>2) and (b2[m,n+1]<>2) and (b2[m-1,n+1]<>2) and (b2[m-1,n]<>2)and (b2[m-1,n-1]<>2)and (b2[m,n-1]<>2) and (b2[m+1,n-1]<>2) and (b2[m+2,n-1]<>2) and (b2[m+2,n+1]<>2) and (b2[m+2,n]<>2) then begin for i:=0 to 1 do b2[m+i,n]:=2; m2:=m2+1 end; 1: if (b2[m,n]<>2) and (b2[m-1,n-1]<>2) and (b2[m-1,n]<>2) and (b2[m-1,n+1]<>2) and (b2[m,n-1]<>2)and (b2[m+1,n+1]<>2)and (b2[m+1,n]<>2) and (b2[m+1,n-1]<>2) and (b2[m+1,n-2]<>2) and (b2[m-1,n-2]<>2) and (b2[m,n-2]<>2) then begin for i:=0 to 1 do b2[m,n-i]:=2; m2:=m2+1 end end; 9..10: case z of 0: if (b2[m,n]<>2) and (b2[m-1,n-1]<>2) and (b2[m-1,n]<>2) and (b2[m-1,n+1]<>2) and (b2[m,n-1]<>2)and (b2[m+1,n+1]<>2)and (b2[m+1,n]<>2) and (b2[m+1,n-1]<>2) and (b2[m+1,n-2]<>2) and (b2[m-1,n-2]<>2) and (b2[m,n-2]<>2) then begin for i:=0 to 1 do b2[m,n-i]:=2; m2:=m2+1 end; 1: if (b2[m,n]<>2) and (b2[m+1,n+1]<>2) and (b2[m,n+1]<>2) and (b2[m-1,n+1]<>2) and (b2[m-1,n]<>2)and (b2[m-1,n-1]<>2)and (b2[m,n-1]<>2) and (b2[m+1,n-1]<>2) and (b2[m-2,n-1]<>2) and (b2[m-2,n+1]<>2) and (b2[m-2,n]<>2) then begin for i:=0 to 1 do b2[m-i,n]:=2; m2:=m2+1 end end end End end; //подлодки while m1<4 do begin m:=random(10)+1; n:=random(10)+1; while m1<4 do begin m:=random(10)+1; n:=random(10)+1; if (b2[m,n]<>2) and (b2[m+1,n+1]<>2) and (b2[m,n+1]<>2) and (b2[m-1,n+1]<>2) and (b2[m-1,n]<>2)and (b2[m-1,n-1]<>2)and (b2[m,n-1]<>2) and (b2[m+1,n-1]<>2) and (b2[m+1,n]<>2) then begin b2[m,n]:=2; m1:=m1+1; End end; end; end;
|
||
|
Последнее изменение этой страницы: 2021-05-12; просмотров: 128; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.156 (0.011 с.) |