我正在用Java编写一个国际象棋游戏,它已经设置了一个Board类,它有一个2d的Square对象数组。每个正方形都有一个高度和宽度(0到7之间)。我要写一个方法,它需要一个方形对象,一个垂直偏移量和一个水平偏移量。例如:如果我打电话给getNearbySquare(mySquare,3,2),它应该返回棋盘上的方形对象,它位于mysquare的上方3,mySquare的右边2。爪哇国际象棋:应该找到附近的广场是方形或板类的方法吗?
我最初在Square类中将它写成实例方法,它只是在垂直和水平偏移量中。问题是,我正在创建并返回一个新的方形对象,而不是我的Board类中的2d数组中的正确对象。
我看到两个选项:
1)使在Square类的实例方法,该方法在一局对象,垂直偏移量和水平偏移量。我将找到调用此方法的方形对象的当前高度和宽度,添加垂直和水平偏移量以获取所需平方的Board中的新位置,然后使用Board [newHeight] [newWidth]访问它。
2)在Board类中创建一个实例方法做同样的事情,但不要求我像在1)中那样传递Board对象。相反,我需要传入方形对象。
只要做出这些决定,是否有一个普遍接受的做法?
感谢您的帮助, Mariogs
董事会需要了解的广场,没有那么多的相反。这应该是董事会类的一种方法。 – 2015-01-09 22:33:40