精易论坛

标题: AI已经偷偷进化到会写易语言代码了? [打印本页]

作者: 逆神者一方    时间: 2025-6-10 02:45
标题: AI已经偷偷进化到会写易语言代码了?
记得ChatGPT出来后一段时间,中国的各大AI逐渐亮相,记得那时的豆包等AI对易语言代码的反应就像现在的混元:

这种反应,仔细询问易语言是什么,恢复貌似是另外某个语言,作者不是吴涛,而现在主流AI如豆包、deepseek、通义等等测试已经可以编写易语言代码了,虽然运行可能有小错误,但应该不久会进化更加完善了。

以下是第二次询问豆包发生的短路回复记录视频,可能AI某块数据溢出了吧.....
https://nszyf.lanzouq.com/ihTZk2ygn20d
当然,这种滑稽情况可能是偶尔出现的,后面多次询问后回复越来越正常了,第二张图就是第三次问的回答。


作者: 洋滨    时间: 2025-6-10 02:51
Claude已经可以写易语言了,写算法还挺牛逼的
作者: 逆神者一方    时间: 2025-6-10 02:59
每次测试点新对话,多测试几次询问“使用易语言输出hello world”好像总会有一次出现脑抽的回复,应该是在思考吧,生成了9分钟后自动卡住停止了生成
作者: Tigh666    时间: 2025-6-10 03:09
厉害了
作者: kk4648    时间: 2025-6-10 03:34
Claude已经可以写易语言了,写算法还挺牛逼的
作者: mywjt    时间: 2025-6-10 07:53
为我山东程序员点赞
作者: 辽阳小哲    时间: 2025-6-10 07:58
deepseek出生那天就会写了
作者: 李泽勇2    时间: 2025-6-10 08:40
用deepseek写,豆包很垃圾,几乎每个子程序都会出现语法错误。
作者: 华武    时间: 2025-6-11 06:18
本帖最后由 华武 于 2025-6-11 06:20 编辑

我找AI,让他粗暴点,然后丢了个代码过来,当然一眼能看到有BUG。先笑一会
  
' 老子的暴力美学代码(拿去!)
子程序名返回值类型公开备 注
排序文本型 
参数名类 型参考可空数组备 注
原数组文本型
升序逻辑型
变量名类 型静态数组备 注
副本文本型 
ij
v1v2 
长度 = 取数组成员数 (原数组)
重定义数组 (副本, 假, 长度)
计次循环首 (长度, i)
副本[i] = 原数组[i]  ; 原数组?老子碰一下算流氓!
计次循环尾 ()
如果真 (长度 < 2)
返回 (副本)  ; 废什么话,直接甩回去!

升序 = 选择 (是否为空 (升序), 真, 升序)  ; 空?按在地上设为升序!
变量循环首 (1, 长度-1, 1, i)
位置 = i
变量循环首 (i+1, 长度, 1, j)
v1 = 到数值 (副本[j])  ; 转!失败?0!没商量!
v2 = 到数值 (副本[位置])
如果 (升序 v1 < v2)  ; 升序+更小?位置抢过来!
位置 = j
.否则 (非升序 v1 > v2)  ; 降序+更大?位置给老子!
位置 = j

变量循环尾 ()
如果真 (位置 ≠ i)
交换 (副本, i, 位置)  ; 不相等?滚去交换!

变量循环尾 ()
返回 (副本)  ; 排完了?拿上结果滚蛋!
子程序名返回值类型公开备 注
交换  
参数名类 型参考可空数组备 注
数组文本型
ab
变量名类 型静态数组备 注
tmp文本型 
tmp = 数组[a]
数组[a] = 数组[b]
数组[b] = tmp


作者: 小结巴    时间: 2025-6-15 09:36
洋滨 发表于 2025-6-10 02:51
Claude已经可以写易语言了,写算法还挺牛逼的

真的假的?
作者: 洋滨    时间: 2025-6-15 20:46
小结巴 发表于 2025-6-15 09:36
真的假的?

这些全身AI写的,能直接跑的,没报错,正常
  
