Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用MVC格式的Scala中的类型不匹配_Scala_Model View Controller_Scala Swing - Fatal编程技术网

使用MVC格式的Scala中的类型不匹配

使用MVC格式的Scala中的类型不匹配,scala,model-view-controller,scala-swing,Scala,Model View Controller,Scala Swing,我正在使用ScalaSwing在Scala中创建一个游戏,我已经将代码重构为MVC格式 当我试图将玩家1的策略“设置”为力量策略时,问题就出现了 类型不匹配;找到_16.Player required _2.model.Player where val _2:controller.controller 我不知道如何准确地修复这个错误,我希望有人能帮助我 下面是发生错误的地方,在controller.set(playerOrder(0),“power”) 以下是单例对象PlayerOrder的定义

我正在使用ScalaSwing在Scala中创建一个游戏,我已经将代码重构为MVC格式

当我试图将玩家1的策略“设置”为力量策略时,问题就出现了

类型不匹配;找到_16.Player required _2.model.Player where val _2:controller.controller

我不知道如何准确地修复这个错误,我希望有人能帮助我

下面是发生错误的地方,在
controller.set(playerOrder(0),“power”)

以下是单例对象PlayerOrder的定义方式:

object PlayerOrder extends scala.collection.mutable.Queue[Player] {

this += new Player("Michael","B",(1,0))
this += new Player("Mike","O",(0,-1))
this += new Player("Mikey","G",(-1,0))
this += new Player("Jim","R",(0,1))

def advance {
  this += this.dequeue
}

def show : String = {
  var result = ""    
  for (p <- this.toArray) 
    result += p.name + ", "
  result.substring(0, result.length-2)
}

def current: Player = this.front

def update {
  for(player<- this){
    if(!player.is_alive){
      for((k,v) <- player.marble_locations){
        board(v._1)(v._2).reset
      }
    this.dequeue
    }
  } 
}

def reset {
this += new Player("Michael","B",(1,0))
this += new Player("Mike","O",(0,-1))
this += new Player("Mikey","G",(-1,0))
this += new Player("Jim","R",(0,1))
  while (this.size > 4){
    this.dequeue
  }
}

您在
PlayerOrder
中使用的
Player
类是否与
model.Player
相同?我同意@mfirry,您是否定义了多个
Player
类?您的函数需要一个Controller.model.Player,我可以从中读取。如果没有关于项目结构的更多信息,很难回答。@mfirry-是的,
Player
是在
model
中定义的类,
PlayerOrder
也是在
model
中定义的对象@阿德里安拉米特-不,只定义了一个玩家类。
object PlayerOrder extends scala.collection.mutable.Queue[Player] {

this += new Player("Michael","B",(1,0))
this += new Player("Mike","O",(0,-1))
this += new Player("Mikey","G",(-1,0))
this += new Player("Jim","R",(0,1))

def advance {
  this += this.dequeue
}

def show : String = {
  var result = ""    
  for (p <- this.toArray) 
    result += p.name + ", "
  result.substring(0, result.length-2)
}

def current: Player = this.front

def update {
  for(player<- this){
    if(!player.is_alive){
      for((k,v) <- player.marble_locations){
        board(v._1)(v._2).reset
      }
    this.dequeue
    }
  } 
}

def reset {
this += new Player("Michael","B",(1,0))
this += new Player("Mike","O",(0,-1))
this += new Player("Mikey","G",(-1,0))
this += new Player("Jim","R",(0,1))
  while (this.size > 4){
    this.dequeue
  }
}
def set(player: model.Player, keyword: String) {
    player.setStrat(keyword)
}