У меня есть сетка 36х25 узлов, которую я хочу искать по всем треугольным номерам из угла, противоположного гипотенузе. Вот psuedocode для того, что я рассматривал, но этот метод работает только до тех пор, пока он не попадет в следующий угол сетки, и я уверен, что есть намного более простой способ сделать это рекурсивно, мне просто трудно понять это.Поиск сетки рекурсивно по треугольным номерам
for(int iteration; iteration < maxDistance(49); iteration++)
{
int xAdd = iteration;
int yAdd = 0;
while(xAdd != 0)
{
checkStuff(nodeGrid[x+xAdd][y+yAdd]);
xAdd--;
yAdd++;
}
}
То, что я хочу программу, чтобы сделать:
[0][1][2][3][4][5]
[1][2][3][4][5][6]
[2][3][4][5][6][7]
[3][4][5][6][7][8]
[4][5][6][7][8][9]
проверка в этом порядке. Поэтому сначала проверьте все плитки со значением 0, затем 1 и так далее.
Примечание: в этом случае моя функция будет работать только до четвертой настройки плитки. Дальше, и он выйдет за пределы.
Это не треугольные числа, треугольное число начинается с: '1,3,6,10, ...' Это числа, которые имеют форму 'n * (n + 1)/2'. Кроме того, вы уверены, что хотите сделать это рекурсивно? – Justin
он будет представлять собой форму треугольного номера, если вместо этого источник был одним из других углов. Не знаю, какой термин для моей числовой формы. И поскольку моя сетка не является идеальным квадратом, я решил, что рекурсия будет самым простым решением проблемы. Если вы знаете лучший способ сделать это в цикле, не добавляя слишком много условностей, я бы тоже хотел услышать ваше решение. – SpiderShlong