JavaRush /Java блог /Архив info.javarush /Первый проект “Морской бой”!
Kashey
11 уровень
Olomouc

Первый проект “Морской бой”!

Статья из группы Архив info.javarush
Привет Джаварашовцам! Потихоньку начинаю собирать портфолио, и представляю вам мой первый проект “Морской бой”. Исходники на GitHub’e скомпилированный здесь. Пояснения и подсказки в коде написаны на быструю руку и скорее всего с ошибками. В игре пока один уровень сложности, компьютер пока стреляет случайным образом, и даже когда попадет все равно продолжает лупить рандомно. Пока мне кажется, что сильно перегружен класс Battle, может стоит перенести из него в отдельные классы заполнение поля караблями и печать полей? Библиотека JCDP позволяет выделять цветом напечатанное в cmd или терминале, только почему-то при использовании ColoredPrinterWIN в винде печатается нормально а в ИДЕЕ цвет игнорируется, если использовать ColoredPrinter то наоборот )) Буду рад советам более опытных программеров по улучшениям, красоте кода, выявлению возможных багов и т.д.
Комментарии (13)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Sygurny Уровень 26
29 апреля 2015
я так понял, что нужна JVM для запуска, а реально ли такие игры в экзешники перевести? (я нуб)
timurnav Уровень 21
28 апреля 2015
по игре, я бы вынес в отдельные классы:
1.ConsoleHelper — ввод и вывод в консоль,
2.BattleField — поле, список активных/убитых кораблей, аэкземпляр этого класса бы уже назывался именем пользователя или компьютером.
3. абстрактный класс Ship, наследники: Battleship, Cruiser, Destroyer, Submarine. а сами списки кораблей — поля класса BattleField.
4. вся игровая логика — статические методы класса GameLogic: createField, manualPlacingPlayersShips, playerFireAndCheck и прочее. вот вопрос, рандомное заполнение поля игрока и компьютера чем нибудь отличается? я так понял что нет, так зачем повторять код?)классы разные, но пусть они наследуются от одного предка имеющего такое поле, которое можно заполнять в одном методе, а не в двух

игра очень понравилась, я могу быть в чем-то не прав, я совсем не опытный программист, просто я недавно тоже начал писать кое-какие игры) если интересно, вот первая, вот вторая

и вероятно, третьей игрой будет морской бой!)
timurnav Уровень 21
28 апреля 2015
очень прикольная игра!
Gloomy Уровень 8
7 февраля 2015
А почему бы не сделать ИИ? Если противник попал по кораблю, то пусть стреляет в следующем ходу по соседним клеткам, а если попал и не затопил, то следующий выстрел либо далее, либо в противоположный конец корабля.
Olegator3 Уровень 37
6 февраля 2015
Можешь подробно описать как с помощью библиотеки сделал цветным консоль и все остальное?
MrBaseMax Уровень 41
5 февраля 2015
Поиграл в идее, с цветом. Симпатично все, работает. Молодец!