Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Алгоритм реализации игровой программы




Алгоритм реализации работы

Запуск программы осуществляется следующим образом: необходимо открыть папку, содержащую данную игру, и найти исполняемый файл morb.exe. На этом файле следует выполнить двойной щелчок левой клавишей манипулятора мышь.

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

Модуль Unit2 предназначен для вывода окна, содержащего информацию о программе и об авторе (Рисунок.1).

 

Модуль Unit1 является основным модулем проекта, содержащим все необходимые для работы программы процедуры.

После запуска программы на экран выводится основная форма Form1 (Рисунок.2), на которой расположены следующие объекты:


1. Главное меню

2. Игровое поле человека

 

Рисунок.1 О программе

Рисунок.2 Окно после запуска программы

Игра, т. е. работа программы начинается сразу после запуска, так же при запуске начинается случайная расстановка кораблей компьютера (См. приложение). (процедура FormCreate)

Каждое из полей (игрока и компьютера) представляет собой матрицу 10 на 10 в самом начале заполненную нолями. К тому же поля как игрока так и компьютера представляют собой картинку которая изменяется при том или ином действии.

Расстановка кораблей противника происходит от 4х палубного к одно палубному.

Координаты четырехпалубного корабль выбираются случайно (переменная m и переменная n) случайно лишь с условием того чтобы он не выходил за границы поля при этом выбирается случайное горизонтальное или вертикальное положение (переменная z). При этом координаты корабля помечаются цифрами «2» в матрице.

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

Однопалубным кораблям незачем проверка выхода за границы поля, поэтому проверка происходит только на пересечение и соприкосновение.

К тому же расстановка трехпалубных кораблей происходит в цикле до тех пор, пока не будет расстановлено два корабля, двухпалубные – пока не буду расстановлены три корабля, и однопалубные – пока не будут расстановлены четыре корабля.

Первоначально на форму выводится сообщение «Расставьте корабли», это означает, что игроку следует расставить свои корабли перед началом работы.

Процедура rastkor.

При передвижении мыши по полю игрока ячейкам матрицы (в зависимости от расстанавливаемого корабля) присваивается значение 1. При этом при каждом изменении происходит прорисовка матрицы, для того чтобы пользователь мог видеть происходящие изменения.

При изменении ячейка матрицы со значением «0» рисуется белым квадратом, со значением «1» желтым.

При нажатии правой клавиши мыши происходит ротация корабля, проверка на ротацию происходит перед движением мыши.

 

Расстановка корабля происходит по нажатии левой клавиши мыши на поле игрока.

Процедура nash

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

Также каждый из кораблей расстанавливается в зависимости от количества его палуб, т.е. четырехпалубный – один, трехпалубных – два, двухпалубных – три, однопалубных – четыре.

При этом ячейке матрицы поля игрока присваивается значение «2». После каждого нажатия происходит прорисовка поля игрока, для этого каждая ячейка с цифрой «2» закрашивается серым.

 

После того как все корабли расставлены (k11<0) начинается обмен выстрелами с компьютером.

Процедура vistrel.

Выстрел производится при нажатии на одну из клеток поля компьютера. Если ячейка имеет значение «0»(пустая клетка) то ячейке присваивается значение «3», ячейка имеет значение «2» то ячейке присваивается значение «4».

Затем происходит прорисовка поля компьютера. Клетка которой соответствует ячейка со значением «3» рисуется маленький квадрат, клетка которой соответствует ячейка со значением «4» проверяется ранен или убит корабль если убит то рисуется красный квадрат, если ранен то рисуется серый квадрат перечеркнутый красным крестом.

После происходит проверка выиграл ли игрок или нет, для этого матрица компьютера сканируется и если не находится ни одной ячейки со значением «2» то выходит сообщение –

 

«Поздравляю!

Вы победили.»

 

Если не находится то проверяется если игрок опал в ячейку со значением «2» то ему предоставляется ещё один выстрел, и т. д. пока игрок не попадет в ячейку со значением «0».

Тогда наступает очередь хода компьютера.

Компьютер выбирает произвольную клетку из поля игрока и если её значение равно «0» то значение становится равным «3», если значение равно «2» от значение клетки становится равным «4».

Затем происходит прорисовка поля компьютера. Клетка которой соответствует ячейка со значением «3» рисуется маленький квадрат, клетка которой соответствует ячейка со значением «4» проверяется ранен или убит корабль если убит то рисуется красный квадрат, если ранен то рисуется серый квадрат перечеркнутый красным крестом.

Компьютер стреляет до тех пор пека не попадет в клетку со значением «0».

После происходит проверка проиграл ли игрок или нет, для этого матрица игрока сканируется и если не находится ни одной ячейки со значением «2» то выходит сообщение –

 

«Вы проиграли.

Попробуйте ещё раз!»

 

Более подробно смотрите исходный текст программы Приложение 1.

 




Поделиться с друзьями:


Дата добавления: 2015-08-31; Просмотров: 496; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.