Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 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; просмотров: 60; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.22.242.141 (0.317 с.) |