北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
楼主: liccry

[mushclient]请教如何在lua程序中降低cpu占用率。

[复制链接]
 楼主| 发表于 2010-4-12 23:00:32 | 显示全部楼层
原帖由 seagate 于 2010-4-12 10:54 PM 发表
把这个放在一个矩阵里面,就是二维list就可以,你从0,0开始找第,如果发现第,找坐标+-1的位置有没有数字,按照第%d项汉字数字+算法+汉字数字+点+汉字来匹配,只是从正常的+1,0匹配修改成+1,+1范围内匹配而已。应该 ...



我最开始的思路就是这个,但是实际使用中,发现无法用2维数组去存所有的汉字。
问题是因为汉字占据两个字符的位置,给数组赋值时会遇到错位。
比如:a[11][12]代表第12行,第11个字符位置到第12个字符位置的汉字。
那么如果这个字符出现在第12行第12个字符位置,就无法取值赋值了。
为了绕过这个问题,我采用循环来代替的。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2010-4-12 23:02:15 | 显示全部楼层
原帖由 purbam 于 2010-4-12 10:57 PM 发表
有效字符一定是绿底白字?可以用颜色触发吗?



不是。
位置随机,颜色随机。

要不我也不会抛开熟悉的zmud,开始自学lua和mush,我上大学做作业都没这么认真过,呜呜。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2010-4-12 23:07:22 | 显示全部楼层
里面的每一个元素除了空格,0-9数字你都认为是汉字,取二位存在一个单元里面,通过组矩阵消化掉汉字和数字,字母的位长不一致,然后就简单了。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2010-4-12 23:09:41 | 显示全部楼层
反正你想着先把矩阵弄规整了就好办,看实际情况了。不是把汉字二位并一位就是字符数字一位当二位看,只要矩阵整齐了就没啥问题了
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2010-4-12 23:11:26 | 显示全部楼层
1、先把所有内容都存起来;
2、从第一行开始分析,碰到“第”字就记录所在的行和列以及颜色,其他字不用记录;
3、分析下一行,碰到一个字符就记录它的行和列以及颜色,分析它邻近(左、中、右,或者一定范围内)的上一行有没有字符,以及颜色是不是一样的,如果是一样的就存到一起,没有就抛弃掉;碰到“第”字同样记录颜色和位置;
4、重复第3步骤,
这样应该可以把需要的找出来了,且不管颜色是怎么样的,不管斜的方向是怎么样的。
可以多研究mushclient的颜色函数以及文本处理函数。

[ 本帖最后由 maper 于 2010-4-12 11:13 PM 编辑 ]
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2010-4-12 23:11:49 | 显示全部楼层
原帖由 seagate 于 2010-4-12 11:09 PM 发表
反正你想着先把矩阵弄规整了就好办,看实际情况了。不是把汉字二位并一位就是字符数字一位当二位看,只要矩阵整齐了就没啥问题了



恩,我再琢磨琢磨。
谢谢。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2010-4-12 23:17:30 | 显示全部楼层
原帖由 maper 于 2010-4-12 11:11 PM 发表
1、先把所有内容都存起来;
2、从第一行开始分析,碰到“第”字就记录所在的行和列以及颜色,其他字不用记录;
3、分析下一行,碰到一个字符就记录它的行和列以及颜色,分析它邻近(左、中、右,或者一定范围内)的 ...



谢谢指点,我的思路就是这样,而且已经写好了。
问题就像我题目所说,由于过多的句型导致的循环过多,从而占用太多的cpu,然后mush本身会做假死状10多秒。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2010-4-12 23:24:53 | 显示全部楼层
那就再优化优化
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2010-4-13 00:26:43 | 显示全部楼层
恩,多谢指点。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|北大侠客行MUD ( 京ICP备16065414号-1 )

GMT+8, 2024-11-2 01:27 AM , Processed in 0.009903 second(s), 12 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表