我正在为学校制作一个类似于蛇的小程序,我们被告知为每个班级制作一个单独的代码文件,或者我猜每一个完整的东西,所以到目前为止我有3个班级,其中第三个班级想要使用其他两个类类型作为参数,但我只是找不到:输入“name”。
这是我的三个文件,第一个用于移动坐标,第二个用于选择使用哪些键来移动蛇(我们应该同时有2个不同的键,就像双人游戏一样,所以他们需要不同的控件,通常是 awsd 和箭头)。第三类是蛇或鼹鼠,它本身需要有一个位置,我们在第一类中定义的类型,以及一组移动它的键,第二类。
package blockbattle
case class Pos(x:Int, y:Int):
def moved(delta: (Int, Int)): Pos = Pos(x + delta(0), y + (delta(1)))
package blockbattle
case class KeyControl(left: String, right: String, up:String, down:String):
def direction(key:String): (Int, Int) =
if key==left then
(-1,0)
else if key==right then
(1,0)
else if key==up then
(0, -1)
else if key==down then
(0, 1)
else (0, 0)
package blockbattle
class Mole(val name: String,
var pos: Pos,
var dir: (Int, Int),
val color: java.awt.Color,
val keyControl: KeyControl
):
我认为我使用的包是错误的,因为如果我只是将其中一个类复制粘贴到同一个文件中,我不会得到类型未找到的信息,但我被告知这应该可行(使用类,而不是这个确切的示例)
问题的屏幕截图,使用 VSCode 和金属:
Scala 编译器需要了解所有代码才能正确编译和链接。
您可以将 Scala 文件放在一个目录中。让我们假设
scala-code
。然后只需使用 cd scala-code
进入该目录。
我假设您有另一个名为
Runner.scala
的文件,其中包含您使用这些类的主要方法。它看起来像下面这样,
package blockbattle
object Runner:
def main(args: Array[String]):
// some code using your other classes
现在您可以使用编译代码。
scalac *.scala
这将创建另一个名为
blockbattle
的目录,其中包含已编译的 scala 类。
现在您可以使用运行代码,
scala blockbattle.Runner