给出下面的方向枚举:在数字键盘上的两个键之间寻找方向的算法?
typedef enum {
DirectionNorth = 0,
DirectionNorthEast,
DirectionEast,
DirectionSouthEast,
DirectionSouth,
DirectionSouthWest,
DirectionWest,
DirectionNorthWest
} Direction;
而且类似于数字小键盘数字矩阵:
7 8 9
4 5 6
1 2 3
你怎么会写一个函数从矩阵返回相邻数字之间的方向是什么?你说:
1, 2 => DirectionEast
2, 1 => DirectionWest
4, 8 => DirectionNorthEast
1, 7 => undef
,如果你愿意,你可以改变枚举的数值。首选可读解决方案。 (不是家庭作业,只是我正在工作的应用程序的算法,我有一个工作版本,但我对更优雅的需求感兴趣。)
很好的回答!我会添加一个结果,所以5成为无效。这样我就可以把结果看作是从数字小键盘中心的方向。 –
@ K-ballo:好的建议,编辑。 – 6502