窗口程序集名保 留  保 留备 注
程序集2   
子程序名返回值类型公开备 注
文字框选检测整数型 返回检测到的文字框数量
参数名类 型参考可空数组备 注
二值化图片字节集
返回文字框整数型"0,4" ' [框序号][x,y,w,h]
变量名类 型静态数组备 注
局_位图位图 
W整数型 
H整数型 
访问标记逻辑型0
连通域整数型0
连通域数量整数型 
合并后框数量整数型 
x整数型 
y整数型 
局_位图.载入数据 (二值化图片)
W = 局_位图.取宽度 ()
H = 局_位图.取高度 ()
' 初始化访问标记数组
重定义数组 (访问标记, 假, W, H)
' 连通域检测
连通域数量 = 连通域分析 (局_位图, 访问标记, 连通域)
' 过滤和合并文字区域
合并后框数量 = 文字区域过滤合并 (连通域, 连通域数量, 返回文字框)
返回 (合并后框数量)
子程序名返回值类型公开备 注
连通域分析整数型 返回连通域数量
参数名类 型参考可空数组备 注
位图对象位图
访问标记逻辑型
连通域结果整数型
变量名类 型静态数组备 注
W整数型 
H整数型 
x整数型 
y整数型 
区域数量整数型 
当前区域整数型4
W = 位图对象.取宽度 ()
H = 位图对象.取高度 ()
区域数量 = 0
重定义数组 (连通域结果, 假, 500, 4)  ' 最多500个区域
变量循环首 (0, H - 1, 1, y)
变量循环首 (0, W - 1, 1, x)
如果真 (访问标记 [x + 1] [y + 1] 是文字像素 (位图对象, x, y))
' 发现新的连通区域
区域数量 = 区域数量 + 1
洪水填充 (位图对象, 访问标记, x, y, 当前区域)
连通域结果 [区域数量] [1] = 当前区域 [1]  ' x
连通域结果 [区域数量] [2] = 当前区域 [2]  ' y
连通域结果 [区域数量] [3] = 当前区域 [3]  ' w
连通域结果 [区域数量] [4] = 当前区域 [4]  ' h

变量循环尾 ()
变量循环尾 ()
返回 (区域数量)
子程序名返回值类型公开备 注
洪水填充 8连通洪水填充算法
参数名类 型参考可空数组备 注
位图对象位图
访问标记逻辑型
起始X整数型
起始Y整数型
区域信息整数型y,w,h]
变量名类 型静态数组备 注
栈X整数型0
栈Y整数型0
栈顶整数型 
当前X整数型 
当前Y整数型 
最小X整数型 
最大X整数型 
最小Y整数型 
最大Y整数型 
W整数型 
H整数型 
i整数型 
j整数型 
W = 位图对象.取宽度 ()
H = 位图对象.取高度 ()
重定义数组 (栈X, 假, 10000)
重定义数组 (栈Y, 假, 10000)
栈顶 = 0
' 初始化边界
最小X = 起始X
最大X = 起始X
最小Y = 起始Y
最大Y = 起始Y
' 压栈起始点
栈顶 = 栈顶 + 1
栈X [栈顶] = 起始X
栈Y [栈顶] = 起始Y
判断循环首 (栈顶 > 0)
' 出栈
当前X = 栈X [栈顶]
当前Y = 栈Y [栈顶]
栈顶 = 栈顶 - 1
如果真 (当前X < 0 当前X ≥ W 当前Y < 0 当前Y ≥ H)
到循环尾 ()

如果真 (访问标记 [当前X + 1] [当前Y + 1] 是文字像素 (位图对象, 当前X, 当前Y))
到循环尾 ()

' 标记为已访问
访问标记 [当前X + 1] [当前Y + 1] = 真
' 更新边界
如果真 (当前X < 最小X)
最小X = 当前X
如果真 (当前X > 最大X)
最大X = 当前X
如果真 (当前Y < 最小Y)
最小Y = 当前Y
如果真 (当前Y > 最大Y)
最大Y = 当前Y

