Помогите упростить поиск похожих "тайлов".
Суть в том что этот метод является методом объекта класса Tile (то, из чего состоит карта). Объект проверяет вокруг себя по определенным линиям тайлы на наличие схожих по свойству mark и если это так, увеличивает значение комбо.
Сама карта - это двумерный массив
Также тайлов на линии не может быть больше 3
Зеленым цветом - тайлы
Разноцветные линии - разные проверяемые направления
Одна пара в словаре - одна линия
График слева сверху показывает направление осей, но на самом деле оси это мерности массива, где y - первая мерность, а x - вторая
GetTile() - метод другого класса который возвращает тайл на карте по координатам (сигнатура: GetTile(int,int))
public Dictionary<string,int> GetComboLines()
{
Dictionary<string,int> combos = new Dictionary<string,int>();
combos.Add("horizontal",0);
combos.Add("vertical",0);
combos.Add("diagonal",0);
combos.Add("diagonal2",0);
for (int j = -2; j<2; j++)
{
if (GetTile(this.y,this.x+j).mark==this.mark)
{
combos["vertical"]++;
}
if (GetTile(this.y+j,this.x).mark==
this.mark)
{
combos["horizontal"]++;
}
if (GetTile(this.y+j,this.x+j).mark==this.mark)
{
combos["diagonal"]++;
}
if (GetTile(this.y-j,this.x+j).mark==this.mark)
{
combos["diagonal2"]++;
}
}
return combos;
}