所有,
我一直试图找出如何在一个座位内选择15张票.
编辑:问题是 - 如何找到给定尺寸的所有矩形(例如3x5)的免费座位?

下面是我的表,查询选择4个连续席位(或15或其他),这是好的...
但我想做的是选择说15个座位,这些可以分成多行,即3 x 5,但我希望它们被封锁在一起,即
row 9 ..(some seats)..[5 seats]..(some seats)..
row 8 ..(some seats)..[5 seats]..(some seats)..
row 7 ..(some seats)..[5 seats]..(some seats)..
Run Code Online (Sandbox Code Playgroud)
也就是说,他们将在彼此前面排成3排.row9座位10到25,row8座位10到25,row7座位10到25.
还可能需要考虑座椅块是否具有不同数量的座椅,即角块可以呈弧形以在后部具有比前部更多的座椅.
以ehnaceing SQL或某些算法或某些PHP代码的形式提供的任何指导.一周的大部分时间里,我一直在捣乱自己的大脑.
CREATE TABLE `seats` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`event_id` int(11) DEFAULT NULL,
`performance` int(11) DEFAULT NULL,
`block` int(11) DEFAULT NULL,
`row` int(11) DEFAULT NULL,
`seat` int(11) DEFAULT NULL,
`status` int(10) DEFAULT 1,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;
Run Code Online (Sandbox Code Playgroud)
我的查询到了 - 它返回X席的块组合.
SELECT a.event_id, a.performance, a.block, …Run Code Online (Sandbox Code Playgroud) 
嗨,我左边有乱七八糟的混乱,它几乎是一些带有一些孔的矩形阵列(标记为红色).我正在寻找一种方法来组合它们,我将尽可能少的矩形结束,并且最好使它们中的大多数尽可能接近正方形.看看右边的图像,这就是我想要完成的事情,只是有点漂亮,最好是更自动一点.
我需要这个用于游戏而且它不会在运行时完成所以速度并不是真正的关注点(除非它非常慢,因为我必须在相当大的区域上进行)但我从来没有做过什么喜欢这样,我真的不知道从哪里开始.
我已经尝试通过数组进行强制执行,从左上角的方块开始并且有点合并,直到没有任何东西可以合并,但它实际上效率不高,因为它不能考虑合并矩形3x2,4x3等.
如果您能指出任何可以处理此类事情的算法,或者想知道如何实现这一点,那将非常感激.谢谢!