Я, может, туплю, но зачем брать остаток от деления?
int index = (int) (Math.random() * emptyTiles.size()) % emptyTiles.size();
Без него решение не проходит.
Ведь результат Math.random() * emptyTiles.size() будет всегда строго меньше самого emptyTiles.size(), т.е. взятие остатка от деления никак результат не изменит.
16/07/2024 конец квестов) этот, наверное, был самым мутным из всех: ни в одном из мини проектов пока не сумел применить многопоточность. к моменту, когда потрогаю на деле, успею забыть, придется возвращаться 😬
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