' 8连通邻域入栈
变量循环首 (-1, 1, 1, i)
变量循环首 (-1, 1, 1, j)
如果真 (i = 0 j = 0)
到循环尾 ()
栈顶 = 栈顶 + 1
栈X [栈顶] = 当前X + i
栈Y [栈顶] = 当前Y + j
变量循环尾 ()
变量循环尾 ()
判断循环尾 ()
' 返回边界框信息
区域信息 [1] = 最小X
区域信息 [2] = 最小Y
区域信息 [3] = 最大X - 最小X + 1
区域信息 [4] = 最大Y - 最小Y + 1
子程序名返回值类型公开备 注
是文字像素逻辑型 
参数名类 型参考可空数组备 注
位图对象位图
x整数型
y整数型
变量名类 型静态数组备 注
颜色值整数型 
颜色值 = 位图对象.取某点颜色 (x, y)
' 假设二值化图像中,文字为黑色(0),背景为白色(16777215)
返回 (颜色值 = 0)
子程序名返回值类型公开备 注
文字区域过滤合并整数型 
参数名类 型参考可空数组备 注
连通域整数型
连通域数量整数型
最终文字框整数型
变量名类 型静态数组备 注
有效区域整数型1,4
有效数量整数型 
i整数型 
面积整数型 
长宽比双精度小数型 
合并结果数量整数型 
' 第一步:面积和形状过滤
有效数量 = 0
重定义数组 (有效区域, 假, 连通域数量, 4)
变量循环首 (1, 连通域数量, 1, i)
面积 = 连通域 [i] [3] × 连通域 [i] [4]
长宽比 = 连通域 [i] [3] ÷ 连通域 [i] [4]
' 过滤条件:面积 > 100,长宽比合理,宽高最小值
如果真 (面积 > 100 长宽比 > 0.1 长宽比 < 10 连通域 [i] [3] > 10 连通域 [i] [4] > 5)
有效数量 = 有效数量 + 1
有效区域 [有效数量] [1] = 连通域 [i] [1]
有效区域 [有效数量] [2] = 连通域 [i] [2]
有效区域 [有效数量] [3] = 连通域 [i] [3]
有效区域 [有效数量] [4] = 连通域 [i] [4]

变量循环尾 ()
' 第二步:相邻区域合并
合并结果数量 = 区域合并处理 (有效区域, 有效数量, 最终文字框)
返回 (合并结果数量)
子程序名返回值类型公开备 注
区域合并处理整数型 
参数名类 型参考可空数组备 注
区域列表整数型
区域数量整数型
合并结果整数型
变量名类 型静态数组备 注
已合并逻辑型0
合并数量整数型 
i整数型 
j整数型 
距离双精度小数型 
中心X1整数型 
中心Y1整数型 
中心X2整数型 
中心Y2整数型 
合并组整数型1,4
组内数量整数型 
最小X整数型 
最小Y整数型 
最大X整数型 
最大Y整数型 
k整数型 
重定义数组 (已合并, 假, 区域数量)
重定义数组 (合并结果, 假, 区域数量, 4)
重定义数组 (合并组, 假, 区域数量, 4)
合并数量 = 0
变量循环首 (1, 区域数量, 1, i)
如果真 (已合并 [i])
到循环尾 ()

' 创建新的合并组
组内数量 = 1
合并组 [1] [1] = 区域列表 [i] [1]
合并组 [1] [2] = 区域列表 [i] [2]
合并组 [1] [3] = 区域列表 [i] [3]
合并组 [1] [4] = 区域列表 [i] [4]
已合并 [i] = 真
' 查找相邻区域
变量循环首 (i + 1, 区域数量, 1, j)
如果真 (已合并 [j])
到循环尾 ()

' 计算中心点距离
中心X1 = 区域列表 [i] [1] + 区域列表 [i] [3] ÷ 2
中心Y1 = 区域列表 [i] [2] + 区域列表 [i] [4] ÷ 2
中心X2 = 区域列表 [j] [1] + 区域列表 [j] [3] ÷ 2
中心Y2 = 区域列表 [j] [2] + 区域列表 [j] [4] ÷ 2
距离 = 求平方根 (求次方 (中心X1 - 中心X2, 2)求次方 (中心Y1 - 中心Y2, 2))
' 距离阈值判断(可调整)
如果真 (距离 < 50)
组内数量 = 组内数量 + 1
合并组 [组内数量] [1] = 区域列表 [j] [1]
合并组 [组内数量] [2] = 区域列表 [j] [2]
合并组 [组内数量] [3] = 区域列表 [j] [3]
合并组 [组内数量] [4] = 区域列表 [j] [4]
已合并 [j] = 真

