查找haskell中的相邻单元格

时间:2012-03-28 12:04:01

标签: haskell

我正在尝试编写一个函数来查看两个单元格的坐标,如果相邻或不相邻则返回一个布尔响应。

我想因为这个:

data Coord = Coord {xCoord, yCoord :: Integer}
deriving (Ord, Eq, Show, Read)

我的函数需要取两个整数然后(这是我需要帮助的部分)检查它们是否是邻居。我写的所有内容都会破坏,因为它还允许两个非相邻的单元格返回true。

请帮助。 =]

1 个答案:

答案 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
相关问题