【发布时间】:2019-02-14 01:29:33
【问题描述】:
我无法在我的 Scala 代码中找到问题。下面的任务。
Input: val team1: Team = new Team(8,6)
val team2: Team = new Team(6,4)
Output for 'play' method: team1.score = 4
team2.score = 0
Output for 'Winner' method: team1
任务:
创建一个名为“Team”的 Scala 类和一个名为“Referee”的 Scala 对象。
团队将拥有:
•用构造函数设置这些值的状态值是表示球队进攻和防守强度的 Int 类型的值。构造函数的参数应该是进攻然后防守
•第三个状态变量名为“score”,类型为 Int
裁判将拥有:
•一个名为“play”的方法,它接受两个Team 对象作为参数并且不返回值。此方法将通过将每个输入团队的得分设置为等于他们的进攻减去另一个团队的防守来改变每个输入团队的状态。如果一支球队的进攻低于另一支球队的防守,他们的得分应该是 0(没有负分)
•一个名为“Winner”的方法,它接受两个团队作为参数并返回得分较高的团队。如果两队得分相同,则返回一个新的 Team 对象,进攻和防守都设置为 0
class Team(var offense: Int, var defense: Int){
var score: Int = 0 //<-Updated Variable
}
object Referee{
def play(team1: Team, team2: Team) = {
team1.score = team1.offense - team2.defense
team2.score = team2.offense - team1.defense
if (team1.offense < team2.defense){
team1.score = 0
}
else if(team2.offense < team1.defense){
team2.score = 0
}
}
def Winner(team1: Team, team2: Team) = {
if (team1.score > team2.score){
team1
}
else if(team2.score > team1.score){
team2
}
else{
new Team(0, 0)
}
}
}
【问题讨论】: