完成一个猜数字游戏,通过随机数方法编写一个小游戏程序

完成一个猜数字游戏,通过随机数方法编写一个小游戏程序,要求系统随机产生一个数字,用户客户端输入一个数字,通过与系统产生的数字大小进行比较,同时产生出相关提示,直到用户输入... 完成一个猜数字游戏,通过随机数方法编写一个小游戏程序,要求系统随机产生一个数字,用户客户端输入一个数字,通过与系统产生的数字大小进行比较,同时产生出相关提示,直到用户输入正确为止。用户输入的次数越少,用的时间越短那么就获胜。
提示:产生随机数的方法
Random rd = new Random();
rd.Next(0, 9);//产生0-9的随机数
展开
 我来答
qq505907915
2011-05-12
知道答主
回答量:5
采纳率:0%
帮助的人:6.6万
展开全部
  我自己编写的一个小程序,没有用到什么高深的技术,都是些基础的,希望对你有帮助
  public class GuessNum {

  public static void main(String[] args) {
  GuessNum.play();
  }

  static Scanner sc = new Scanner(System.in);

  static int guessCount = 0;

  // 生成不重复的随机数
  public static String[] generationNum(int count){
  String [] sNum = new String[count];

  int n = 10;

  Random ran = new Random();

  boolean[] bool = new boolean[n];

  int num = 0;

  for(int i=0;i<count;i++){

  do{
  num = ran.nextInt(n);
  }while(bool[num]);

  bool[num] = true;

  sNum[i] = String.valueOf(num);
  }

  return sNum;
  }

  // 获取猜测结果
  public static String getResult(String[] num, String inputNum){

  String resultMessage = "";
  int rightInAll = 0;
  int rightInNum = 0;
  int numLength = inputNum.length();

  // 根据输入的数与生成的数作比较(这里判断输入数有生成的数,且位置相同)
  for(int i=0;i<num.length;i++){

  // 判断输入数与生成数各位数是否相同
  if(num[(num.length-1) - i].equals(inputNum.substring(numLength - 1, numLength))){
  rightInAll++;
  }
  numLength--;
  }

  // 这里判断输入数有生成的数,但位置不同
  for(int j=0;j<num.length;j++){
  if(inputNum.indexOf(num[j]) > -1){
  rightInNum++;
  }
  }

  resultMessage = rightInAll + "A" + (rightInNum - rightInAll) + "B";

  return resultMessage;
  }

  public static void startGame(int count){
  boolean continueOrNot = false;
  String resultNum = "";
  String [] num = GuessNum.generationNum(count);

  for(int i=0;i<num.length;i++){
  resultNum += num[i];
  }

  do{
  System.out.print("input:");
  boolean maxLengthError = false;
  String inputNum = sc.next();

  if(inputNum.length() > count){
  System.out.println("The max length is " + count);
  maxLengthError = true;
  }

  if(inputNum.length() != count){
  System.out.println("Enter the " + count + " digit.");
  maxLengthError = true;
  }

  try{
  Integer.valueOf(inputNum);
  String message = GuessNum.getResult(num, inputNum);
  System.out.println("Guess:" + inputNum + "\tResult:" + message);
  guessCount++;

  if(guessCount > 10){
  break;
  }

  continueOrNot = winOrNot(message,resultNum,count);
  }catch(Exception e){
  String message = "";
  if(maxLengthError){
  message += "and ";
  }
  System.out.println(message + "It is not Number.");
  System.out.println("Input again.");
  }

  }while(continueOrNot == false);

  }

  public static boolean winOrNot(String message,String resultNum,int count){

  if((count + "A0B").equals(message)){
  System.out.println("ResultNum:" + resultNum + "\tguessCount:" + guessCount);
  System.out.println("You Win.");
  return true;
  }
  return false;
  }

  public static void play(){
  boolean again = false;
  int count = 4;
  do{
  GuessNum.startGame(count);
  System.out.println("continue?Enter y to continue.");
  if("y".equals(sc.next().toLowerCase())){
  again = true;
  }
  }while(again);

  System.out.println("Game Over.");
  }

  }
哎呦互动
2024-07-12 广告
我们的抽奖互动游戏软件专为提升活动现场氛围与参与度设计。软件界面简洁直观,操作便捷,支持多种抽奖方式,满足不同活动需求。通过随机算法确保公正公平,实时展示中奖结果,增强活动透明度。此外,软件还支持自定义奖项设置和个性化界面定制,让您的活动更... 点击进入详情页
本回答由哎呦互动提供
百度网友3e34fea
2011-05-13 · TA获得超过1755个赞
知道答主
回答量:74
采纳率:100%
帮助的人:41.8万
展开全部
0098675231
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式