变量循环尾 ()
' 计算合并后的边界框
最小X = 合并组 [1] [1]
最小Y = 合并组 [1] [2]
最大X = 合并组 [1] [1] + 合并组 [1] [3]
最大Y = 合并组 [1] [2] + 合并组 [1] [4]
变量循环首 (2, 组内数量, 1, k)
如果真 (合并组 [k] [1] < 最小X)
最小X = 合并组 [k] [1]
如果真 (合并组 [k] [2] < 最小Y)
最小Y = 合并组 [k] [2]
如果真 (合并组 [k] [1] + 合并组 [k] [3] > 最大X)
最大X = 合并组 [k] [1] + 合并组 [k] [3]
如果真 (合并组 [k] [2] + 合并组 [k] [4] > 最大Y)
最大Y = 合并组 [k] [2] + 合并组 [k] [4]

变量循环尾 ()
' 保存合并结果
合并数量 = 合并数量 + 1
合并结果 [合并数量] [1] = 最小X
合并结果 [合并数量] [2] = 最小Y
合并结果 [合并数量] [3] = 最大X - 最小X
合并结果 [合并数量] [4] = 最大Y - 最小Y
变量循环尾 ()
返回 (合并数量)
子程序名返回值类型公开备 注
绘制文字框字节集 
参数名类 型参考可空数组备 注
原图字节集
文字框列表整数型
框数量整数型
变量名类 型静态数组备 注
局_位图位图 
i整数型 
局_位图.载入数据 (原图)
变量循环首 (1, 框数量, 1, i)
' 绘制矩形框(绿色)
绘制矩形框 (局_位图, 文字框列表 [i] [1], 文字框列表 [i] [2], 文字框列表 [i] [3], 文字框列表 [i] [4], #绿色 )
变量循环尾 ()
返回 (局_位图.取位图数据 ())
子程序名返回值类型公开备 注
绘制矩形框  
参数名类 型参考可空数组备 注
位图对象位图
x整数型
y整数型
w整数型
h整数型
颜色整数型
变量名类 型静态数组备 注
i整数型 
' 绘制上下边
变量循环首 (x, x + w - 1, 1, i)
位图对象.置某点颜色 (i, y, 颜色)
位图对象.置某点颜色 (i, y + h - 1, 颜色)
变量循环尾 ()
' 绘制左右边
变量循环首 (y, y + h - 1, 1, i)
位图对象.置某点颜色 (x, i, 颜色)
位图对象.置某点颜色 (x + w - 1, i, 颜色)
变量循环尾 ()
子程序名返回值类型公开备 注
提取文字框图片字节集 提取指定文字框的图片
参数名类 型参考可空数组备 注
原始图片字节集
文字框坐标整数型"4" ' [x,y,w,h]
变量名类 型静态数组备 注
源位图位图 
目标位图位图 
框X整数型 
框Y整数型 
框宽整数型 
框高整数型 
x整数型 
y整数型 
源位图.载入数据 (原始图片)
框X = 文字框坐标 [1]
框Y = 文字框坐标 [2]
框宽 = 文字框坐标 [3]
框高 = 文字框坐标 [4]
' 边界检查
如果真 (框X < 0 框Y < 0 框X + 框宽 > 源位图.取宽度 () 框Y + 框高 > 源位图.取高度 ())
返回 ({  })  ' 返回空字节集

目标位图.创建 (框宽, 框高, 24, )
' 复制指定区域像素
变量循环首 (0, 框宽 - 1, 1, x)
变量循环首 (0, 框高 - 1, 1, y)
目标位图.置某点颜色 (x, y, 源位图.取某点颜色 (框X + x, 框Y + y))


i支持库列表   支持库注释   
BmpOperate位图操作支持库






欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4