Хотя нет, проверка true норм, так как ты проверяешь область только на территории воды, то координаты которые генерируются на территории земли автоматом false и поэтому на воде только 17 островков у тебя, вместо 20, нужна доработка кода.
Один из вариантов судя по скриншоту: на 108 строчке замени false на true, а на 117 строке добавь flag = false; А вообще вариантов много по решению задачи =)
Научился: Создал матрицу...
Написал метод для заполнения матрицы водой и землей.
Добавил случайные острова которые не касаются "большой" земли и друг друга =) Трудности: задание со звёздочкой =)