编写一个机器人模拟器。
一家机器人工厂的测试设施需要一个程序来验证机器人的移动。
机器人有三种可能的移动方式:
机器人被放置在一个假想的无限网格上,面朝某个特定的方向(北、东、南或西),并位于一组 {x,y} 坐标处,例如 {3,8},坐标向北和向东递增。
随后,机器人会收到若干条指令,此时测试设施会验证机器人的新位置,以及它面朝的方向。
在本练习中,你可能已经注意到,桩代码里定义了 getX() 这样的 getter,但测试却直接用.x访问这个值。这是因为 Groovy 定义属性的方式。我们逐条来看:
关于 Groovy 属性的几个要点:
final,则只生成 getter)。在本练习中,我们只指定了必需的 getter(按照上面的说法,也就是必需的属性),以此确保你正确实现。至于选择哪些字段(以及它们的类型)最合适,由你自己决定。
如果你想进一步了解字段和属性,请参阅 Groovy 文档中的第 3.3 章 字段与属性。