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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© jacobsnow 中级黑马   /  2016-4-23 21:55  /  498 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

捣腾Java 猜数字游戏……



      在学Java基础班,前天刚学习用JAVA写一个猜数字的小游戏。

         
是这样的

  1. <div style="text-align: left;"><span style="line-height: 2.2em;"><font size="4">import java.util.Scanner;</font></span></div><div style="text-align: left;"><span style="line-height: 2.2em;"><font size="4">class Temp2 {</font></span></div><div style="text-align: left;"><span style="line-height: 2.2em;"><font size="4">public static void main (String[] args) {</font></span></div><div style="text-align: left;"><span style="line-height: 2.2em;"><font size="4">Scanner sc = new Scanner(System.in);</font></span></div><div style="text-align: left;"><span style="line-height: 2.2em;"><font size="4">double i = Math.random();</font></span></div><div style="text-align: left;"><span style="line-height: 2.2em;"><font size="4">System.out.println(i);</font></span></div><div style="text-align: left;"><span style="line-height: 2.2em;"><font size="4">System.out.println ("请输入1-1000的整数");</font></span></div><div style="text-align: left;"><font size="4">
  2. </font></div><div style="text-align: left;"><span style="line-height: 2.2em;"><font size="4">int guessNumber = (int) (Math.random()*1000) + 1;</font></span></div><div style="text-align: left;"><font size="4">
  3. </font></div><div style="text-align: left;"><span style="line-height: 2.2em;"><font size="4">while (true) {</font></span></div><div style="text-align: left;"><span style="line-height: 2.2em;"><font size="4">int cai = sc.nextInt();</font></span></div>                        <div style="text-align: left;"><font size="4">
  4. </font></div><div style="text-align: left;"><span style="line-height: 2.2em;"><font size="4">if (cai > guessNumber) {</font></span></div><div style="text-align: left;"><span style="line-height: 2.2em;"><font size="4">System.out.println ("猜大了!");</font></span></div><div style="text-align: left;"><span style="line-height: 2.2em;"><font size="4">}</font></span></div><div style="text-align: left;"><span style="line-height: 2.2em;"><font size="4">else if (cai < guessNumber) {</font></span></div><div style="text-align: left;"><span style="line-height: 2.2em;"><font size="4">System.out.println ("猜小了!");</font></span></div><div style="text-align: left;"><span style="line-height: 2.2em;"><font size="4">}</font></span></div><div style="text-align: left;"><span style="line-height: 2.2em;"><font size="4">else {</font></span></div><div style="text-align: left;"><span style="line-height: 2.2em;"><font size="4">System.out.println ("恭喜你,答对了!!!!!!");</font></span></div><div style="text-align: left;"><span style="line-height: 2.2em;"><font size="4">}</font></span></div><div style="text-align: left;"><font size="4">
  5. </font></div><div style="text-align: left;"><span style="line-height: 2.2em;"><font size="4">}</font></span></div><div style="text-align: left;"><font size="4">
  6. </font></div><div style="text-align: left;"><span style="line-height: 2.2em;"><font size="4">}</font></span></div><div style="text-align: left;"><span style="line-height: 2.2em;"><font size="4">}</font></span></div>
复制代码

本着学以致用(bu zhe teng hui si)的原则。做了部分改造。

一、把随机数范围扩大到1-1000,系统自己输出一个随机数当答案。然后用随机数来猜测,最后算出猜测了多少次?(是的,就是拼人品,看运气……)

  1. <font size="4"><font color="#ff8c00">class Temp2 {
  2.         public static void main (String[] args) {
  3.                 System.out.println ("请输入1-1000的整数");

  4.                 int guessNumber = (int) (Math.random()*1000) + 1;</font>

  5. <font color="#ff8c00">                int count = 0;

  6.                 while (true) {
  7.                         int cai = (int) (Math.random()*1000) + 1;
  8.                         System.out.println(cai);
  9.                         count ++;

  10.                         if (cai > guessNumber) {
  11.                                 System.out.println ("猜大了!");
  12.                         }
  13.                         else if (cai < guessNumber) {
  14.                                 System.out.println ("猜小了!");
  15.                         }
  16.                         else {
  17.                                 System.out.println ("恭喜你,答对了!!!!!!");
  18.                                 break;
  19.                         }

  20.                 }
  21.                 System.out.println ("总共尝试了 " + count + " 次!!!!");
  22.         }
  23. }</font></font>
复制代码
玩儿了一会儿,感觉不尽兴。然后想加快效率。就想了一个办法。效果入下

二、把随机数范围扩大到1-1000,系统自己输出一个随机数当答案。然遍历答案数来猜测,最后算出猜测了多少次?(没错,三分靠人品,七分靠CPU……)

  1. <font size="4" color="#ff8c00">class Temp2 {
  2.         public static void main (String[] args) {

  3.                 int guessNumber = (int) (Math.random()*100000) + 1;

  4.                 int count = 0;
  5.                  int cai = 0;
  6.        
  7.                 while (true) {
  8.                        
  9.                         cai ++;
  10.                         System.out.println(cai);
  11.                         count ++;

  12.                         if (cai > guessNumber) {
  13.                                 System.out.println ("猜大了!");
  14.                         }
  15.                         else if (cai < guessNumber) {
  16.                                 System.out.println ("猜小了!");
  17.                         }
  18.                         else {
  19.                                 System.out.println ("恭喜你,答对了!!!!!!");
  20.                                 break;
  21.                         }

  22.                 }
  23.                 System.out.println ("总共尝试了 " + count + " 次!!!!");
  24.         }
  25. }</font>
复制代码
觉得效率还是不够。最好的是每次都取中。比方说1-1000. 首先猜500,如果大了猜250 ,如果小了猜750……这样效率是最高的。但是,能力有限,想不到解决办法。有没有大神帮俺答疑。谢了……

鞠躬,

下台……



1 个回复

正序浏览
顶一个,学习了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马