java 代码编写 "猜数游戏"项目 程序运行显示一个文本菜单主界面: 1 开始猜数 2 退出 游戏者选择1,则内部

“猜数游戏”项目程序运行显示一个文本菜单主界面:1开始猜数2退出游戏者选择1,则内部自动产生一个1-100之间的随机数,让游戏者来猜这个数,游戏者从键盘输入数字后,程序给... “猜数游戏”项目

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

1 开始猜数

2 退出

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

猜数游戏的扩展(能力强的选做,可加20分):
添加“游戏难度”设置功能:
主菜单增加一项 “游戏参数设置”,主界面显示如下:
1 开始猜数
2 游戏参数设置
9 退出
用户选择2后,显示参数设置子菜单:
1 游戏难度设置
选1后,提示:“1 难 ;2 一般;3 容易”,读入用户选择,系统设置相应的允许输入的最大次数(1-3对应的最大允许输入的次数是:难--4;一般-6;容易-8 );

程序的测试(评分的重要依据):
程序提交前应进行测试,测试的前提:程序能编译通过,能启动运行。

测试用例:
输入 期望结果 实际输出

主菜单选择 2 程序退出
主菜单选择 1 进入猜数
正常猜数 给出正确的提示并处理
故意猜错8次 给出超过次数的提示
在主菜单输入3、a
、回车字符 显示输入错误信息,可以重新输入

在猜数时输入"1a" 显示输入错误信息,可以重新输入
、回车
展开
 我来答
黑夜墨迹
2013-09-27
知道答主
回答量:2
采纳率:0%
帮助的人:2877
展开全部
import java.util.Random;

import javax.swing.*;

public class Game {

private static Random r = new Random();
private static int difficulty = 3;
private static int times = 8;
private static int digit = 0;
private static int number = 0;
private static boolean good = false;
private static int m = r.nextInt(100);

public static void main(String[] args) {
inPut();

}

private static void inPut() {
String inPut = JOptionPane.showInputDialog("请输入数字:1:开始猜数 2:游戏参数设置 9:退出游戏");
int a = Integer.parseInt(inPut);
if(a!=1 && a!=2 && a!=9) {
JOptionPane.showMessageDialog(null, "输入有误,请重新输入!");
inPut();
}
switch(a) {
case 1:
start();
break;
case 2:
modify();
break;
case 9:
break;
}
}

private static void start() {

String inPut = JOptionPane.showInputDialog("游戏开始 请输入所猜数字1-100");
digit = Integer.parseInt(inPut);
if(digit>100 || digit<1) {
JOptionPane.showMessageDialog(null, "输入有误,请重新输入!");
start();
}

number = 1;
while(compare()) {
if(number>=times) {
JOptionPane.showMessageDialog(null, "超过次数,尚需努力");
break;
}
number++;
}
if(good) {
double x = (1 - (double)number/8.00) * 100;
JOptionPane.showMessageDialog(null, "恭喜你猜对了,你的战斗力是"+x+"%");
}

}

private static boolean compare() {
if(digit>m) {
JOptionPane.showMessageDialog(null, "大了");
if(number<times) {
String inPut = JOptionPane.showInputDialog("重新输入所猜数字1-100");
digit = Integer.parseInt(inPut);
}
return true;
}
else if(digit<m) {
JOptionPane.showMessageDialog(null, "小了");
if(number<times) {
String inPut = JOptionPane.showInputDialog("重新输入所猜数字1-100");
digit = Integer.parseInt(inPut);
}
return true;
}
else {
good = true;
return false;
}
}

private static void modify() {
String inPut = JOptionPane.showInputDialog("1:困难 2:一般 3:简单");
difficulty = Integer.parseInt(inPut);
switch(difficulty) {
case 1:
times = 4;
start();
break;
case 2:
times = 6;
start();
break;
case 3:
times = 8;
start();
break;
}

}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式