日期:2014-05-20  浏览次数:20759 次

给俺看看吧 初学者的悲剧??
这是题目: 下面是我的自己的代码

猜数游戏”项目

程序运行显示一个文本菜单主界面:

1 开始猜数

2 退出

游戏者选择1,则内部自动产生一个1-100之间的随机数,让游戏者来猜这个数,游戏者从键盘输入数字后,程序给出相应的提示信息(如果比实际小,则提示“小了”,反之则提示“大了”),游戏者根据提示不断从键盘输入数字,若猜中,则提示“恭喜你猜对了,你的战斗力是x%"(x=1-n/8,n是猜中时的次数),游戏者回车确认后,回到主界面;如果输入次数超过8次,则提示“超过次数,尚需努力”,游戏者回车确认后,回到主界面。游戏者若选择2则退出程序。
用户在输入过程中若输入错误,应提示:“输入错误,请重新输入”

猜数游戏的扩展(能力强的选做,可加20分):
  添加“游戏难度”设置功能:
 主菜单增加一项 “游戏参数设置”,主界面显示如下:
1 开始猜数
2 游戏参数设置
9 退出
用户选择2后,显示参数设置子菜单:  



import java.util.Random;
import java.util.Scanner;

public class si {
  public static void main(String[] args){
   
  System.out.println("***欢迎进入猜字游戏***");
  System.out.print("1.开始游戏 ");
  System.out.println("2.退出");  
  System.out.println("*******************");
  Random r = new Random();
  int num = r.nextInt(100);
  Scanner scanner= new Scanner(System.in);
  int command=scanner.nextInt();
  // 这个当输入1时开始:2时退出
  if(command==2){
  System.exit(0);
  }
  while(command==1){
  int guessNum=0;
  System.out.println("请输入你的猜测");
  // 下面是用键盘输入 存在sc中
  Scanner sc = new Scanner(System.in);
  guessNum=sc.nextInt();
  int compare=guessNum-num;
  if(compare>0){
  System.out.println("你的猜测偏大");
  }
  if(compare<0){
  System.out.println("你的猜测偏小");
  }
  if(compare==0){
  System.out.println("猜测结果正确,游戏结束!");
  System.exit(0);
  }
  }
  if(command!=1||command!=2){
  System.out.println("输入非法字符,强制退出!");  
  System.exit(0);
  }

  }
}


我想加入题目要求中的 次数限制 但是我怎么也加不进去 初学者的悲剧吗>?求救的孩子在线等!!

------解决方案--------------------
再看看这个
Java code

import java.util.Random;
import java.util.Scanner;

public class Test {

    private Scanner scanner = new Scanner(System.in);
    private int command;
    private int time;
    private int guessNum;
    private int num;

    private void menu() {
        System.out.println("***欢迎进入猜字游戏***");
        System.out.print("1.开始游戏 ");
        System.out.println("2.退出");
        System.out.println("*******************");
        chooseMenu();
    }

    private void chooseMenu() {
        command = scanner.nextInt();
        switch (command) {
            case 1:
                rondomNum();
                guessNum();
                break;
            case 2:
                System.exit(0);
                break;
            default:
                System.out.println("输入错误,请重新输入");
                menu();
        }
    }

    private void rondomNum() {
        Random r = new Random();
        num = r.nextInt(100);
    }

    private void guessNum() {
        
        System.out.println("请输入你的猜测");
        // 下面是用键盘输入 存在sc中
        //Scanner sc = new Scanner(System.in);
        guessNum = scanner.nextInt();
        int compare = guessNum - num;
        if (compare > 0) {
            System.out.println("你的猜测偏大");
            if (++time == 8) {
                System.out.println("超过次数,尚需努力");
                menu();
            }
        }
        if (compare < 0) {
            System.out.println("你的猜测偏小");
            if (++time == 8) {
                System.out.println("超过次数,尚需努力");
                menu();
            }
        }
        if (compare == 0) {
            System.out.println("猜测结果正确,游戏结束!");
            System.out.println(1 - time / 8.00 + "%");
            System.exit(0);
        }
        guessNum();
    }

    public static void main(String[] args) {

        Test test = new Test();
        test.menu();
    }
}