鄙人接触本论坛已经大半年了,一直是碌碌无为。深感惭愧,进来突发感想想练习一下自己,鄙人就决定从感觉上最好掌握的if语句开始练习。于是我就根据我见到的第一个c++课程里面的猜数字开始练习。
这是我第一次发帖子。所以特地搜索一下论坛,发现论坛原来已经有猜数字小游戏的帖子。我大致看了一下给我自己写的还是有点区别的,就斗胆拿出来让大家看看。并且提点建议。并且希望能通过我这个帖子交到跟多喜欢dos命令的朋友。我qq号402643394
以下是我写的代码:
变量说明:s 代表选择的等级 x是确定要猜测数字最大值,a代表你输入的数,b代表你已经猜测的次数,c 代表你应该在什么范围内猜出数字猜不是很柴 ,p代表随即出来的数字。
@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
Last edited by wishpopo on 2009-5-12 at 10:12 ]