
正文
猜字谜游戏java代码,java猜数字游戏代码
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
用java编写一个猜字游戏程序,答案不限
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
int guessTime = 8;
boolean restart = true;
while (restart) {
System.out.println("请选择下列选项!");
System.out.println("1 ----开始猜数");
System.out.println("2 ----游戏参数设置");
System.out.println("9 ----退出");
boolean flag = true;
String choose = null;
Scanner in = null;
while (flag) {
in = new Scanner(System.in);
choose = in.next();
if (!choose.matches("[129]")) {
System.out.println("输入错误,请重新输入");
continue;
} else {
break;
}
}
if ("2".equals(choose)) {
boolean chooseLevel = false;
System.out.println("请选择游戏难度!");
System.out.println("1 ----难(4次)");
System.out.println("2 ----一般(6次)");
System.out.println("3 ----容易(8次)");
while (!chooseLevel) {
String s = in.next();
if (s.matches("[123]")) {
switch (Integer.parseInt(s)) {
case 1:
guessTime = 4;
chooseLevel = true;
break;
case 2:
guessTime = 6;
chooseLevel = true;
break;
case 3:
guessTime = 8;
chooseLevel = true;
break;
default:
System.out.println("你输入的选择不存在(请输入1、2、3)");
break;
}
} else {
System.out.println("你输入的选择不存在(请输入1、2、3)");
}
}
continue;
}
if ("9".equals(choose)) {
System.exit(0);
}
if ("1".equals(choose)) {
String number = String.valueOf(Math.round(Math.random() * 100) + 1);
System.out.println(number);
boolean getIt = false;
int count = 0;
while (!getIt ++count = guessTime) {
System.out.println("请输入你猜的值(1-100)");
String s = in.next();
if (s.matches("\\d+")) {
try {
if (Integer.parseInt(s) == Integer.parseInt(number)) {
getIt = true;
break;
} else if (Integer.parseInt(s) Integer.parseInt(number)) {
System.out.println("你输入的数字大了!");
} else {
System.out.println("你输入的数字小了!");
}
} catch (NumberFormatException e) {
System.out.println("你输入的数据超过Integer的最大范围!");
continue;
}
} else {
System.out.println("你输入的数据不合法!");
continue;
}
}
if (getIt) {
System.out.println("恭喜你猜对了,你的战斗力是" + Math.round((1 - count * 1.0 / guessTime) * 100) + "%");
} else {
System.out.println("超过次数,尚需努力");
}
in.nextLine();
in.nextLine();
}
}
}
}
相关问答
Q1: JAVA求助 一个关于英文猜字谜的小游戏编程
我想了个简单的思路1.既然是单词是否有相同顺序的字母..分解来看 就是2个字母组合是最小的 所以把s1 和 s2 分解成 两个字母的顺序组合就可以了.2.然后比较分解出来的 2个字母组合数组或者集合 有相同的2个字母组合 就返回true 比如: slient 我把它分成== sl li ie en nt listen == li is st te en然后遍历比较 只要 里面有一个 是相同的就跳出======================================import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class riddle {public static boolean isAnagram(String s1,String s2){
boolean flag = false;
ListString s1list = new ArrayListString();
for (int i = 0; i s1.length()-1; i++) {
s1list.add(s1.substring(i, i+2));
}
ListString s2list = new ArrayListString();
for (int j = 0; j s2.length()-1; j++) {
s2list.add(s2.substring(j, j+2));
}
for (int i = 0; i s1list.size(); i++) {
String temp = s1list.get(i);
for (int j = 0; j s2list.size(); j++) {
String temp2 = s2list.get(j);
if (temp.equals(temp2)) {
flag = true;
break;
}
}
}
return flag;
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("请输入第1个单词:");
String s1 = in.next();
System.out.println("请输入第2个单词:");
String s2 = in.next();
boolean result = riddle.isAnagram(s1, s2);
if (result) {
System.out.println("这是个谜语");
}else{
System.out.println("不是谜语");
}
}
} ==========================================运行结果==========================================请输入第1个单词:
slient
请输入第2个单词:
listen
这是个谜语
==========================================对于只输入i和li 或者是 i i 这样的 也是会判断为false我在数组截取那里 做了判断..所以如果是1个字符 是不截取的..所以不会比较不过整体没有优化..应该能优化一下...思路大概就这样
Q2: Java如何用for循环猜字谜最好也写上while循环
for循环和while循环其实可以转换的,所以无所谓什么时候用哪个循环,看你自己意愿了
比如:
for(int i=0;i10;i++){ 循环代码} 等效于
int i=0;while(i10){
循环代码
i++;
}
而:
while(条件){
循环代码
}
等效于:
for(;条件;){
循环代码
}






