我正在使用 Java 中的 24 位位板,代表以下形式的游戏板:
00 01 02 03 04
05 06 07 08 09
10 11 XX 12 13
14 15 16 17 18
19 20 21 22 23
请注意,板的中间有一个孔,用“XX”表示。我已经生成了一个合法位板列表,但是由于该板具有正方形的对称性,我可以丢弃大量已经由列表中的对称表亲表示的位板。
为了检查这些对称性,我需要能够将板旋转 90、180 和 270 度并水平、垂直和对角(在两条对角线上)镜像的函数。显然我想利用位操作,但这是我卡住的地方。我找到了一些关于如何为棋盘执行此操作的信息,但我无法理解这个概念 - 更不用说如何将其应用于我自己的棋盘情况了。
任何人都可以通过一些解释告诉我如何有效地旋转/镜像位板吗?