标签:
/**
简单的猜数字小游戏 要求如下:
用户输入想猜测数字的范围,输入1000则是0~1000之内的数字,程序就会内置一个 1 到 1000 之间的数字作
为猜测的结果,由用户猜测此数字,用户每猜测一次,由系统提示猜测结果:大了、小了或
者猜对了;直到用户猜对结果,则提示游戏结束。用户可以提前退出游戏,即,游戏过程中
,如果用户录入数字0则游戏终止.
加入新功能: 记次猜测次数功能,提示游戏开始时间,计猜测总用时功能,提示游戏结束时间
思路:
1.用户输入电脑生成的数值取值范围,接收并判断是否是合理数值?
2.游戏开始,显示当前系统时间.
3.计时从用户输入完正确取值范围后开始运行
4.判断用户输入数字是否是0,0结束游戏
5.其余情况判断是否大于或小于系统数字即可,每猜一次计数器++
6.游戏结束,显示用时,显示当前系统时间.
*/
public class GuessNumber { public static void main(String[] args) { Scanner scan = new Scanner(System.in); Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss E"); String nowTime = sdf.format(date); /*第一位不能是0,是0就退出游戏*/ String userRegex = "[1-9][\\d]+"; System.out.println("请输入您想挑战的0~最大数范围"); String userScan = scan.next(); /*判断用户输入的数字是否满足要求*/ if(userScan.matches(userRegex)){ int num = Integer.parseInt(userScan); guessGame(num); }else{ /*游戏结束时间*/ System.out.println("取值范围非法,无法开始游戏,再见"); System.out.println("游戏结束时间:"+nowTime); } } public static void guessGame(int num) { Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss E"); String nowTime = sdf.format(date); Scanner scan = new Scanner(System.in); Random rand = new Random(); int count = 0; //计数器 int guessNum = rand.nextInt(num); System.out.println("系统已经生成完毕"); long startTime = System.currentTimeMillis(); System.out.println("请输入您猜测的数字(0退出):"); int scanNum = scan.nextInt(); while(scanNum != guessNum){ if(scanNum == 0){ break; }else if(scanNum > guessNum){ count++; System.out.println("不好意思,猜大了,请继续输入"); scanNum = scan.nextInt(); }else if(scanNum < guessNum){ count++; System.out.println("不好意思,猜小了,请继续输入"); scanNum = scan.nextInt(); } } if(scanNum == 0){ System.out.println("遗憾退出,欢迎再来"); System.out.println("游戏结束时间:"+nowTime); }else{ long endTime = System.currentTimeMillis(); long totalTime = (endTime - startTime)/1000; System.out.println("恭喜,您用了"+count+"次猜对了!"); System.out.println("您的总用时:"+totalTime+"秒"); System.out.println("游戏结束时间:"+nowTime); } } }
标签:
原文地址:http://www.cnblogs.com/zyjcxc/p/5449695.html