在游戏中(it is c++ board game like matrix with soldiers which can use formation
)士兵可以部署在编队中。 (只有一名士兵可以部署在地图/矩阵上的一个单元格上,形成可以在8个方向上,角度为0,45,90,135,180,225,270,315度,x轴,当士兵形成时,他们是在相邻的单元中,例如在0度y的形成对于除了x2-x1 = 1之外的所有部分是相同的,依此类推,在45度y2-y1 = 1且x2-x1 = 1)。
格式是line和hollow_square。我需要以非常有效的方式检查士兵是否正在形成(士兵在课堂上有x和y的位置)。对于第一行按x排序(我有std::list<std::pair<int,int> >
表示士兵在单位中的位置),并检查相关者(in case 0, 180; in case 45, 135 ,225, 315 also check for difference for y is 1 or -1
)之间的diffrenece是否为1。如果士兵正在组建,如何检查空心方格?
(就像在这个丑陋的图像上,澄清一下)