Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая_Программа «Морской бой».doc
Скачиваний:
23
Добавлен:
23.06.2014
Размер:
153.6 Кб
Скачать

Томский межвузовский центр дистанционного образования

Томский государственный университет

систем управления и радиоэлектроники (ТУСУР)

Кафедра автоматизированных систем управления(АСУ)

Заочный факультет

(дистанционная форма обучения)

Курсовая работа

по дисциплине «Программирование на языке высокого уровня»

специальности 230105

2005 г

СОДЕРЖАНИЕ

1.ВВЕДЕНИЕ 4

3. ИСПОЛЬЗУЕМЫЕ МЕТОДЫ, ОПИСАНИЕ АЛГОРИТМА ПРОГРАММЫ С ОПИСАНИЕМ ФУНКЦИЙ СОСТАВНЫХ ЧАСТЕЙ И СВЯЗИ МЕЖДУ НИМИ 5

Алгоритм размещения кораблей на игровом поле. 6

Игровое поле нужно как-то хранить в памяти компьютера. Наиболее простая реализация - в виде матрицы 10x10 клеток (ячеек). 6

Обусловимся, что пустая ячейка будет иметь значение -1, а ячейка, в которой находится корабль: 0. Перед началом процесса размещения кораблей необходимо очистить поле. Помимо этого надо еще и обновить счетчик случайных чисел, что бы добиться реальной случайности позиций флота компьютера. Все эти действия лучше оформить в виде отдельной процедуры: procedure Init (var Pole: TPole);. 6

По правилам игры два корабля не могут соприкасаться друг с другом, т.е. между ними должно быть пустое пространство минимум в одну клетку. Нам понадобится вспомогательная функция, которая позволит определить, можно ли поставить однопалубный корабль в указанную ячейку или нет. Для этого необходимо проверить саму эту ячейку и все соседние (их 8 штук). И только если все они не заняты можно дать положительный ответ (True), в противном случае - отрицательный (False): function Freedom (x, y: Integer; Pole: TPole): Boolean;. 6

Как известно из правил игры, на поле должны находиться следующие корабли: один четырех палубный, два трехпалубных, три двухпалубных и четыре однопалубных. Процедура, расставляющая эти корабли должна выполнять следующие действия: взять случайную свободную ячейку и проверить, можно ли поставить текущий корабль горизонтально или вертикально. Если да, то корабль размещается на игровом поле и обработка переходит к следующему. Понятно, что если нет, то возвращаемся к выбору координат. Порядок действий должен быть от большего корабля к меньшему, что бы не возникла ситуация невозможности размещения ни в одну позицию поля. Это можно достичь с помощью процедуры: procedure Ships (var Pole: TPole);. 6

Это, собственно, и все, что касается размещения кораблей компьютера. Теперь достаточно сделать вызов: Ships (Pole); и корабли будут случайным образом расставлены по своим местам. Подобным образом помогаем пользователю, что бы он каждый раз не тратил время на эту операцию, вызвав Ship(Pole) . 7

4.ОПИСАНИЕ ВХОДНЫХ И ВЫХОДНЫХ ДАННЫХ 9

5.РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ 10

6.ЗАКЛЮЧЕНИЕ 10

7.СПИСОК ЛИТЕРАТУРЫ 11

8.ПРИЛОЖЕНИЕ 1. 12

ЛИСТИНГ ПРОГРАММЫ 12

9.ПРИЛОЖЕНИЕ 2. РЕЗУЛЬТАТЫ РАБОТЫ 28

  1. Введение

Язык программирования Pascalсоздан в 1973 году швейцарским ученым Николасом Виртом и был назван в честь выдающегося французского физика, математика и философа Блеза Паскаля (1623-1662), который являлся автором первой в мире вычислительной (суммирующей) машины (1641). Язык первоначально создавался для целей обучения программированию вообще. По словам автора языка «… разработка языка Паскаль базировалась на двух принципиальных концепциях. Первая состояла в том, чтобы изобрести язык, приспособленный к обучению программированию как систематической дисциплине, базирующейся на некоторых фундаментальных положениях, ясно и естественно отраженных в языке. Вторая предполагала разработку конкретных представлений этого языка, которые были бы надежны и эффективны на современных ЭВМ.» По мнению Вирта, «язык, на котором студент учится выражать свои идеи, существенно влияет на его способ мышления и изобретательность… беспорядок, сопутствующий существующим языкам, непосредственно влияет на стиль программирования студентов.»1Сейчас с уверенностью можно говорить о том, что Вирт достиг поставленной перед собой цели. Язык Паскаль является не только наилучшим языком обучения программированию, дает возможность осуществить простую реализацию его на современных вычислительных машинах, использовать его как язык системного программирования, но и является базой для создания более мощных языков.