Я могу опубликовать больше кода, если мне нужно, но до этого я хотел бы просто задать общий вопрос о следующем методе, в котором передается массив, а затем установить другой массив, но по какой-то причине исходный массив, тот, который проходит, также меняется, как это возможно/что я должен делать? Благодаря
tempBoard представляет собой массив такого же размера, как currentState, а temp [k] содержит изменения, которые выполняются в movePiece, текущее состояние объявлено в методе и не является глобальной переменной
private int[][] MiniMaxBaseCase(int[][] currentState, int currentColor)
{
tempBoard = movePiece(currentState,temp[k]);
}
private int[][] movePiece(int[][] currentState, int[] move)
{
if(move[0] == -1)
return currentState;
//if the piece is just moving
if(move[4] == -1)
{
currentState[move[2]][move[3]] = currentState[move[0]][move[1]];
currentState[move[0]][move[1]] = 0;
return currentState;
}
//if the piece is jumping another
if(move[4] != -1)
{
currentState[move[4]][move[5]] = currentState[move[0]][move[1]];
currentState[move[2]][move[3]] = 0;
currentState[move[0]][move[1]] = 0;
return currentState;
}
return currentState;
}