中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-10 14:09
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,255 会员排行
DOS批处理 & 脚本技术(批处理室) » [趣味游戏]神奇读心术批处理版
可打印版本  6,857 / 40
第1楼 namejm 发表于 2006-12-04 10:22
荣誉版主 发帖 1,737 积分 5,226 来自 成都
[趣味游戏]神奇读心术批处理版
  以前9527曾在群里发过吉普赛人祖传的神奇读心术的网址,它能测算出你的内心感应。当时为它的神准所震慑,只觉得自己内心所想全被一股神秘的力量所洞悉。后来转念一想,网络非神物,一定有什么技巧隐藏在里面,一时兴起,稍加推演,找到了原因所在——原来所谓的读心术,只不过如魔术一般,使用的是障眼法而已。

  昨天在群里,又旧事重提,于是有了写个批处理版读心术的念头。12.3抽空写了个代码(版本一),张贴如下,各位可以抱着测试的态度先玩几次,玩过之后再想原理,想不通再看代码(版本二由版本一演变而来):

  版本一:


  版本二:


  点这里可以在网上玩flash版的神奇读心术

[ Last edited by namejm on 2006-12-21 at 05:59 PM ]
第2楼 redtek 发表于 2006-12-04 10:53
金牌会员 发帖 1,147 积分 2,902
不仅代码好玩,而且这界面做得真漂亮啊!!!
第3楼 namejm 发表于 2006-12-04 10:59
荣誉版主 发帖 1,737 积分 5,226 来自 成都
  界面排版稍微具备一点美观性,但是距离漂亮还有一段距离,redtek 兄谬赞了。本来还想加点动态色彩的,但是没想好做成什么样子的,暂时搁置起来了。
第4楼 youxi01 发表于 2006-12-04 11:03
高级用户 发帖 247 积分 846 来自 湖南==》广东
TO namejm斑竹:
一事不明,为什么要将获得var%%i的值写成一个“函数”,然后call呢?
for /l %%i in (0,1,99) do (
set num=%%i
call :get_num
)

call的使用,不是会使运行效率大大打折吗?
将for语句改一改,测试代码:
for /l %%i in (0,1,99) do (
set /a random_=%random%%%32
set var%num%=!str:~%random_%,1!
)
是不是要快很多啊?
第5楼 namejm 发表于 2006-12-04 11:57
荣誉版主 发帖 1,737 积分 5,226 来自 成都
Re youxi01:

  像你那样修改是要出错的,因为在 for 语句内部,如果本次循环中,后面的语句要调用前面语句产生的变量,一般是要启用变量延迟的。如果修改成你那样的语句,则 %random_% 的值始终为空,并非上一句所产生的值。如果用感叹号对的形式,就会写成 set var%num%=!str:~!random_!,1! 的格式,程序无法正确识别引用范围,同样会出错。

  基于上面的原因,我就 call 了段“函数”来绕过这个问题,暂时还没考虑到效率的问题。如果你有更好的解决办法,不妨发出来看看。
第6楼 tao0610 发表于 2006-12-04 12:09
高级用户 发帖 218 积分 579
call会让效率大大打折吗?不太清楚.
谁以后可以做做试验!

既然用了环境变量延迟倒是可以放里面


打错了....

[ Last edited by tao0610 on 2006-12-4 at 12:15 PM ]
第7楼 youxi01 发表于 2006-12-04 12:47
高级用户 发帖 247 积分 846 来自 湖南==》广东
不好意思,我也看错了,不过以下代码还真的可能快那么一点):(代码同上楼)
第8楼 lxmxn 发表于 2006-12-04 13:08
版主 发帖 4,938 积分 11,386

  一个字,强~
第9楼 electronixtar 发表于 2006-12-05 01:08
铂金会员 发帖 2,672 积分 7,493
NB
第10楼 weapfe 发表于 2006-12-05 02:12
初级用户 发帖 66 积分 144
看不懂楼主和youxi01兄的
set /a random_=!random!%%32
中的"%%32"是什么意思,不知能否教一下小弟....学飞中~~~~
第11楼 vkill 发表于 2006-12-05 04:33
金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽
我还是没有发现那个是怎么算出来的
第12楼 namejm 发表于 2006-12-05 04:39
荣誉版主 发帖 1,737 积分 5,226 来自 成都
  呵呵,我们一起来做个算术题:假设一个两位数,个位和十位分别为x和y,那么,按照读心术的规则,就是 x+10y-(x+y),结果为9x。在那张随机表上,只要确保9的倍数后面跟的图形是同一个东西就行了。
第13楼 CHINAWY0007 发表于 2006-12-21 08:56
初级用户 发帖 18 积分 40 来自 重庆市
不得不顶.实在太妙了.
第14楼 jmz573515 发表于 2006-12-21 09:59
银牌会员 发帖 464 积分 1,212
真是好东西,高手!
第15楼 hxuan999 发表于 2006-12-21 11:26
中级用户 发帖 161 积分 337
领会一下
1 2 3  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023