В общих деталях, у меня есть массив на 5 элементов. (но в дальнейшем количество элементов может быть увеличено, так что можно считать что массив не ограничен). И мне нужно прочесать массив на совпадение и указать если есть совпадения то сколько их для каждого РАЗНОГО элемента массива. То есть, (смотреть ниже в коде), 3 совпадения в первом случае, 3 совпадения во втором, при этом 2 совпадения для единиц и 1 совпадение для двоек и 1 совпадение в третьем случае. Мне я так понял нужен алгоритм наподобие:
public int[] ScoreCombo;
private void Start()
{
ScoreCombo = new int[5]{1, 2, 1, 1, 1};//Первый случай
}
//Или к примеру {1, 1, 2, 2, 1} Второй случай
//Или {4, 2, 1, 5, 1} И третий случай
//И любые другие вариации
int BufferMas = 0;
for (int a = 1; a < ScoreCombo.Length; a++)
{
if(ScoreCombo[BufferMas] == ScoreCombo[a])//Тут я проверяю соответствия в массиве
{
Debug.Log("Совпадение: " + "Element " + BufferMas + ", Element " + a);
}
if (a == 4 && ScoreCombo[BufferMas] != ScoreCombo[BufferMas + 1])//А здесь я проверяю,
//Стоит ли делать второй проход со следующем индексом массива для поиска соответствий.
//Тут как по мне и кроется загвоздка в решении моей проблемы.
{
BufferMas++;
a = BufferMas;
}
}
Надеюсь достаточно описал, если надо, могу полностью код скинуть и само задание с которым возникла трудность.