猜字母游戏,请大手嫁衣
package day08_summerize; import java.util.Scanner; import java.util.Random; //猜字母游戏 /** * @author Jooker * @version v1.0 * @since v1.0 * @Date */ public class GuessCharsGame { //method1 生成器:生成1个有n个随机字母元素的数组,元素不重复 public char[] arrayChar(int m){ Random rand = new Random(); char[] character = new char[m]; for(int n=0;n<m;n++){ character[n] = (char)(rand.nextInt(25)+97); /*随机元素*/ int i = 0; while(i<n){ if(character[n] == character[i]){ /*如果重复,再给该位置的元素赋值,再比较,直到不重复*/ character[n] = (char)(rand.nextInt(25)+97); }else{ i++; } } System.out.print(character[n]); } return character; } //method2 比较器:比较随机生成的字母序列和输入的字符串;交互:正确数量、正确位置、猜的次数 public boolean check(String in,char[] check,int number,int summerize,boolean treat){ int counter = 0; int position = 0; treat = true; for(int n=0;n<number;n++){ for(int i=0;i<in.length();i++){ if(check[n] == in.charAt(i)){ //String1.charAt(i) --从String1字符串里,取出第i个字母 counter++; if(n == i){ position++; } } } } if((counter == number)&&(position == number)){ System.out.println("恭喜你,都答对了."); treat = false; }else if(in.equals("exit")){ System.out.println("退出游戏"); treat = false; }else{ System.out.println("你猜对了"+counter+"个字母," + "其中"+position+"个字母位置正确(总次数="+summerize+",exit——退出)"); } return treat; } public static void main(String[] args){ Scanner scan = new Scanner(System.in); //实例化类,再调用方法,生成字母序列 System.out.println("欢迎参加猜字母游戏,请输入你想猜测的字母序列元素个数:"); int num = scan.nextInt(); /*输入字母序列个数*/ System.out.println("游戏开始,你猜测的为"+num+"个字母的序列:(exit——退出)"); GuessCharsGame gener = new GuessCharsGame(); char[] focus = gener.arrayChar(num); /*调用method1,随机生成字母序列*/ //输入字符串 int sum = 0; boolean tar =true; while(tar){ String input = scan.next(); sum++; tar = gener.check(input, focus, num, sum, tar); } scan.close(); } }