用java编写一个猜数游戏

游戏者选择1,则内部自动产生一个1-100之间的随机数,让游戏者来猜这个数,游戏者从键盘输入数字后,程序给出相应的提示信息(如果比实际小,则提示“小了”,反之则提示“大了... 游戏者选择1,则内部自动产生一个1-100之间的随机数,让游戏者来猜这个数,游戏者从键盘输入数字后,程序给出相应的提示信息(如果比实际小,则提示“小了”,反之则提示“大了”),游戏者根据提示不断从键盘输入数字,若猜中,则提示“恭喜你猜对了,你的战斗力是x%"(x=1-n/8,n是猜中时的次数),游戏者回车确认后,回到主界面;如果输入次数超过8次,则提示“超过次数,尚需努力”,游戏者回车确认后,回到主界面。游戏者若选择2则退出程序。
用户在输入过程中若输入错误,应提示:“输入错误,请重新输入”
添加“游戏难度”设置功能:
主菜单增加一项 “游戏参数设置”,主界面显示如下:
1 开始猜数
2 游戏参数设置
9 退出
用户选择2后,显示参数设置子菜单:
1 游戏难度设置
选1后,提示:“1 难 ;2 一般;3 容易”,读入用户选择,系统设置相应的允许输入的最大次数(1-3对应的最大允许输入的次数是:难--4;一般-6;容易-8 );
展开
 我来答
〖heaven〗a018cd
2011-09-28 · TA获得超过216个赞
知道答主
回答量:80
采纳率:100%
帮助的人:48.4万
展开全部
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;
}

}

}
llcstudent
2011-09-17 · TA获得超过140个赞
知道答主
回答量:73
采纳率:0%
帮助的人:46.1万
展开全部
import java.util.Scanner;

public class test1 {
Scanner input = new Scanner(System.in);
int guess, ans;
boolean is = true;
private int tem=8;

public int getTem() {
return tem;
}

public void setTem(int tem) {
this.tem = tem;
}

public void init() {

while (is) {
System.out.println("请选择:");
System.out.println("请选择:1 开始猜数");
System.out.println("请选择:2 游戏参数设置");
System.out.println("请选择:9 退出");
int a = input.nextInt();
switch (a) {
case 1:
this.start(tem);
is = false;
break;
case 2:
this.choose();
this.init();
is = false;
break;
case 9:
System.exit(0);
default:
break;
}
}
}

public void start(int tem) {
int times = 0;
ans = (int) (Math.random() * 100 + 1);
System.out.println("请输入要猜的数:(1-100)");

for (double i = 1; i <= tem; i++) {
int a = input.nextInt();
if (a > ans) {
System.out.println("猜大了");
} else if (a < ans) {
System.out.println("猜小了");
} else if (a == ans) {
System.out.println("恭喜你猜对了,你的战斗力是" + (1 - i / tem) * 100 + "%");
}
if (i==tem){
System.out.println("超过次数,尚需努力");
}
}

}

public void choose() {
System.out.println("1. 游戏难度设置");
int a = input.nextInt();
System.out.println("1 难 ;2 一般;3 容易");
int b = input.nextInt();
switch (b) {
case 1:
this.setTem(4);
break;
case 2:
this.setTem(6);
break;
case 3:
this.setTem(8);
break;
default:
break;
}
}
}
-------------------------------------------------------------------------------------------------------------
测试类:
public class test {
public static void main(String[] args) {
test1 t=new test1();
t.init();
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pd4020
2011-09-21
知道答主
回答量:5
采纳率:0%
帮助的人:8343
展开全部
好犀利 不会
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式