C/C++ 随机分配问题

来源:百度知道 编辑:UC知道 时间:2024/06/14 17:19:02
我最近在做一个小游戏
要在10×10的数组(初始值都为0)中随机分配三架飞机
飞机形状如下:
...
0 0 0 1 0 0 0 ...
0 1 1 1 1 1 0 ...
0 0 0 1 0 0 0 ...
0 0 1 1 1 0 0 ...
0 0 0 0 0 0 0 ...
...
飞机的方向可以是上下左右,分配后飞机所在位置修改为1.
我现在做法是每次先随机生成头部和方向,然后把其余位置分配下来。
问题是这样分配效率很低,随机分配时经常分配到不能设置飞机的位置(飞机之间不能重叠)。所以用时很长,怎么做才好。

在随机分配前先设定好范围如何?把那些不适合的位置从随机的大范围中剔除出去。时间很长。。。这个问题感觉要具体调试了,这样我还是看不出为什么。生成头部顶点和方向这种做法感觉没什么问题啊。