有一款适用于iOS的游戏Unblock Me,它采用给定的网格/棋盘,并将该网格细分为不同大小和形状的棋子。
有人能否推动我完成这项任务的算法是什么样的?给定网格,将网格细分为较小的块,如Unblock Me中的块,但也包括正方形和矩形。我仍然想弄清楚自己,但是我在开始时遇到了一些麻烦。
编辑:
理想情况下,解决方案不会在原始网格中留下任何空白空间,它会被细分,以便在给定某些细分的情况下使用所有点。
答案 0 :(得分:1)
您可以拥有一些标准块大小和定义的网格大小。例如,通过Unblock Me示例: grid_size可以是4 * 4,block_size1可以是3 * 1,block_size2可以是2 * 1等。 然后,您可以定义或替代输入网格中所需的块数。使用动态编程或递归回溯来用这么多块填充网格。