CODE: [Copy to clipboard]
@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
[