|

200精币
纯小白,到deepseek问实现矩形网格及颜色修改后得到的代码。
但因为画笔颜色问题导致问题搞不懂,求问这么改。
.版本 2
.程序集 窗口程序集_启动窗口
.程序集变量 行数, 整数型
.程序集变量 列数, 整数型
.程序集变量 单元格宽, 整数型
.程序集变量 单元格高, 整数型
.程序集变量 颜色数组, 整数型, , "2"
.子程序 __启动窗口_创建完毕
单元格宽 = 30
单元格高 = 30
.子程序 _按钮生成_被单击
.局部变量 i, 整数型
.局部变量 j, 整数型
行数 = 到整数 (编辑框行.内容)
列数 = 到整数 (编辑框列.内容)
重定义数组 (颜色数组, 假, 行数, 列数)
.计次循环首 (行数, i)
.计次循环首 (列数, j)
颜色数组 [i] [j] = #白色
.计次循环尾 ()
.计次循环尾 ()
画板.宽度 = 列数 × 单元格宽
画板.高度 = 行数 × 单元格高
画板.清除 (, , , )
' 画板.置画笔颜色 (#黑色)
.计次循环首 (行数, i)
.计次循环首 (列数, j)
' 画板.置画刷颜色 (颜色数组 [i] [j])
画板.画矩形 ((j - 1) × 单元格宽, (i - 1) × 单元格高, j × 单元格宽, i × 单元格高)
.计次循环尾 ()
.计次循环尾 ()
.子程序 _画笔颜色选择器_颜色被改变, , , 自己加的
画板.画笔颜色 = 画笔颜色选择器.颜色
.子程序 _画板_鼠标左键被按下, 整数型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
.局部变量 targetRow, 整数型
.局部变量 targetCol, 整数型
.局部变量 i, 整数型
.局部变量 j, 整数型
.局部变量 dx, 整数型
.局部变量 dy, 整数型
targetCol = 横向位置 ÷ 单元格宽 + 1
targetRow = 纵向位置 ÷ 单元格高 + 1
.如果真 (targetRow > 行数 或 targetCol > 列数)
.如果真结束
返回 (0)
画板.清除 (, , , )
' 重绘所有单元格
.计次循环首 (行数, i)
.计次循环首 (列数, j)
' 画板.置画刷颜色 (颜色数组 [i] [j])
画板.画矩形 ((j - 1) × 单元格宽, (i - 1) × 单元格高, j × 单元格宽, i × 单元格高)
.计次循环尾 ()
.计次循环尾 ()
' 绘制距离数字
.计次循环首 (行数, i)
.计次循环首 (列数, j)
dx = 取绝对值 (i - targetRow)
dy = 取绝对值 (j - targetCol)
.如果 (dx ≤ 1 且 dy ≤ 1 且 (dx ≠ 0 或 dy ≠ 0))
' 画板.置文本颜色 (#红色)
画板.定位写出 ((j - 1) × 单元格宽 + 5, (i - 1) × 单元格高 + 5, 到文本 (dx + dy))
' .否则如果 (dx = 0 且 dy = 0)
' 画板.置文本颜色 (#蓝色)
画板.定位写出 ((j - 1) × 单元格宽 + 5, (i - 1) × 单元格高 + 5, “0”)
.否则
.如果结束
.计次循环尾 ()
.计次循环尾 ()
返回 (0)
.子程序 _画板_鼠标右键被按下, 整数型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
.局部变量 行索引, 整数型
.局部变量 列索引, 整数型
.局部变量 颜色值, 整数型
列索引 = 横向位置 ÷ 单元格宽 + 1
行索引 = 纵向位置 ÷ 单元格高 + 1
.如果真 (行索引 > 行数 或 列索引 > 列数)
.如果真结束
返回 (0)
' 如果 (选择颜色 (颜色值, 真))
颜色数组 [行索引] [列索引] = 颜色值
' 画板.置画刷颜色 (颜色值)
画板.画矩形 ((列索引 - 1) × 单元格宽, (行索引 - 1) × 单元格高, 列索引 × 单元格宽, 行索引 × 单元格高)
' 画板.置画笔颜色 (#黑色)
画板.画矩形 ((列索引 - 1) × 单元格宽, (行索引 - 1) × 单元格高, 列索引 × 单元格宽, 行索引 × 单元格高)
返回 (0)
|
|