Компьютерное моделирование 2017-2018 учебный год Лабораторная работа 4 Клеточный автомат Пример 1. Матрица заполнена числами 1 и 2 в произвольном порядке. При нажатии на кнопку Start клетки с числом 1 закрашиваются в одним цветом, а клетки с числом 2 - в другой цвет. ' Глобальные константы Const COL_X = 2 Const ROW_X1 = 2 Const ROW_X2 = 3 Const COL_RED = 3 Const COL_GREEN = 4 Const COL_BLUE = 5 Const MATRIX_LEFT = 6 Const MATRIX_TOP = 2 Const MATRIX_WIDTH = 10 Const MATRIX_HEIGHT = 15 Const ROW_COLOR1 = 4 Const ROW_COLOR2 = 5 Dim x As Integer Dim cellColor As Integer Dim redColor As Integer Dim greenColor As Integer Sub Main Doc = StarDesktop.CurrentComponent Sheet = Doc.Sheets(0) for y = MATRIX_TOP to MATRIX_TOP - 1 + MATRIX_HEIGHT for x = MATRIX_LEFT to MATRIX_LEFT - 1 + MATRIX_WIDTH Cell_Current = Sheet.getCellByPosition(x, y) if Cell_Current.Value = 1 then Cell_Current.CellBackColor = RGB(255, 0, 0) end if if Cell_Current.Value = 2 then Cell_Current.CellBackColor = RGB(0, 255, 0) end if next x next y End Sub Пример 2. ' Глобальные константы Const COL_X = 2 Const ROW_X1 = 2 Const ROW_X2 = 3 Const COL_RED = 3 Const COL_GREEN = 4 Const COL_BLUE = 5 Const MATRIX_LEFT = 6 Const MATRIX_TOP = 2 Const MATRIX_WIDTH = 10 Const MATRIX_HEIGHT = 15 Const ROW_COLOR1 = 4 Const ROW_COLOR2 = 5 Dim x As Integer Dim cellColor As Integer Dim redColor As Integer Dim greenColor As Integer Sub Main Doc = StarDesktop.CurrentComponent Sheet = Doc.Sheets(0) y = MATRIX_TOP + 2 xOld = x Cell_Current = Sheet.getCellByPosition(MATRIX_LEFT + xOld, y) Cell_Current.CellBackColor = RGB(0, 255, 0) x = x + 1 Cell_Current = Sheet.getCellByPosition(MATRIX_LEFT + x, y) Cell_Current.CellBackColor = RGB(255, 255, 0) End Sub Задания. Добавьте в программу следующие возможности: 1. При нажатии на кнопку Clear очищается фон и текст в ячейках. 2. Добавить кнопку Шаблон, которая заполняет матрицу заданным числом. 3. Добавить третью группу клеток, которые окрашены другим цветом. 4. Добавить кнопку Random, которая в случайно выбранное место матрицы ставит заданное число. 5. Добавьте кнопку Рамка, котора выделяет заданным цветом границы матрицы. 6. При нажатии на кнопку Контур программа обнаруживает клетку, в которой находится заданное число и обводит эту клетку рамкой, т. е. закрашивает заданным цветом соседние клетки. 7. Контур группы клеток выделяется заданным цветом при нажатии на кнопку Контур. 8. Смоделировать перемещени окрашенной заданным цветом ячейки на одно место при нажатии на кнопки вверх, вниз, вправо, влево.
Основные источники
inf.1september.ru: Алгоритмы перебора. И.И.Данилина
Дополнительные источники
forum.openoffice.org: Basic macro to color cell background.
stackoverflow.com How to change the background color of a cell on mouse click in Libre Office Calc?
ooo-forums.apache.org: Change cell color macro.