联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!
@echo off title 猜数字小游戏 mode con:cols=60 lines=30 color 9a ::此处标签用于下次猜测的开始。 :a set /a x=4 echo 猜数字的范围从1开始。最高等级是13级 set /p s=请输入你像挑战的等级: ::将s赋值给s1,s1将用于判断猜对数字后对你的评语。 set s1=%s% ::因为1等级已经大于random所产生数的最大数。当所选择的等级高于13时就默认为13,并打印提示用户 if %s% gtr 13 set s=13 echo 你挑战的等级是%s%级 ::标签 x 和xx 用来使x以2的倍数来递增,递增次数有等级决定 :x if %s% neq 0 ( set /a s=%s%-1 goto xx )else ( goto y ) :xx set /a x=%x%*2 goto x :y ::echo %x% ::将等级以2的倍数递增所得的数减一 满足最大等级13级产生的数字等于随即数的最大数 set /a x=%x%-1 ::产生一个从1到%x%随即数 set /a p= %random%^%%x%+1 :: 设置b用来计算已经猜测的次数 set b=0 ::echo %p% ::此处标签用于重新开始输入 :aa set /p a=请在1到%x%之间猜测: ::每重新输入一次b就加一 set /a b=%b%+1 ::判断输入的数跟产生数字大小比较的结果并输出 if %a% neq %p% ( if %a% lss %p% ( echo too small echo 你已经猜了%b%次 goto aa ) else ( echo too large echo 你已经猜了%b%次 goto aa ) ) Else ( echo 你一共猜了%b%次 ) ::根据比较次数选择评价语 set /a c=%s1%+2 if %b% gtr %c% ( echo 你很失败 )else echo very good! ::判断用户是否继续玩 set /p j=输入y继续其他退出: if %j% equ y ( cls goto a )else ( exit ) pause
话说把批处理作为一种程序语言还是不好的
例如,你让我输个数字,结果我输入字母,你是无法检测的。
Originally posted by HAT at 2009-5-11 02:14: 批处理不是语言,是脚本。
Originally posted by HAT at 2009-5-11 02:14: 也许你无法检测,但是批处理可以检测。
Originally posted by wishpopo at 2009-5-11 10:21: 我用goto语句是因为了随所选等级而把数字递增。
以上都是我自己的看法有什么不对你就对我说。我们一起交流一下。
我不知道HAT兄对于脚本和语言的定义是什么,至少在我眼里脚本是一种语言: en.wikipedia.org ... 。 可能大家指的“语言”可能是“通用语言”。
是的,我确实一直以为不可以,谷歌了一下也没结果,希望HAT兄不吝赐教。