黑马程序员技术交流社区

标题: 我用java写了一个猜数字的游戏,但是感觉代码比较冗杂 [打印本页]

作者: 丁朋    时间: 2012-7-14 20:34
标题: 我用java写了一个猜数字的游戏,但是感觉代码比较冗杂
本帖最后由 丁朋 于 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();
   }
  }
  
}
}

游戏截图:


作者: 陈淑飞    时间: 2012-7-14 20:55
本帖最后由 陈淑飞 于 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();
   }
  }
  
}
}



作者: 陆强强    时间: 2012-7-14 21:54
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:");
   }
  }
作者: 丁朋    时间: 2012-7-15 20:43
谢谢各位了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2