Привет. Мои познания в с++ крайне невелики, поэтому извините за глупый вопрос. В общем, дела обстоят следующим образом: существует некий скрипт, который расставляет коэффициенты каждой клетке для наиболее подходящего места, где будет селиться ИИ. Мне необходим перечень клеток, которые имеют нулевой коэффициент и этот перечень мне известен, и является разным для каждой цивилизации. Если идти методом исключения, то есть расставить нулевые коэффициенты по всей карте путем возвращения функцией 0, кроме интересующей меня области, то все работает, но стоит мне сделать это в действие обратнопропорционально, то коэффициентом 0 покрывается вся карта.
Хотелось пойти путем исключения интересующей части массива из огромного массива, вмещающего в себя все клетки и расставить коэффиценты к оставшейся части, но проблема возникла с созданием этого огромного массива: Цива вылетала с критом на первом же ходу, не оставив мне ни единого шанса и так как здесь есть люди, которые кое-как близки с этим, то я обращаюсь сюда.
Для наглядности лучше я оставлю тут часть кода. Сейчас он расставляет нулевой коэффициент в интересующей области для цивилизации Египет, но это действие нужно инвертировать. Функция называется AI_foundValue
Код:
int egypt[3][2] = {
{122, 71}, {120, 66}, {120, 61}
};
if(getCivilizationType() == (PlayerTypes)GC.getInfoTypeForString("CIVILIZATION_EGYPT"))
{
for (int i = 0; i < 3; i++)
{
for (int x = egypt[i][0]-1; x < egypt[i][0]+4; x++)
{
for (int y = egypt[i][1]-1; y < egypt[i][1]+4; y++)
{
if(pPlot->getX() == x && pPlot->getY() == y)
{
return 0;
}
}
}
}
}
----------------------------------------------------------------------------------
решено