Перебор ArrayList с массивомJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Перебор ArrayList с массивом

Сообщение Anonymous »

Я перебираю индекс списка с помощью массива. Эта строка кода
score += SquareTable[index.get(i)];

выдает ошибку, и у меня нет идей, как ее исправить.
@Override
public int evaluatePieceScore() {

int score = 0;
List index = chessgame.getPieces();

for (Piece piece : this.chessgame.getPieces()){
if(piece.getColor() == Piece.YELLOW_COLOR){

score += this.CalculateScore(index, getPieceValue(Piece.TYPE_PAWN), PawnSquareTable);
score += this.CalculateScore(index, getPieceValue(Piece.TYPE_KNIGHT), KnightSquareTable);
score += this.CalculateScore(index, getPieceValue(Piece.TYPE_BISHOP), BishopSquareTable);
score += this.CalculateScore(index, getPieceValue(Piece.TYPE_ROOK), RookSquareTable);
score += this.CalculateScore(index, getPieceValue(Piece.TYPE_QUEEN), QueenSquareTable);
score += this.CalculateScore(index, getPieceValue(Piece.TYPE_KING), KingMiddleGameSquareTable);
score += this.CalculateScore(index, getPieceValue(Piece.TYPE_KING), KingEndGameSquareTable);

}else if(piece.getColor() == Piece.BROWN_COLOR){

score += this.CalculateScore(index, getPieceValue(Piece.TYPE_PAWN), reverse(PawnSquareTable));
score += this.CalculateScore(index ,getPieceValue(Piece.TYPE_KNIGHT), reverse(KnightSquareTable));
score += this.CalculateScore(index, getPieceValue(Piece.TYPE_BISHOP), reverse(BishopSquareTable));
score += this.CalculateScore(index, getPieceValue(Piece.TYPE_ROOK), reverse(RookSquareTable));
score += this.CalculateScore(index, getPieceValue(Piece.TYPE_QUEEN), reverse(QueenSquareTable));
score += this.CalculateScore(index, getPieceValue(Piece.TYPE_KING), reverse(KingMiddleGameSquareTable));
score += this.CalculateScore(index, getPieceValue(Piece.TYPE_KING), reverse(KingEndGameSquareTable));

}else{
throw new IllegalStateException("Unknown piece color found: "+piece.getColor());
}
}
return score;
}

public int CalculateScore(List index, int pieceValue, int[] SquareTable ){

int score = pieceValue * index.size();

for(int i = 0; i < index.size(); i++){
score += SquareTable[index.get(i)];
}

return score;
}


Подробнее здесь: https://stackoverflow.com/questions/247 ... h-an-array
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»