我用双for循环循环遍历我的对象列表,并检查我的机器人是否在j位置与机器人碰撞。我成功地检查了ii,jj组合,这些组合不应该做,但我想处理当i,j发生j,i,i不发生时。例如,(1,1)不应该发生,但是它的检查是(1,4),但是当它循环通过时,我不希望(4,1)发生。
思想:
当发生这种情况时,我想要保持一个温度,然而,当多个机器人之间发生多个碰撞时,这个温度就会爆炸。有没有办法避免这个问题?我的问题不是关于模块化或使用双for循环。
for(int i = 0; i < count; i++)
{
for(int j = 0; j < count; j++)
{
if(i != j)
{
if(vbot[i]->CollidedWith(vbot[j]))
{
vbot[i]->DoBattleWith(vbot[j]);
}
}
}
}发布于 2014-10-20 21:27:53
只需将内部循环更改为
for(int j = i + 1; j < count; j++)然后去掉if语句。
通过这些修改,代码将只考虑(i, j)对,比如i < j。
https://stackoverflow.com/questions/26474995
复制相似问题