Я пытаюсь сравнить две шахматные доски (обозначенные int[][]
). Я написал тот же алгоритм на C ++, и у меня не было проблем при сравнении шахматных досок на равенство.
Я пытаюсь разместить здесь наиболее подходящий код. Есть ли какие-то Java основные принципы, которые я пропустил при сравнении между «двумерными» массивами? Или это может быть связано с памятью / хранилищем, потому что не разбираются дубликаты решений? Я попытался выделить новую память для шахматных досок в списке, но это заканчивается бесконечным l oop.
. Я также использовал несколько способов сравнения досок даже с .equals, .deepEquals для каждой итерации и sets.
Это фрагмент кода из функции сравнения, которая проверяет равенство и вызывается функцией TrulyUnique каждый раз, когда я отражаю и поворачиваю. Я сравниваю 2 переменные типа int[][]
, называемые storeCurrentBoard
и playboard
.
int [][] storeCurrentBoard;
for(int k = 0; k < QList.size(); k++)
{
//isPresentinList = true;
storeCurrentBoard = QList.get(k);
for(int i = 0; i < playboard.length; i++)
{
for(int j = 0; j < playboard[i].length; j++)
{
if(playboard[i][j] != storeCurrentBoard[i][j])
{
isPresentinList = false;
break;
}
}
}
}