关于猜字符的小程序
主要实现:随机输出5个字母,用户输入猜测的字母,进行对比得出结果
主要有3个方法:主方法main();
产生随机字符的方法generate();
比较用户输入的字符与随机产生的字符的方法check();
主要的数据:char[] chs; //保存随机产生的字符数组
char[] input; //保存用户输入的字符数组
count ; //保存猜测的错误次数
score; //保存分数
boolean[] flags; //开关数组,避免随机产生相同的字符
int[] result; //保存结果
详细代码:
1 package com.tedu.demo; 2 3 import java.util.Scanner; 4 5 /* 6 * Guessing类实现猜字符游戏 7 * 1、通过随机产生字母,用户输入猜的字母,进行对比 8 * 2、输出每次猜测的正确字母,与位置 9 * 3、产生分数 10 * 11 * */ 12 13 public class Guessing { 14 public static void main(String[] args) { 15 Scanner scan = new Scanner(System.in); 16 char[] chs = generate();// 获取随机数组 17 System.out.println(chs);//作弊 18 19 int count = 0; 20 21 22 while (true) { 23 System.out.println("请输入你猜测得字符:"); 24 String str = scan.next().toUpperCase();//接收用户输入的字符,并将小写转换为大写 25 if(str.equals("EXIT")){ 26 System.out.println("下次再猜吧!!!"); 27 break; 28 } 29 char[] input = str.toCharArray(); // 将字符串转换为字符数组; 30 31 int[] result = check(chs, input); // 获取用户输入的字符数组与随机数组的比较结果 32 if (result[0] == chs.length) { 33 int score = 100 * chs.length - 10 * count; 34 System.out.println("猜测正确,得分" + score); 35 break; 36 } else { 37 count++; 38 System.out.println("你猜对了" + result[1] + "个字符,位置对了" + result[0] 39 + "个,猜测错误,请继续猜吧!!!"); 40 41 } 42 } 43 // System.out.println(chs); 44 } 45 46 // 随机生成字母方法 47 public static char[] generate() { 48 char[] letter = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 49 'K', 'L', 'M', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 50 'X', 'Y', 'Z' }; 51 char[] chs = new char[5]; 52 // 设置开关数组, 53 boolean[] flags = new boolean[letter.length]; 54 55 for (int i = 0; i < chs.length; i++) { 56 int index; 57 do { 58 // 生成随机的下标 59 index = (int) (Math.random() * letter.length); 60 } while (flags[index] == true); 61 // 生成的字母就是letter数组随机下标 62 chs[i] = letter[index]; 63 flags[index] = true; // 把用过的下标的flags值改为true 64 } 65 66 return chs; 67 } 68 69 // 比较用户输入的字母与随机产生字母 70 public static int[] check(char[] chs, char[] input) { 71 int[] result = new int[2]; 72 73 for (int i = 0; i < chs.length; i++) { 74 for (int j = 0; j < input.length; j++) { 75 if (chs[i] == input[j]) { // 判断字符是否有正确的 76 result[1]++; // 字符正确+1 77 if (i == j) { // 判断位置是否正确 78 result[0]++; // 位置正确+1 79 } 80 } 81 82 } 83 } 84 return result; 85 } 86 87 }