捣腾Java 猜数字游戏……
在学Java基础班,前天刚学习用JAVA写一个猜数字的小游戏。
- <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">
- </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">
- </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">
- </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">
- </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">
- </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,系统自己输出一个随机数当答案。然后用随机数来猜测,最后算出猜测了多少次?(是的,就是拼人品,看运气……)
- <font size="4"><font color="#ff8c00">class Temp2 {
- public static void main (String[] args) {
- System.out.println ("请输入1-1000的整数");
- int guessNumber = (int) (Math.random()*1000) + 1;</font>
- <font color="#ff8c00"> int count = 0;
- while (true) {
- int cai = (int) (Math.random()*1000) + 1;
- System.out.println(cai);
- count ++;
- if (cai > guessNumber) {
- System.out.println ("猜大了!");
- }
- else if (cai < guessNumber) {
- System.out.println ("猜小了!");
- }
- else {
- System.out.println ("恭喜你,答对了!!!!!!");
- break;
- }
- }
- System.out.println ("总共尝试了 " + count + " 次!!!!");
- }
- }</font></font>
复制代码玩儿了一会儿,感觉不尽兴。然后想加快效率。就想了一个办法。效果入下
二、把随机数范围扩大到1-1000,系统自己输出一个随机数当答案。然遍历答案数来猜测,最后算出猜测了多少次?(没错,三分靠人品,七分靠CPU……)
- <font size="4" color="#ff8c00">class Temp2 {
- public static void main (String[] args) {
- int guessNumber = (int) (Math.random()*100000) + 1;
- int count = 0;
- int cai = 0;
-
- while (true) {
-
- cai ++;
- System.out.println(cai);
- count ++;
- if (cai > guessNumber) {
- System.out.println ("猜大了!");
- }
- else if (cai < guessNumber) {
- System.out.println ("猜小了!");
- }
- else {
- System.out.println ("恭喜你,答对了!!!!!!");
- break;
- }
- }
- System.out.println ("总共尝试了 " + count + " 次!!!!");
- }
- }</font>
复制代码 觉得效率还是不够。最好的是每次都取中。比方说1-1000. 首先猜500,如果大了猜250 ,如果小了猜750……这样效率是最高的。但是,能力有限,想不到解决办法。有没有大神帮俺答疑。谢了……
鞠躬,
下台……
|