Задание7_Сапер_ч1 (1076724), страница 2
Текст из файла (страница 2)
Для генерации случайных чисел использовать функции:
Randomize() - инициализирует ГСЧ;
Random(MR) - генерирует целое число в диапазоне 0..MR-1.
Для вывода массива Pole при отладке программы временно (на время отладки) использовать компонент StringGrid. В результате отладки должна получиться картинка, аналогичная рис. 3, только цифры будут записаны не в поля клеток на холсте, а в ячейки компонента StringGrid.
Использование компонента StringGrid
Для ввода-вывода массива удобно использовать компонент StringGrid. Значок компонента StringGrid находится на вкладке Additional (рис. 7).
Рис.7. Компонент StringGrid
Компонент StringGrid представляет собой таблицу, ячейки которой содержат строки символов. В табл. 2 перечислены некоторые свойства компонента StringGrid.
Таблица 2. Свойства компонента StringGrid
Свойство Определяет
N ame Имя компонента. Используется в программе для доступак свойствам компонента
ColCount Количество колонок таблицы
RowCount Количество строк таблицы
Cells Соответствующий таблице двумерный массив. Ячейка
таблицы, находящаяся на пересечении столбца номер col и строки номер row определяется элементом cells[col,row]
FixedCols Количество зафиксированных слева колонок таблицы.
Зафиксированные колонки выделяются цветом и при горизонтальной прокрутке таблицы остаются на месте
FixedRows Количество зафиксированных сверху строк таблицы. Зафиксированные строки выделяются цветом и при вертикальной прокрутке таблицы остаются на месте
Options. goEditing Признак допустимости редактирования содержимого ячеек таблицы. True — редактирование разрешено, False — запрещено
Options. goTab Разрешает (True) или запрещает (False) использование клавиши <ТаЬ> для перемещения курсора в следующую ячейку таблицы
Options.GoAlways- Признак нахождения компонента в режиме редактирования.
ShowEditor Если значение свойства False, то для того, чтобы в ячейке появился
курсор, надо начать набирать текст, нажать клавишу <F2> или сделать щелчок мышью
DefaultColWidth Ширину колонок таблицы
DefaultRowHeight Высоту строк таблицы
GridLineWidth Ширину линий, ограничивающих ячейки таблицы
Left Расстояние от левой границы поля таблицы до левой границы формы
Тор Расстояние от верхней границы поля таблицы до верхней границы формы
Width Ширину поля таблицы
Font Шрифт, используемый для отображения содержимого ячеек таблицы
ParentFont Признак наследования характеристик шрифта формы
Использование компонента StringGrid для ввода и вывода элементов массива a[i, j]:
a[i, j]:=StrToInt(StringGrid1.Cells[i, j] ); //ввод
StringGrid1.Cells[i, j]:=IntToStr(a[i, j]); //вывод
Шаг 3. Процедуры Mina() и Flag().
Эти процедуры рисуют мину и флаг и вызываются из процедуры Kletka().Для рисования используйте свойство Canvas формы.
При программировании изображений, состоящих из множества элементов, используют метод базовой точки. Суть этого метода заключается в следующем:
-
Выбирается некоторая точка изображения, которая принимается за базовую.
-
Координаты остальных точек отсчитываются от базовой точки.
-
Если координаты точек изображения отсчитывать от базовой точки в относительных единицах, а не в пикселах, то обеспечивается возможность масштабирования изображения.
В лабораторной работе мину и флаг рисовать в клетке размером 40 х 40 пикселов. В качестве базовой точки использовать левый верхний угол клетки и координаты точек изображения отсчитывать от базовой точки в пикселах.
Перед рисованием фигур нужно установить цвет кисти и пера
Мина состоит из сектора, трех прямоугольников и четырех отрезков (см. рис.1.).
При рисовании флага сначала заполните массивы координат вершин флага и буквы ‘М’, а затем нарисуйте флаг с помощью метода Polygon, а букву М с помощью метода Polyline.
Для отладки процедур выведите изображения мины и флага на форму.
На этом первая часть практикума «Сапер» завершается.