https://github.com/Ghennadi-Berezovschi/Roadmap
Ревью от Алексея
Хорошая реализация игры в процедурном стиле. Упрощенный функционал.
Недостатки реализации:
- Нет списка правильных и неправильных букв, которые вводили
- Можно ввести одну и ту же неправильную букву несколько раз и каждый раз это будет считаться новой ошибкой
- В игре всего 4 слова, что хорошо для отладки, но не очень, как игра
Хорошо:
- Нейминг
- Вся игра в одном классе, но разбита на маленькие методы
- Простой и понятный алгоритм
- Достаточное количество констант
Замечания:
- Нейминг
Убирай товтологию
HangmanGame.playGame()
//ПРАВИЛЬНО:
HangmanGame.play()
- Создавай вспомогательные методы, делай программу более простой и понятной:
if (userInput.isEmpty() || userInput.length() != 1 || !Character.isLetter(userInput.charAt(0))) {...}
//ПРАВИЛЬНО:
if (isМетодСназваниемКотороеВсеОбьясняет()) {...}
private static isМетодСназваниемКотороеВсеОбьясняет() {
return userInput.isEmpty() || userInput.length() != 1 || !Character.isLetter(userInput.charAt(0));
}
- Всегда используй классы через их интерфейсы
ArrayList<String> words = createWords();
//ПРАВИЛЬНО:
List<String> words = createWords();
- Нарушение инкапсуляции- все методы публичные.
Вывод: в процедурщине ты неплох. Переходи к ООП.