我正在尝试编写一个函数来查看两个单元格的坐标,如果相邻或不相邻则返回一个布尔响应。
我想因为这个:
data Coord = Coord {xCoord, yCoord :: Integer}
deriving (Ord, Eq, Show, Read)
我的函数需要取两个整数然后(这是我需要帮助的部分)检查它们是否是邻居。我写的所有内容都会破坏,因为它还允许两个非相邻的单元格返回true。
请帮助。 =]
答案 0 :(得分:1)
我猜两个坐标在你的意义上是相邻的,如果它们不相等,那么它们之间的X 和 Y方向的距离最多是一个?如果是这样,你可以使用
adjacent :: Coord -> Coord -> Bool
adjacent p q | p == q = False
adjacent (Coord x1 y1) (Coord x2 y2) = abs (x1 - x2) <= 1 && abs (y1 - y2) <= 1