ок. вчитался..
ну смотрите - перебор вы вроде делаете..
диагональных соседей считаем?
.. на шарпе лобовое решение было бы примерно
if((ArrayNumber[i][k] === ArrayNumber[i][k+1]) ||
ArrayNumber[i][k] === ArrayNumber[i+1][k]))
{...}
оптимизация от повторов здесь не нужна была бы... страховка выхода за пределы, вроде как заложена ))
ну если нужны диагональные..
if((ArrayNumber[i][k] === ArrayNumber[i][k+1]) ||
ArrayNumber[i][k] === ArrayNumber[i+1][k]) ||
ArrayNumber[i][k] === ArrayNumber[i+1][k+1]))
{...}
... с диагональными сложнее, так ловим только одну диагональ... короче, нужны диагонали - пиши, одну потеряли.. и на халяву не выходит ))