广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 7011 个阅读者
 
发表文章 发表投票 回覆文章
  可列印版   加为IE收藏   收藏主题   上一主题 | 下一主题   
独吾洋 手机
个人头像
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x1 鲜花 x140
分享: 转寄此文章 Facebook Plurk Twitter 版主评分 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片
推文 x0
[Java][精华] 如何精简此猜数字程式<已解决>
Create an application called GuessingGame which simulates a simple number game where the computer picks a random number between 1 and 100 (inclusive) and the user must guess the number. The application will print the words HIGHER, LOWER or CORRECT after each guess. Here is an example run of the application (red indicates example user input):

Pick a number between 1 and 100.

The user will start off with 100 points. Each time a wrong guess is made, 1 point is subtracted from the point total.

程式执行时,在DOS视窗中:
Your guess: 5
HIGHER
Your guess: 57
HIGHER
Your guess: 99
LOWER
Your guess: 80
LOWER
..

访客只能看到部份内容,免费 加入会员 或由脸书 Google 可以看到全部内容



[ 此文章被独吾洋在2007-01-14 11:57重新编辑 ]

此文章被评分,最近评分记录
财富:30 (by codeboy) | 理由: 自我成长搂..^^



献花 x0 回到顶端 [楼 主] From:澳洲 | Posted:2007-01-05 12:43 |
boysxmen
数位造型
个人文章 个人相簿 个人日记 个人地图
路人甲
级别: 路人甲 该用户目前不上站
推文 x0 鲜花 x4
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

复制程式
import java.io.*;

public class Guess {
       public static void main(String[] args) {
              byte[] b = new byte[10];
              int g = 0;
              int index = 0;
              int x = 0;
              String sbuf = null;
              System.out.println("Pick a number between 1 and 100 :");
              while(true) {
                     try {
                            g = System.in.read();
                     }catch(IOException ex) {ex.printStackTrace();}
                     switch(g) {
                            case '\n':
                                   break;
                            case '\r':
                                   sbuf = new String(b, 0, index);
                                   x = Integer.parseInt(sbuf);
                                   if(x < 79) {
                                          System.out.println("Your Guess " + x + '\n' + "HIGHER" );
                                          index = 0;
                                          break;
                                   }else if(x > 79) {
                                          System.out.println("Your Guess " + x + '\n' + "LOWER");
                                          index = 0;
                                          break;
                                   }else {
                                          System.out.println("Your Guess " + x + '\n' + "CORRECT");
                                          index = 0;
                                          return;
                                   }
                            default:
                                   b[index++] = (byte)g;
                     }       
              }
       }
}

很简单的,关键是把输入转换成int 的过程,还有就是理解in.read是行缓冲的.


献花 x1 回到顶端 [1 楼] From:陕西 | Posted:2007-01-07 18:21 |
boysxmen
数位造型
个人文章 个人相簿 个人日记 个人地图
路人甲
级别: 路人甲 该用户目前不上站
推文 x0 鲜花 x4
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

你这个程序有几个基本的语法错误,所以不能Compile

1> 方法内部变量不能声明为private。
2> main()自身就是方法,不能在它内部又建立方法。
3> 方法内部的变量必须显式的初始化。
这段程序只作修改意义不大,根本无法达到期望的运行效果。建议重写,或参考2楼的代码,把答案改成随机数。基本实现不用变。


献花 x1 回到顶端 [2 楼] From:陕西 | Posted:2007-01-09 20:04 |
独吾洋 手机
个人头像
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x1 鲜花 x140
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用boysxmen于2007-01-9 20:04发表的 :
你这个程序有几个基本的语法错误,所以不能Compile

1> 方法内部变量不能声明为private。
2> main()自身就是方法,不能在它内部又建立方法。
3> 方法内部的变量必须显式的初始化。
.......

谢谢你的指导!

后来我自己跟随着老师的范例成功的做出来
只是现在又有另外个小问题
请问我现在修改后的文章内容 程式如何化二为一呢?


献花 x0 回到顶端 [3 楼] From:澳洲 | Posted:2007-01-10 17:44 |
boysxmen
数位造型
个人文章 个人相簿 个人日记 个人地图
路人甲
级别: 路人甲 该用户目前不上站
推文 x0 鲜花 x4
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

我机器上没有你的相关包,所以没办法运行,不过这样改可以compile通过。
  把你的Anwser类中的方法直接定义到GuessingGame中,不知道你是不是这个意思。
复制程式
import abr.srw.*;
import java.io.*;

public class GuessingGame{
       public static void main(String[] args) throws Exception{
              SimpleReader in       = new SimpleReader();
              SimpleWriter out = new SimpleWriter();
              
              int bet = 100;
              
              roll();
              
               while(bet > 0){
                      
                      out.print("Pick a random number between 1 to 100: ");
                     int guess = in.readInt();
                      
                     if(guess < getNum()){
                             bet= bet - 1;
                             out.println("Higher.");
                             out.println("Bet= " + bet); 
                             }
                      else if(guess > getNum()){
                             bet= bet - 1;
                             out.println("Lower.");
                             out.println("Bet= " + bet); 
                             }
                      else{
                             out.println("Correct! :)");
                             out.println("Bet= " + bet);
                             break;
                      }
               }
        }
        
        private static int num;
        
        public static void roll() {
              num = (int)(Math.random() * 100) + 1;
        }
       
        public static int getNum(){
              return num;
        }
}

此文章被评分,最近评分记录
财富:50 (by codeboy) | 理由: 感谢提供喔..^^


献花 x1 回到顶端 [4 楼] From:陕西 | Posted:2007-01-11 11:59 |
独吾洋 手机
个人头像
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x1 鲜花 x140
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用boysxmen于2007-01-11 11:59发表的 :
我机器上没有你的相关包,所以没办法运行,不过这样改可以compile通过。
  把你的Anwser类中的方法直接定义到GuessingGame中,不知道你是不是这个意思。
[code]import abr.srw.*;
import java.io.*;

.......

是的
就是那个意思

成功了! 表情
谢谢

可以再请问一个问题吗...
为什么要在private int num; 和public void roll() 中间加 "static" ?


献花 x0 回到顶端 [5 楼] From:澳洲 | Posted:2007-01-11 18:30 |
boysxmen
数位造型
个人文章 个人相簿 个人日记 个人地图
路人甲
级别: 路人甲 该用户目前不上站
推文 x0 鲜花 x4
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

static 修饰的方法不需new出对象就可以直接调用,称为静态方法。


献花 x1 回到顶端 [6 楼] From:陕西 | Posted:2007-01-11 19:25 |
独吾洋 手机
个人头像
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x1 鲜花 x140
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用boysxmen于2007-01-11 19:25发表的 :
static 修饰的方法不需new出对象就可以直接调用,称为静态方法。

嗯嗯

了解了

谢谢你的解答

我真是受益匪浅 ^^


献花 x0 回到顶端 [7 楼] From:澳洲 | Posted:2007-01-14 11:53 |
overing 手机
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x0 鲜花 x55
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

补一下...
static加在属性(类别变数)上面称做 "静态变数"
会由所有此类别产生之物件共用同一份资料


Zippy G2 600W
Intel C2Q Q9550
Gigabyte GA-X48-DQ6
Gigabyte GV-NX96T512H-B
G-skill pi 1100MHz 2Gx4
ACARD ANS-9010 32GB (Windows7 10sec boot!!)
WD 150GB(WD1500ADFD)/640GB(6400AASK)
献花 x0 回到顶端 [8 楼] From:未知地址 | Posted:2008-07-03 01:29 |

首页  发表文章 发表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.074973 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言