double delta = tile_delta + goal_delta;
double swapProbability = Math.exp((-1 * delta) / temp);
boolean doSwap = good && (Math.random() < swapProbability);
//boolean doSwap = good && (tile_delta <= 0 && goal_delta <= 0);
//boolean doSwap = good && (tile_delta + goal_delta <= 0);
if (doSwap) {
double delta = tile_delta + goal_delta;
double swapProbability = Math.exp((-1 * delta) / temp);
boolean doSwap = good && (Math.random() < swapProbability);
//boolean doSwap = good && (tile_delta <= 0 && goal_delta <= 0);
//boolean doSwap = good && (tile_delta + goal_delta <= 0);
if (doSwap) {