Комментарии 3
А откуда брать monitor и t в методе printField?
static void printField(char[][] field) {
for (char[] cells : monitor) {
for (char cell : t) {
Тема написания простых игр интересная, и я так раз начинающий. Но статья больше отпугивает новичков. И к сожалению тут остается только критиковать. Начал выполнять все по пунктам и вот с чем столкнулся:
1) static final int FILED_LENGTH = 10; В строке 2 мы создаем константу FIELD_LENGTH — название констант разные. Хотя тут просто банальная ошибка в слове field, но она написана неправильно на протяжение всего кода.
2) «Расставляем » + i + "-палубный корабль. Осталось расставить: " + (q + 1) — что за переменная q и откуда она взялась? Далее, переменные x, y и position тоже не проинициализированны.
3) for (char cell: t) { — тут должно быть не t, а cells(наверно, я не знаю), но t до этого ни где не инициализировалось.
4) На экране метод будет так отображать расстановку кораблей: — у Вас показан четырех палубный корабль, у меня только двух. И ошибка вот в чем:
for (int i = 4; i >= 1; i--) {
// растановка кораблей
for (int k = i; k <= 5 — i; k++) { — если k = 4, то получаем 4<= 5-4 условие не выполняется и четырех палубный корабль мы поставить уже не можем, как и трех.
На этом мне уже все надоело и я решил не читая дальше статью просто скопировать и скомпилировать весь код. Все эти ошибки не пропали. И очень сильно раздражало при постановки однопалубного корабля постоянно выбирать по диагонали или вертикали его ставить. Так же не понятно почему текст то на русском, то на английском.
При тупом копировать — вставить количество строчек получилось 177. И Ваша фраза «Оказывается на циклах и массивах можно написать игру» конечно правда и я даже больше скажу, джаве машине вообще классы ненужны, был бы только main. Так что всё можно написать в «процедурном стиле», но все же разбив хотя бы на несколько классов, новичку было бы проще ориентироваться в коде, а не крутить постоянно 177 строчек.
Не принимайте мою критику сильно близко, если все исправить, то получится отличная статья. Так же жду от Вас продолжения.
1) static final int FILED_LENGTH = 10; В строке 2 мы создаем константу FIELD_LENGTH — название констант разные. Хотя тут просто банальная ошибка в слове field, но она написана неправильно на протяжение всего кода.
2) «Расставляем » + i + "-палубный корабль. Осталось расставить: " + (q + 1) — что за переменная q и откуда она взялась? Далее, переменные x, y и position тоже не проинициализированны.
3) for (char cell: t) { — тут должно быть не t, а cells(наверно, я не знаю), но t до этого ни где не инициализировалось.
4) На экране метод будет так отображать расстановку кораблей: — у Вас показан четырех палубный корабль, у меня только двух. И ошибка вот в чем:
for (int i = 4; i >= 1; i--) {
// растановка кораблей
for (int k = i; k <= 5 — i; k++) { — если k = 4, то получаем 4<= 5-4 условие не выполняется и четырех палубный корабль мы поставить уже не можем, как и трех.
На этом мне уже все надоело и я решил не читая дальше статью просто скопировать и скомпилировать весь код. Все эти ошибки не пропали. И очень сильно раздражало при постановки однопалубного корабля постоянно выбирать по диагонали или вертикали его ставить. Так же не понятно почему текст то на русском, то на английском.
При тупом копировать — вставить количество строчек получилось 177. И Ваша фраза «Оказывается на циклах и массивах можно написать игру» конечно правда и я даже больше скажу, джаве машине вообще классы ненужны, был бы только main. Так что всё можно написать в «процедурном стиле», но все же разбив хотя бы на несколько классов, новичку было бы проще ориентироваться в коде, а не крутить постоянно 177 строчек.
Не принимайте мою критику сильно близко, если все исправить, то получится отличная статья. Так же жду от Вас продолжения.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
«Морской бой» на Java для новичков. Level 1