A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 丁朋 于 2012-7-15 20:38 编辑

我用java写了个猜数字的游戏,但是感觉代码比较冗杂,希望各位黑马同学能帮我简化下。
游戏原理:
利用Random类生成一个随机数存储起来,用Scanner类接受键盘输入数字保存到变量,然后对比。
最后猜中后,我本来想用Y代表逃走的,但是Y接受进来不知道怎么对比。不知道可不可以用equals对比
所以我就用了1来代表逃走,其他任意键继续游戏。大家试试帮我简化下吧。

import java.util.Random;
import java.util.Scanner;
class RandomGame
{
public static void main(String[] args)
{
  Random r=new Random();
  int a=r.nextInt(1000);
    // System.out.println(a);
  Scanner input=new Scanner(System.in);
  System.out.print("请输入数字0-1000:");
  int b=input.nextInt();
  int c=1;

  while(true)
   {
   if(a==b)
   {
    System.out.println("恭喜你猜中了,奖品是如花的入幕之宾!");
    a=r.nextInt(1000);
    System.out.println("你准备逃走吗?1:逃走 任意键继续");
    if(c==input.nextInt())
    break;
    else
    {
    System.out.print("请输入数字0-1000:");
    b=input.nextInt();
    }
   }
   else if(a>b)
   {
   System.out.println("你输入的数字小了!");
   System.out.print("请输入数字0-1000:");
   b=input.nextInt();
   }
   else
   {
   System.out.println("你输入的数字大了!");
   System.out.print("请输入数字0-1000:");
   b=input.nextInt();
   }
  }
  
}
}

游戏截图:

评分

参与人数 1技术分 +1 收起 理由
韦念欣 + 1 赞一个!

查看全部评分

3 个回复

正序浏览
谢谢各位了
回复 使用道具 举报
Random r=new Random();
  int a=r.nextInt(1000);
  Scanner input=new Scanner(System.in);
  System.out.print("请输入数字0-1000:");
  int b=0;
  while((b=input.nextInt())!=0) //不要老用while(true)这种死循环;不好控制
  {
   if(a==b)
   {
    System.out.println("恭喜你猜中了,奖品是如花的入幕之宾!");
    a=r.nextInt(1000);
    System.out.println("你准备逃走吗?0:逃走 任意键继续");
  
   }
   else if(a>b)
   {
   System.out.println("你输入的数字小了!");
   System.out.print("请输入数字0-1000:");
   }
   else
   {
   System.out.println("你输入的数字大了!");
   System.out.print("请输入数字0-1000:");
   }
  }

评分

参与人数 1技术分 +1 收起 理由
韦念欣 + 1 赞一个!

查看全部评分

回复 使用道具 举报
本帖最后由 陈淑飞 于 2012-7-14 20:57 编辑

lz 写的已经,很好了。呵呵 .
-------------------------
import java.util.Random;
import java.util.Scanner;
class RandomGame
{
public static void main(String[] args)
{
  Random r=new Random();
  int a=r.nextInt(1000);
    // System.out.println(a);
  Scanner input=new Scanner(System.in);
  System.out.print("请输入数字0-1000:");
  int b=input.nextInt();
  //int c=1; 省掉
  
  while(true)
   {
   if(a==b)
   {
    System.out.println("恭喜你猜中了,奖品是如花的入幕之宾!");
    a=r.nextInt(1000);
    System.out.println("你准备逃走吗?Y:逃走 任意键继续");
    //if(c==input.nextInt())   可换成字符串比较
    if("Y".equals(input.next()))
    break;
     //else  省掉
    // {  省掉

     System.out.print("请输入数字0-1000:");
     b=input.nextInt();
     //}  省掉
   }
   else if(a>b)
   {
   System.out.println("你输入的数字小了!"); //要说再省的话,你可以构造些函数,下面的代码块,封闭到一函数中
   System.out.print("请输入数字0-1000:");
   b=input.nextInt();
   }
   else
   {
   System.out.println("你输入的数字大了!");
   System.out.print("请输入数字0-1000:");
   b=input.nextInt();
   }
  }
  
}
}


回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马