随机生成五个字母,比较玩家输入的字母序列和程序所生成的字母序列,逐一比较字符及其位置,并记载比较结果
package com.gyy;
import java.util.Scanner;
public class guessLetter {
public static void main(String[] args) {
Scanner console = new Scanner(System.in);
char[] arrChar = randchars();
System.out.println(arrChar);
System.out.println("GuessingGame>欢迎尝试猜字母游戏!");
System.out.println("GuessingGame>游戏开始,请输入你所猜的5个字母序列:");
int sum1 = -1,sum2 = -1,sum3 = 0;
while(true)
{
String str = console.next();
sum3++;
String str1 = "exit";
if(str.equals(str1))
{
System.out.println("Game Loss!");
break;
}
char[] guess = str.toCharArray();
sum1 = sameJudgment(arrChar,guess);
sum2 = rightPosition(arrChar,guess);
if(sum2 == 5){
System.out.println("恭喜你猜对了!");
break;
}
System.out.println("GuessingGame>你猜对" + sum1 + "个字符,其中" + sum2 + "个字符的位置正确(总次数=" + sum3 + ",exit退出)");
}
}
public static char[] randchars(){
char[] randomChar = new char[5];
for(int i = 0; i < 5; i++)
{
randomChar[i] =(char) ((Math.random() * 26) + 'a');
for(int j = 0; j < i; j++){
if(randomChar[i] == randomChar[j])
{
i--;
break;
}
}
}
return randomChar;
}
public static int sameJudgment(char[] a,char[] b)
{
int sum = 0;
for(int i = 0; i < 5; i++)
{
for(int j = 0; j < 5; j++)
{
if(a[i] == b[j])
sum++;
}
}
return sum;
}
public static int rightPosition(char[] a,char[] b)
{
int sum = 0;
for(int i = 0; i < 5; i++)
{
if(a[i] == b[i])
{
sum++;
}
}
return sum;
}
}
GuessingGame>欢迎尝试猜字母游戏!
GuessingGame>游戏开始,请输入你所猜的5个字母序列:
druay
GuessingGame>你猜对3个字符,其中3个字符的位置正确(总次数=1,exit退出)
dytwu
GuessingGame>你猜对3个字符,其中1个字符的位置正确(总次数=2,exit退出)
shdjs
GuessingGame>你猜对1个字符,其中0个字符的位置正确(总次数=3,exit退出)
druet
恭喜你猜对了!
Process finished with exit code 0