/**
简单的猜数字小游戏 要求如下:
用户输入想猜测数字的范围,输入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);}}
}

View Code

 

转载于:https://www.cnblogs.com/zyjcxc/p/5449695.html