![Board logo](images/default/logo.gif)
标题: [其他] 无需第三方,去掉用户在批处理等待时输入的东西 [打印本页]
作者: raymai97 时间: 2011-9-2 10:17 标题: 无需第三方,去掉用户在批处理等待时输入的东西
大家都知道,如果用户在一个批处理在等待时(比如显示某组号码5秒时)输入东西,等下set /p时,就会出现刚才输入的东西
这等于给了“记数字”玩家作弊的机会,比如以下代码:- @echo off
- cls
- set a=%random:~0,1%%random:~0,1%%random:~0,1%%random:~0,1%%random:~0,1%
- echo 给你3秒记住这组数字:%a%
- ping -n 4 127.1>nul
- cls
- set /p num=现在输入:
- echo.
- if "%a%"=="%num%" (echo 你输入对了) else (echo 你输入错了)
- pause>nul
- exit
复制代码
要作弊是易如反掌的,我在批处理显示“给你3秒……”时输入数字,等下set /p时就写出来了……
为此我就写了一个代码,不完美但起码实现无三方去掉用户在批处理等待时输入的东西- @echo off
- if "%1"=="apple" goto apple
- if "%1"=="apple2" goto apple2
- start /b "" %0 apple
- start /b "" %0 apple2
- echo 现在不能输入,需等待4秒……
- ping -n 5 127.1>nul
- echo abc>abc
- cls
- echo.
- echo 现在按两次enter,看到enter: 时就输入
- pause>nul
- erase /f /q abc>nul 2>nul
- erase /f /q abc2>nul 2>nul
- set /p a=Enter:
- echo.
- echo 你输入了%a%
- pause
- exit
- :apple
- set /p =
- if exist abc echo abc>abc2&exit
- goto apple
- :apple2
- set /p = <nul
- if exist abc2 exit
- goto apple2
复制代码
作者: raymai97 时间: 2011-9-2 10:28
发现代码可以更简单:- @echo off
- if "%1"=="apple2" goto apple2
- start /b "" %0 apple2
- echo 现在不能输入,需等待4秒……
- ping -n 5 127.1>nul
- echo abc>abc2
- cls
- echo.
- echo 现在按一次enter,看到enter: 时就输入
- pause>nul
- erase /f /q abc2>nul 2>nul
- set /p a=Enter:
- echo.
- echo 你输入了%a%
- pause
- exit
- :apple2
- set /p = <nul
- if exist abc2 exit
- goto apple2
复制代码
作者: raymai97 时间: 2011-9-2 10:31 标题: 突然发现自己摆了乌龙
原来…… 加一个pause>nul就行了……- @echo off
- echo 现在不能输入,需等待4秒……
- ping -n 5 127.1>nul
- cls
- echo.
- echo 现在按一次enter,看到enter: 时就输入
- pause>nul
- set /p a=Enter:
- echo.
- echo 你输入了%a%
- pause
- exit
复制代码
作者: CUer 时间: 2011-9-2 10:37
这种代码是专门为了侮辱人的智商吗?想作弊直接写到记事本不就行了,干嘛非写到命令行窗口。
作者: raymai97 时间: 2011-9-2 11:34
回复 4# CUer
如果他真的要这样做,我也没有办法~ 反正这个游戏就是为了让人锻炼脑袋的~ 他这样做明显没有好处,浪费他的时间罢了
这个代码就好比考试时禁止看书的规则,有好过没有,如果考生硬要作弊也没有办法啊~
作者: bluewing009 时间: 2011-9-2 20:08 标题: 偏门
回复 5# raymai97
把echo set /p换成choice命令,利用ntd参数,设置一个默认跳转,就可以了。不过choice命令不知道楼主是不是认为“第三方”…………
作者: bluewing009 时间: 2011-9-2 20:13
回复 4# CUer
利用窗体前置(vbs)或者全屏(debug)可以避免这个吧……
作者: raymai97 时间: 2011-9-2 21:02
回复 6# bluewing009
对choice没好感,一按错就会吵死人……
作者: CUer 时间: 2011-9-3 10:44
回复 7# bluewing009
My Ladygaga,就算你暂时禁用鼠标和键盘又怎样,拿笔写到纸上总行吧?
作者: mstsc 时间: 2011-9-5 23:12
自己觉的楼主的想法好 慢慢学习
什么时候自己的问题 能自己解决啊!!!!!!!!!!!!
作者: garyng 时间: 2011-9-6 20:31
回复 9# CUer
哈哈~你聪明~
作者: raymai97 时间: 2011-9-6 20:51
回复 11# garyng
按照你们这么说,就是说这类游戏没有意义的?
算了…… 反正批处理就不是拿来做游戏的……
不喜欢就算了……
作者: garyng 时间: 2011-9-6 21:12
回复 12# raymai97
按照你们这么说,就是说这类游戏没有意义的?
算了…… 反正批处理就不是拿来做游戏的……
不喜欢就算了……
这世界有很多不同的人,好人、坏人,什么人都有,那些把号码记下来的人是骗自己的人,而有些人会为了考脑力而不作弊。大大不能这么想,谁说批处理不能拿来做游戏啊?那个【批处理版斗地主】做的能跟用高级语言写的媲美了~批处理 不是 不是拿来做游戏的,而是有点不适合而已~但,用批处理做游戏可以让一个人想突破障碍、问问题、被启发、突然明白,这个过程是很爽的~当你用批处理写好一程序/游戏,你会迫不及待的把它放到这论坛来吧!不是为了炫耀,而是为了给网友更改,说不定有人能写的更好、更妙、更精简呢?
当然批处理很多缺点,不能计算浮点数啊、不能handle太大的数啊,等等的限制。但这些总会有一天会被解决的!
必须相信:问题总有一天,会被一个甚至多个网友的妙答而解决的~
所以我希望大大不要灰心!!
我总觉得我说的离题了~
作者: cjiabing 时间: 2011-9-6 21:36
我实在不明白楼主的“去掉用户在批处理等待时输入的东西”到底是什么东西。
不同的人对批处理有不同的理解,而批处理的初衷也不是拿来做游戏的,而且,批处理也不是很适宜做游戏,因此,许多人对批处理游戏是不看好的,这也不能怪大家。
但是,批处理做游戏也是可以的,而且我们的原创作品区就有很多有意义的批处理游戏,虽然有的用到了第三方,但游戏的主体和构思是基于批处理的,我们也看到了许多优秀的批处理游戏。所以,说批处理做游戏不行、不好都是不可相信的。
对于游戏,我们是这样说的,游戏能放松身心,启迪智慧。小孩子都是玩游戏长大的,通过游戏,我们认识了世界,获得了知识,体验了快乐。同样,批处理游戏,也能使得各位开心,也能激发大家的灵感。许多科学家、发明家等,都是喜欢玩游戏的,比如爱因斯坦、爱迪生、鲁班等等。在GOOGLE公司,公司办公室的墙壁通常都是能写能画的,给员工随意画画,许多灵感就来自这样一种休闲游戏上。
批处理同样需要游戏。游戏也需要编程,需要提出问题、分析问题、解决问题,需要批处理技术和批处理思想。通过编写批处理游戏,提高你的编程水平。通过玩批处理游戏,使得你对批处理产生更大的兴趣。就比如斗地主游戏,想法、流程可能都一样,但是,编写代码的构思过程、技术手法可能大大不一样。
玩批处理游戏并不会降低你对批处理的认识,而是提高了;写批处理游戏不会是不务正业,而是自己批处理技术水平的一个考验。
在玩乐中促进学习,在学习中促进玩乐。
作者: web 时间: 2012-10-16 22:26
学无止境 创意无限
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |