
正文
java猜字母代码 java随机猜字母
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
Java 编程求帮助为猜字母游戏添加游戏等级。游戏等级设为三等:5、7和9,
import java.util.*;
public class test {
private static Scanner in = new Scanner(System.in);
public static void main(String args[]) {
int level, guessCount = 0;
String inputStr, guessStr = "";
showMsg("欢迎尝试猜字母游戏!");
showMsg("请输入游戏级别(5、7、9)");
level = getLevel(in.next());
guessStr = getGuessStr(level);
showMsg("游戏开始,请输入你所猜的" + level +
"个字符序列:(exit-退出, guess-作弊)");
while (!"exit".equals(inputStr = in.next())) {
if ("guess".equals(inputStr)) {
showMsg("偷偷告诉你,答案是:" + guessStr);
} else if (guessStr.equals(inputStr.toUpperCase())) {
showMsg("恭喜你猜对了!正确答案是:" + guessStr);
return;
} else {
showGuessState(guessStr, inputStr.toUpperCase(), ++guessCount);
}
}
}
private static void showGuessState(String guessStr, String inputStr, int guessCount) {
int letterRight = 0, positionRight = 0;
for (int i=0;iguessStr.length();i++) {
char s = guessStr.charAt(i);
if (inputStr.contains(s + "")) {
letterRight++;
if (s == inputStr.charAt(i)) {
positionRight++;
}
}
}
showMsg("你猜对" + letterRight + "个字符,"
+ "其中" + positionRight + "个字符的位置正确!"
+ "(总次数-" + guessCount + ", exit-退出)");
}
//获取字符串
private static String getGuessStr(int level) {
String guessStr = "";
Random random = new Random();
for (int i=0;ilevel;i++) {
char str = (char) ('A' + random.nextInt(26));
if (guessStr.contains(str + "")) {
i--;
} else {
guessStr += str;
}
}
return guessStr;
}
//获取游戏等级
private static int getLevel(String inputStr) {
switch (inputStr) {
case "5":
return 5;
case "7":
return 7;
case "9":
return 9;
default:
showMsg("请重新输入游戏等级:");
return getLevel(in.next());
}
}
//控制台输出带前缀
private static void showMsg(String msg) {
System.out.println("GuessingGame" + msg);
}
}
不谢~
相关问答
Q1: java猜字母问题
代码如下:
public class Test
{
public static void main(String[] args)
{
String string="";
for(int i=0;i106;i++)
string+="abcdefghijklmnopqrs";
System.out.println("字符串长度:"+string.length());
print(string);
}
private static void print(String string)
{
//将字符串变为字符数组以便将奇数位的字母用' '替换
char[] s=string.toCharArray();
for(int i=0;is.length;i+=2)
s[i]=' ';
//将用' '替换后字符数组变为字符串
string="";
for(int i=0;is.length;i++)
string+=s[i];
//得到去掉奇数位后的新串数组
String[] splitStrings=string.split(" ");
string="";
for(int i=0;isplitStrings.length;i++)
string+=splitStrings[i];
//如果只有一个就打印
if(string.length()==1)
System.out.println("结果:"+string);
else
print(string);
}
}
运行结果:
字符串长度:2014
结果:q
Q2: 用java写猜字母的小游戏;随机生成几个字母,玩家输入几个数与随机生成的数进行比较。
这个行不 ????
package zhouhu12;
import java.util.Arrays;
import java.util.Scanner;
/**
* 1.难度选项选择java猜字母代码;
* 2.随机生成相应数量的字符,并装入数组;
* 3。接受控制台输入的字符并加以比较。输出比较的结果。
* toUpperCase 转换为大写字母 toLowerCase 转换为小写。
*/
public class GuessABC {
public static void main(String[] args) {
int num;
do{
guessGame(generate());
System.out.println("1. 重新开始游戏,2.退出游戏");
Scanner sc=new Scanner(System.in);
num=sc.nextInt();
}while(num==1);
System.out.print("游戏结束,欢迎下次来玩。");
}
public static char[] generate(){
Scanner sc=new Scanner(System.in);
int g;
do{
System.out.println("欢迎进入猜字母游戏,请选择游戏难度等级:1.初级 2.中级 3.高级");
g=sc.nextInt();
}while(g1 || g4);
char arr[]=new char[g];
for(int i=0;ig;i++){
arr[i]=(char)(int)(Math.random()*26+97);
}
return arr;
}
public static void guessGame(char arr[]){
int count=0;
char arr1[]=new char[arr.length];
do{
System.out.println("请输入"+arr.length+"个字母:(输入 0 退出)");
Scanner sca=new Scanner(System.in);
String A=sca.next();
System.out.println(A);
char arr2[]=A.toCharArray();
arr1=Arrays.copyOf(arr2,3);
if(arr1[0]=='0')
break;
System.out.print("答案:");
for(int i=0;iarr.length;i++){
if(arr[i]==arr1[i]){
count++;
System.out.print(arr[i]);
}
else{
System.out.print("*");
}
}
System.out.println();
if(count==arr.length){
System.out.println("恭喜java猜字母代码你猜对了");
break;
}
else{
System.out.println("猜对"+count+"个,继续加油。");
}
count=0;
}while(arr1[0]!='0');
}
}
Q3: 编一个java应用程序,实现以下功能:1.程序随机在26个字母中选一个,让用
import java.util.Scanner;
public class B {
public static void main(String[] args) {
String chars = "abcdefghijklmnopqrstuvwxyz";
char nletter = chars.charAt((int)(Math.random() * 26));
Scanner scanner = new Scanner(System.in);
char input;
String c;
do{
System.out.println("清猜字母(a-z)!");
c = scanner.next();
input=c.charAt(0);
if(input nletter){
System.out.println("猜大了!");
}else if(input nletter){
System.out.println("猜小了!");
}
}while(input != nletter);
System.out.println("猜对了" + nletter);
}
}
Q4: JAVA猜字母游戏
public class GuessingGame {
public static char[] generate(int level){
char[] letters = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T',
'U','V','W','X','Y','Z'};
char[] chs = new char[level];
boolean[] flag = new boolean[26];
for(int i=0;ichs.length;i++){
int index;
do{
index = (int)(Math.random()*26);
}while(flag[index]);
chs[i] = letters[index];
flag[index] = true;
}
return chs;
}
public static int[] check(char[] chs,char[] input){
int[] result= new int[2];
for(int i=0;ichs.length;i++){
for(int j=0;jinput.length;j++){
if(chs[i]==input[j]){
result[0]++;
if(i==j){
result[1]++;
}
break;
}
}
}
return result;
}
public static void main(String[] args) {
int level;
int score;
int count=0;
Scanner scanner = new Scanner(System.in);
System.out.println("请选择游戏等级");
level = scanner.nextInt();
char[] chs = generate(level);
System.out.println(Arrays.toString(chs)+"\n猜吧");
while(true){
String inputStr = scanner.next().trim().toUpperCase();
char[] input = inputStr.toCharArray();
do {
System.out.println("个数不对java猜字母代码,请重新输入");
inputStr = scanner.next().trim().toUpperCase();
input = inputStr.toCharArray();
}while(input.length!=level);
int[] result = check(chs,input);
if("EXIT".equals(inputStr)){
System.out.println("谢谢");
break;
}
if(result[1]==level){
score = 500-count*10;
System.out.println("恭喜全对java猜字母代码!得分"+score);
break;
}else{
count++;
System.out.println("总次数"+count+"猜对字母个数"+result[0]+"猜对位置个数"+result[1]);
}
}
}
}
Q5: java中根据一段字符串,获取其中的字母,有要求;求个具体代码
要求1中要去掉所有数字,要求2、3中又要保留数字并进行翻译,所以我两种都写了。具体代码为java猜字母代码:
public class Test {
public static void main(String args[]) {
String str = "0as2sw$#3Six";
System.out.println("原字符串:[" + str + "]");
System.out.println("");
//不翻译数字
SetString set1 = new LinkedHashSet();
for (String s : str.split("[^A-Z a-z]")) {
if (s.length() 0) {
set1.add(s);
}
}
System.out.println("不翻译数字的结果:" + set1);
System.out.println("");
/*因为又要去除非字母和数字(以下简称去杂),又要将去杂结果分离成数字和字母,再翻译数字,整个流程挺麻烦的,索性在去杂之前,先将数字翻译成英文,为了使数字翻译后的英文和原字符串的字母分开,在数字左右添加占位符#,这样的话,形如:[a1b2c3]就会被处理为:[a#one#b#two#c#three#],这样去杂后,就会被分割为:[a,one,b,two,c,three]了。这里定义了枚举值English,用于实现0-9的英文映射,[10]不好映射成[ten],现在只能映射为[one,zero],如果按照题干非要映射为ten的话java猜字母代码你再考虑考虑吧*/
for (English english : English.values()) {
str = str.replaceAll(english.getNum() + "", "#" + english.name() + "#");
}
System.out.println("将数字替换为“占位符 + 英文 + 占位符”的中间结果:[" + str + "]");
System.out.println("");
//翻译数字的结果
SetString set2 = new LinkedHashSet();
for (String s : str.split("[^A-Za-z]")) {
if (s.length() 0 ) {
//判断当前字符串是否是数字的英文,如果不是,就把它拆成单字母
if (mappingEnglish(s)){
set2.add(s);
}else {
for (char c : s.toCharArray()) {
set2.add(String.valueOf(c));
}
}
}
}
System.out.println("翻译数字的结果:" + set2);
}
//判断当前字符串是否是数字的英文
private static boolean mappingEnglish(String str) {
for (English english : English.values()) {
str = str.toLowerCase();
if (english.name().equals(str)) {
return true;
}
}
return false;
}
enum English {
zero(0),
one(1),
two(2),
three(3),
four(4),
five(5),
six(6),
seven(7),
eight(8),
nine(9);
private int num;
public int getNum() {
return num;
}
English(int num) {
this.num = num;
}
}
}
我怕发出来代码又挤在一起,顺便也截个图:
8-21行
22-50行
51-61行
62-85行完
运行结果:
关于java猜字母代码和java随机猜字母的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







