求助:猜字母游戏。(目前学到for循环)我没有解决猜测字母和答案重复时候的思路(比如说答案是ASDFG,我猜的是AAQWE,这个时候会显示猜对了2个字母,把两个A都算成了对的)

wan_2021_07 2022-06-28 21:25:56

要求猜五个大写字母,每次猜完提示猜对字母的数量,和猜对字母位置的数量

public class HomeWork {
    public static void main(String[] args) {
     String str = "ASDFG";//用来储存5个字符

/* for (int i = 0; i < 5; i++) {
     int machine = (int) (Math.random() * 26 + 65);
     char a = (char) machine;
     str += a;
 }*/
 //随机数产生5个字符储存在str中,
 // 暂时不用,先用确定的答案ASDFG来检验程序
 int num = 0;//统计数量正确
 int numLocation = 0;//统计位置正确
 int count=0;//统计猜的次数
 Scanner sc = new Scanner(System.in);
 while (true) {
     System.out.println("请输入5个大写字母:");
     String guess = sc.next();
     count++;
      for (int i = 0; i < 5; i++) {
         //得到数量正确的有几个
        for (int j = 0; j < 5; j++) {
             if (guess.charAt(i) == str.charAt(j)) {
                 num++;
                 break ;
//如果有guess中已经等于答案中的某一个位置了,就打断本次循环,避免答案为AASDF时,将猜的一个A的算两遍。
!!!问题也出现在这,这只能解决答案有重复的情况,不能解决猜的字母重复,如果猜AAQWE,时如果答案是ASDFG,num也会加两遍
             }
         }
          //得到位置正确的有几个
          if (guess.charAt(i) == str.charAt(i)) {
              numLocation++;
          }
     }
     //当位置正确的有5个时,跳出循环
     if(numLocation==5) {
         System.out.println("猜对了,你的得分"+(500-count*10));
         break;
     }
     System.out.println("GuessGame>你猜对了" + num +
             "个,位置有" + numLocation + "是对的。总次数="+count+"次");
     num=0;
     numLocation=0;
 }
    }

 
...全文
163 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
荒诞学者 2022-07-07
  • 打赏
  • 举报
回复 1

我运行的结果和你不一样 num = 1

img

wan_2021_07 2022-07-07
  • 举报
回复
@荒诞学者 你把name1.charAt(j)的j换成i,把前面的i换成j再试试,应该会有惊喜
wan_2021_07 2022-07-07
  • 举报
回复 1
@wan_2021_07 我试着用数组将出现过的位置存下来,每次出现符合条件时看看这个位置是否出现过,出现过就舍掉,能决解一部分问题,但是还是有情况不能解决,后来就没想了,失去这个题目本身的考察点了
荒诞学者 2022-07-08
  • 举报
回复
@wan_2021_07 更换之后是for循环的执行流程变了,导致num=2。
1条回复
simple 2022-06-29
  • 打赏
  • 举报
回复

猜字母游戏本来就不能出现重复字母好不。这就是猜数字的复杂玩法而已

wan_2021_07 2022-07-07
  • 举报
回复
@simple 欧克

51,407

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