У меня есть этот метод:
public bool CantMoveIfCreatedCheck(Pieces[,] pieces, int rowStart, int columnStart,
int rowEnd, int columnEnd)
{
pieces[rowEnd, columnEnd] = pieces[rowStart, columnStart];
// shift one piece to another location
pieces[rowStart, columnStart] = null;
if (whitePiece)
{
for (int z1 = 0; z1 < 9; z1++)
{ //Find Threatening piece
for (int j = 0; j < 9; j++)
{
if (pieces != null && pieces[whitekingRow, whitekingColumn] != null))// i have some check algorithm
{
canCheck = true;
chess.YouWillBeCheckedCantMove();
}
}
}
}
pieces[rowStart, columnStart] = pieces[rowEnd, columnEnd];// shift it back to the end location
pieces[rowEnd, columnEnd] = null;
return canCheck;
}
Что я пытаюсь сделать здесь, это на мгновение изменить расположение шахматных фигур внутри массива и сдвинуть их обратно сразу после окончания двух циклов.
Но поскольку все работает с массивами / объектами по ссылке, перемещение фрагмента в одном месте массива в другое место массива создает проблемы.есть ли способ как-то изменить массив на другой, не влияя на исходный массив
Например, создав temperoryArray[,]=pieces[,];
(у меня это не сработало, потому что он скопировал ссылки и оказал влияние на массив частей)
Есть ли альтернативный способ?