中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-15 00:49
47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,268 会员排行
DOS开发编程 & 发展交流 (开发室) » [原创]斗地主脚本技术准备-彩色输出 SYBC.com
可打印版本  5,659 / 19
第1楼 sl543001 发表于 2010-02-28 18:39
中级用户 发帖 225 积分 499
[原创]斗地主脚本技术准备-彩色输出 SYBC.com
俺正在努力开发cmd版的斗地主,为此要做很多技术准备.
由于计划使用全彩的游戏界面,所以需要一个小com来输出彩色字符.
最初使用tit.com,然后以此为基础开发了sybc.com
并使用sybc.com编写了一系列示例代码.
目前已经可以用sybc.com实现斗地主的完整界面.
游戏代码以及1.1.11版sybc在6楼
最新1.1.21版在9楼
最新1.1.31版在12楼

征召高手低手一起加盟开发 QQ群:3401238
http://www.cn-dos.net/forum/viewthread.php?tid=50331&fpage=1

[ Last edited by sl543001 on 2010-4-3 at 03:23 ]

附件
sybc.rar (1.06 KiB)
sybc参数详解.gif (17.45 KiB)
ddz59.GIF (23.49 KiB)
第2楼 awangwjf 发表于 2010-02-28 19:53
新手上路 发帖 3 积分 7
希望早日看到V1.0。
第3楼 sl543001 发表于 2010-03-01 11:20
中级用户 发帖 225 积分 499
修改并更新了代码,略微修改了语法,截图改为扑克牌!
第4楼 sl543001 发表于 2010-03-01 11:28
中级用户 发帖 225 积分 499
用于显示1楼截图中的一列扑克牌的cmd部分代码:
第5楼 sl543001 发表于 2010-03-02 17:44
中级用户 发帖 225 积分 499
正在计划修改参数入口和调用方式,突破124参数限制
第6楼 sl543001 发表于 2010-03-04 12:01
中级用户 发帖 225 积分 499
修改参数入口的计划暂缓到sybn Dll中解决
目前找到了新方法解决问题
在新版sybc中把参数中";:"的意义和";"的意义调换
因为原";:"的使用率比";"多,所以节约了少许代码
刚搞够吧右下角的数字变色

截图中用到的斗地主脚本
只能干看看,还不能玩.

[ Last edited by sl543001 on 2010-3-4 at 12:18 ]

附件
ddz.rar (1.68 KiB)
第7楼 qinchun36 发表于 2010-03-04 14:33
高级用户 发帖 400 积分 609
.......

哎呀,隔行如隔山,看不懂,也没机会去学汇编了,只能精神上支持了
第8楼 sl543001 发表于 2010-03-06 09:56
中级用户 发帖 225 积分 499
不需要会原理,会用就行了.
俺等到sybc开发到一定程度后,就会发布DEBUG版.
到时候就可以实现无3方全彩输出了!
第9楼 sl543001 发表于 2010-03-06 16:38
中级用户 发帖 225 积分 499
新版sybc 1.1.21已经支持choice功能 方法是不加任何参数直接运行

现发布debug版sybc生成代码:


[ Last edited by sl543001 on 2010-3-6 at 16:40 ]

附件
ddz59.GIF (18.95 KiB)
第10楼 sl543001 发表于 2010-03-20 15:19
中级用户 发帖 225 积分 499
因为SYBC被设计为内嵌于脚本中,你可以不在磁盘中生成SYBC.COM文件.
而是直接把他从脚本中释放到内存,并在内存中运行.
当然如果你愿意,它也可以像一般三方工具那样被使用.

好吧,大家首先是要截图下载地址,截图就在下边,是cmd脚本的实图哦!
至于下载地址,既然内嵌了,又何须下载?吧下面代码保存为cmd运行即可生成SYBC.com(此代码版本1.1.21 更新日期2010-3-10)

