一个产生交互的猜数字游戏,很普通的,输入一个数n,计算机将产生0-n中的一个数,然后通过猜测和计算机的提示,知道猜测成功后游戏结束。
这个游戏已经被改版了很多····
写这个只是为了解决腾讯的2012校园实习生招聘的一个面试题。
源代码:
- import java.util.Scanner;
- import java.util.Random;
- import java.util.InputMismatchException;
- /**
- * @author Administrator
- *
- */
- public class GuessNumber {
- private Scanner console = new Scanner(System.in);
- private int number;
- //设置随机产生的数字计算机随机产生一个要猜测的数字,参数表示随机产生的最大的猜测数
- public void setNumber(int level) {
- Random random = new Random();
- this.number = random.nextInt(level+1);
- }
- //用户输入猜测的数字
- public int inputJudgeNumber() {
- int guess;
- System.out.print("Plese input a Integer number :");
- try {
- guess = console.nextInt();
- } catch (InputMismatchException e) {
- throw new InputMismatchException("This is a junck number !");
- }
- return guess;
- }
- //进行游戏的有效操作
- public void playGame(){
- int i=0;
- int guess=inputJudgeNumber();
- while(true){
- i++;
- if(this.number>guess){
- System.out.println("The guess number is too small !");
- }
- else if(this.number<guess){
- System.out.println("The guess number is too big !");
- }
- else{
- System.out.println("All right , your are ok tatal : "+i+"s");
- break;
- }
- guess=inputJudgeNumber();
- }
- }
- }
做一个主方法来测试0-100之间最少多少次就可以猜中计算机随机生成的数。
- public static void main(String[] args) {
- System.out.println("We start guess number game now !");
- Scanner scan=new Scanner(System.in);
- System.out.print("Please input you want play level :");
- int level=scan.nextInt();
- GuessNumber gn=new GuessNumber();
- gn.setNumber(level);
- System.out.println("The Random number by guess creat over!");
- gn.playGame();
- }
本文转自 secondriver 51CTO博客,原文链接:http://blog.51cto.com/aiilive/851617,如需转载请自行联系原作者