初学者:数字猜测游戏

 --cathrine-- 发布于 2023-02-08 10:42

我是一个尝试Java的新蜜蜂.

我正在尝试编写一个小数字猜谜游戏,计算机选择一个数字,然后3个玩家轮流猜测数字.无论玩家猜对了,都只能猜出一个数字.

以下是我的完整代码.checkGuess()方法存在一些问题(无限循环),但我无法发现它是什么.你能看一看,看看我哪里出错了吗?

import java.util.ArrayList;

public class game {
private player[] p = new player[3];
private int guess;
private ArrayList guesses = new ArrayList();

public void start() {
int x=0;
while(x<3) {
    p[x] = new player();
    p[x].setName(x);
    x = x + 1;
}

guess = (int) (Math.random() * 10);
System.out.println("I'm guessing " + guess);

int count = 1;  
while(true) {
    int y = 0;
    boolean b = false;

    while(y<3) {
        boolean searchGuess = true;
        while(searchGuess = true) {
            int temp = p[y].guessNum();
            searchGuess = checkGuess(temp);
            if (searchGuess == false) {
                System.out.println("Player " + (y+1) + " guessed " + p[y].getNum());
            }//end if
        }// end while

        if (searchGuess==false) {
            System.out.println(p[y].getName() + " guessed " + p[y].getNum());
        }//end if

        if (p[y].getNum() == guess) {
            System.out.println("" + p[y].getName() + " guessed correct number in " + count + " guesses. Game over.");
            b = true;
            break;
        }//end if
        y = y + 1;
    }//end loop
    if (b == true) {
        break;
    }        

    count = count + 1;
}//end loop
}//end start

public boolean checkGuess(int tempGuess) {
    boolean found = false;
        if(guesses.contains(tempGuess)) {
            found = true;
        } else {
            guesses.add(tempGuess); 
        }//end if
    return found;
}//end checkGuess
}//end game


public class player {
private int num;
private String name;

public int guessNum() {
    num = (int) (Math.random() * 10);
    System.out.println("in guessnum");
    return num;
}//end guessnum

public void setName(int x) {
    name = "Player " + x;
}//end setName

public int getNum() {
    return num;
}//end getNum

public String getName() {
    return name;
}//end getName
}//end class

ales_t.. 5

你在循环searchGuess的条件下分配while.相反,使用while(searchGuess == true)或简单while(searchGuess).

1 个回答
  • 你在循环searchGuess的条件下分配while.相反,使用while(searchGuess == true)或简单while(searchGuess).

    2023-02-08 10:45 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有