-------------------------------------------------------------------------------
好吧,现在大家手上应该有SYBC.com文件了吧,没有就生成一个.
接下来的问题是SYBC应该怎么用,SYBC分为基础高级2中语法,(2者仅在速度上有差别,最终效果一至)
可以以SYBC.com文件形式运行,也可以直接运行于内存.(后者略快)
-------------------------------------------------------------------------------
使用SYBC之前需要初始化(特别是win2000/XP),
初始化的方法很简单,首先如果你要使用中文,需要在你的代码开头加上"(CHCP 437 &GRAFTABL 936)>NUL"
然后你需要运行一次无参数的SYBC,用户按任意键后初始化完成.:[语法图第1例]
(由于没有提示,所以建议大家最好用echo告知用户要按任意键)
-------------------------------------------------------------------------------
基础语法:[语法图第2例]
SYBC 位置颜色内容
SYBC 10303$F1SYBN#s
位置 5位数字第23位为行数第45位为列数
颜色 用$引导的2个16进制数,同color命令
内容 任意字符串 (注意不要使用$#;三个符号以免冲突)
#号 无内容,保留此位置原内容仅改变颜色
$号 允许存在多个$号,分别控制之后的字符颜色
-------------------------------------------------------------------------------
利用基础语法可以实现SYBC的全部效果,
如果觉得速度不满意,可以使用高级语法,
把多行基础语法合并成一行高级语法从而减少调用次数以加速.
不论使用什么语法,没次调用SYBC的时间都约0.01秒,瓶颈在硬盘的响应速度.
另外使用内嵌式调用,跳过磁盘直接运行SYBC可以进一步提高速度,但会牺牲代码可读性.
-------------------------------------------------------------------------------
高级语法:
[语法图第3例]
SYBC 10303$F1SYBN;2010
效果同
SYBC 10303$F1SYBN
SYBC 10403$F12010
分号 是换行符可以再上一行的起点列从启一行继续
如果不使用换行符而写一个很长的字符串,则会像echo那样自然换行.

[语法图第4例]
SYBC 10303$F1SYBN;:10401$F12010
效果同
SYBC 10303$F1SYBN
SYBC 10401$F12010
分号冒号 效果类似于脚本中的&符,可以吧两个SYBC命令连接在一起使用.
这样你几乎就可以吧所有连续出现的sybc命令合并成一行,速度会快很多.
--------------------------------------------------------------------------------
不过大家要注意com程序的参数是有长度限制的.
理论长度为127,实际可用长度为124,超过124则无法执行了!
当然,如果你使用后面的内嵌式调用,则没有这个限制了!
--------------------------------------------------------------------------------
内嵌式调用:
使用DEBUG可以方便的调用com程序,之前生成SYBC.com用的就是DEBUG,
我们是要稍微修改就可以用于内嵌式调用了!
首先,把SYBC.com的代码以16进制的形式保存在变量SYBCOM中然后把DEBUG指令保存在变量V中注意10是指参数长度的16进制值,在1.1.21版中它已经没用了,不用管它照着写或写别的16进制值都行.
"10303$F1SYBN2010"就是参数了,记得两边加上冒号,这里的参数长度限制大约为65个字节
最后在调用它们---------------------------------------------------------------------------------------------------------
当然你还是没有突破124参数限制,反而限制降低到了约65字节,
如何突破限制呢?修改变量V的值就可以了.大家不需要管为啥要这样写,只需要知道你可以吧参数分段,每段少于65字节,写在引号里就好了,
你可以写无限多个DB "XXXXXXXX"注意最后一个要加上0D不要忘记0D前的空格就好.

如有问题联系QQ:354324773
第11楼 sl543001 发表于 2010-03-31 18:50
中级用户 发帖 225 积分 499
最新SYBC 1.1.31支持直接读取内存中的变量作为程序参数
大幅提高使用效率,相同内容显示时间减少三分之一以上
以斗地主为例:刷新时间由48降为27
SYBC 1.1.31正在测试中...

附件
ddz61.GIF (20.14 KiB)
第12楼 sl543001 发表于 2010-03-31 18:57
中级用户 发帖 225 积分 499
1.1.31版 内存调用模块 演示代码
将SYBC之后内容插入脚本,初始化后利用"call :SYBC 参数"即可
参数几乎可以无限长,只要不超过64K(想让参数超过64K也难啊)



[ Last edited by sl543001 on 2010-3-31 at 19:00 ]
第13楼 sl543001 发表于 2010-04-03 03:25
中级用户 发帖 225 积分 499
1.1.31初步测试未发现BUG,正计划添加新功能:鼠标支持,延时
第14楼 sl543001 发表于 2010-04-18 23:09
中级用户 发帖 225 积分 499
新教程及五子棋脚本开发实例
第15楼 sl543001 发表于 2010-04-19 21:28
中级用户 发帖 225 积分 499
逐行注释了一部分汇编源代码:
1 2  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023