当我编译此代码时,我得到的唯一错误是“无法将获胜者解析为变量”或“令牌“获胜者”的语法错误,删除此令牌”我知道错误与我的 if-else 语句有关,但我不知道我做错了什么,或者我只是做错了。有没有更好的方法可以在随机统计的两支球队之间取得胜利?
public class Team {
/**
* The name of the team.
*/
public String name;
/**
* The location of the team.
*/
public String location;
/**
* The offensive strength of the team.
*/
public double offense;
/**
* The defensive strength of the team.
*/
public double defense;
/**
* Create a team with specified name and location, and with offense and defense capabilities
* randomly initialized using the luck() method.
*
* @param name
* @param location
*/
public Team(String name, String location, double offense, double defense) {
this.name = name;
this.location = location;
this.offense = luck();
this.defense = luck();
}
/**
* The luck() method returns a random value between 0 and 1, using Math.random().
*
* @returns a real value in range [0,1]
*/
public double luck() {
return Math.random();
}
/**
* Run a competition against the specified visiting team
*
* @param other the team to play against
* @returns the winner team
*/
Team play(Team visitor) {
double home = (this.offense + this.defense + 0.2) * this.luck();
double away = (visitor.offense + visitor.defense) * visitor.luck();
if (home > away) {
}
else {
away = winner;
}
return winner;
}
/**
* Run a competition between two teams specified on standard input.
* Print statistics of the winner.
* <p>
* Each team is read in the following format :
* <pre>
* <name>
* <location>
* </pre>
* (Note that name and location should be separate lines for each team)
*
* @param args can be ignored.
*/
public static void main(String[] args) {
// Be sure to follow the same printing command to ask user
// for name and location of two teams (e.g, home and away)
System.out.println("Enter name and location for home team (on separate lines)");
// Get input from user for home team.
// Create a home team object with the given data.
Scanner in = new Scanner(System.in);
team = in.nextLine();
location = in.nextLine();
Team home = new Team(name, location, offense, defense);
System.out.println("Enter name and location for away team (on separate lines)");
// Get input from user for away team.
// Create an away team object with the given data.
team = in.nextLine();
location = in.nextLine();
Team away = new Team(name, location, offense, defense);
// Print out home team information.
System.out.println("Home team is: " + home.name + " from " + home.location + " rated <home_team_offense> (offense) + <home_team_defense> (defense)");
// Print out away team information.
System.out.println("Away team is: " + away.name + " from " + away.location + " rated <away_team_offense> (offense) + <away_team_defense> (defense)");
// Call the home team's play() method with the away team as visitor parameter.
Team winner = home.play(away);
// Print out the winner.
System.out.println("Winner is:" winner.name + "from " + winner.location + " rated <winner_team_offense> (offense) + <winner_team_defense> (defense)");
// (be sure to adhere to the format described below)
}
}