if (moveScore.compareTo(lastStepScore) >= 0) {
return 1.0;
}
Score scoreDifference = lastStepScore.subtract(moveScore);
double acceptChance = 1.0;
double[] scoreDifferenceParts = scoreDifference.toDoubleArray();
for (int i = 0; i < partsLength; i++) {
double scoreDifferencePart = scoreDifferenceParts[i];
double temperaturePart = temperatureParts[i];
double acceptChancePart;
if (scoreDifferencePart <= 0.0) {