猜字符位置游戏-position gasses
import java.util.*;public class Main {/*字符猜位置游戏;每次提交只能被告知答对几个位置;根据提示答对的位置数推测出每个字符对应的正确位置;*/public static void main(String[] args) {char startChar = 'A';int gameLength = 8;List<String> ballList = new ArrayList<>();String endChar = "";for (int i = 0; i < gameLength; i++) {endChar = String.valueOf((char)((int)startChar + i));ballList.add(endChar);}String quest;StringBuilder anserString = new StringBuilder();for (int i = 0; i < gameLength; i++) {// 组装答案anserString.append(getTempAnserStr(ballList));}quest = anserString.toString();String anser = "";System.out.println("游戏开始: 共"+gameLength+"位," + "从"+ startChar + "到" + endChar);Scanner sc = new Scanner(System.in);int ansNum = 0;while(!evaAnser(anser,quest)) {anser = sc.next();ansNum++;};System.out.println("回答正确! 答案是:" + quest);System.out.println("回答次数:" + ansNum);}private static boolean evaAnser(String anser, String quest) {if (anser == null || anser.isEmpty()) {return false;}int correctNums = 0;char[] questArr = quest.toCharArray();char[] anserArr = anser.toCharArray();for (int i = 0; i < anserArr.length; i++) {if (questArr[i] == anserArr[i]) {correctNums++;}}System.out.println("correct: " + correctNums);return correctNums == quest.length();}// 获取随机字符private static String getTempAnserStr(List<String> balls) {Random random = new Random();int randomNumber = random.nextInt(balls.size());String tempBall = balls.get(randomNumber);balls.remove(randomNumber);return tempBall;}}
游戏示例: