Java _____无法解析为变量
我想我快拿到了。Java _____无法解析为变量,java,Java,我想我快拿到了。 我的PhraseGameController类找不到“isHidden” 我的错误消息是“isHidden无法解析为变量” “无法将字母解析为变量” “PhraseGameController类型的方法isHidden()未定义 (我将评论我的问题领域) ● 通读当前短语中的每个字母 ○ 检查它是否隐藏 ○ 如果是,则将isWon设置为false。使用break退出循环 ● 返回原野 package edu.htc.java1.phrasegame; import edu
我的PhraseGameController类找不到“isHidden” 我的错误消息是“isHidden无法解析为变量” “无法将字母解析为变量” “PhraseGameController类型的方法isHidden()未定义 (我将评论我的问题领域) ● 通读当前短语中的每个字母 ○ 检查它是否隐藏 ○ 如果是,则将isWon设置为false。使用break退出循环 ● 返回原野
package edu.htc.java1.phrasegame;
import edu.htc.java1.phrasegame.model.*;
import java.util.ArrayList;
public class PhraseGameController {
private Phrase currentPhrase;
private ArrayList<Character> guessed;
private ArrayList<Player> players;
boolean isRoundWon;Letter letter;
PhraseGameController Player = new PhraseGameController();
public void addPlayer(String name) {
Player player= new Player(name);
players.add(player);
}
public boolean isRoundWon(boolean isWon) {
isWon = true;
letter=new Letter();
if(letter.isHidden() = true) { ///<<<< Problem area, isHidden
isWon = false;
break;
} else if { (letter.isHidden() = false); ///<<<< Problem area, isHidden
isWon = true;
return isWon;
break;
}
public ArrayList<Player> getPlayers() {
return players;
}
public boolean doPlayerGuess(Character play) {
Character guess = Character.toUpperCase(play);
if(guessed.contains(play)){
throw new IllegalStateException("the letter was already guessed");
} else if (!String.valueOf(play).matches("[A-Z]")) {
throw new IllegalStateException("the guess should be a letter from AZ");
}
guessed.add(guess);
return currentPhrase.guessLetter(guess);
}
public PhraseGameController(){
currentPhrase = new Phrase("This is only a test");
guessed = new ArrayList<Character>();
}
public Phrase getCurrentPhrase() {
return currentPhrase;
}
public void setCurrentPhrase(Phrase currentPhrase) {
this.currentPhrase = currentPhrase;
}
public void setGuessedLetters(ArrayList<Character> guessed) {
this.guessed = guessed;
}
public ArrayList<Character> getGuessedLetters() {
return guessed;
}
}
}您访问的方法错误
ishiden.letter
应该是letter.ishiden()
也不要同时使用putter
=true
。首先,布尔表达式将被计算,因此您不需要将其与任何内容进行比较。其次,您应该使用==或.equals()来比较两个值,=严格用于赋值IsHidden没有定义为变量。它是一个方法。您应该将其作为.IsHidden()调用.你喜欢这个字母=新字母();在那个字母之后。isHidden()
包edu.htc.java1.phrasegame;
导入edu.htc.java1.phrasegame.model.*;
导入java.util.ArrayList;
公共类短语游戏控制器{
私人用语;
私人ArrayList猜测;
私人ArrayList玩家;
布尔值;字母;
PhraseGameController Player=新PhraseGameController();
public void addPlayer(字符串名称){
玩家=新玩家(姓名);
players.add(player);
}
公共布尔值isRoundWon(布尔值isWon){
isWon=真;字母=新字母();
if(letter.ishiden()=true){///看看所有这些相关的问题……这很有帮助,但它仍然说我需要为letter创建一个局部变量。它是公共的,我想可能我不明白为什么PhraseGameController类在letter类中看不到它。是的,你有一个letter类,但你实际上需要创建对象,请参见JqueryLearner的回答,这是应该提供帮助。构造函数字母()未定义。
package edu.htc.java1.phrasegame.model;
public class Letter {
public char letter;
public boolean isHidden;
public char getLetter() {
return letter;
}
public boolean isHidden() {
return isHidden;
}
public void unhide() {
isHidden = false;
}
public Letter(char letter) {
this.letter = letter;
if (String.valueOf(letter).matches("[A-Z]")) {
isHidden = true;
}
}
package edu.htc.java1.phrasegame;
import edu.htc.java1.phrasegame.model.*;
import java.util.ArrayList;
public class PhraseGameController {
private Phrase currentPhrase;
private ArrayList<Character> guessed;
private ArrayList<Player> players;
boolean isRoundWon;Letter letter;
PhraseGameController Player = new PhraseGameController();
public void addPlayer(String name) {
Player player= new Player(name);
players.add(player);
}
public boolean isRoundWon(boolean isWon) {
isWon = true;letter=new Letter();
if(letter.isHidden() = true) { ///<<<< Problem area, isHidden
isWon = false;
break;
} else if { (letter.isHidden() = false) ///<<<< Problem area, isHidden
isWon = true;
return isWon;
break;
}
public ArrayList<Player> getPlayers() {
return players;
}