|
17 / 17 / 7
Регистрация: 05.09.2012
Сообщений: 246
|
|||||||||||
Не получается наполнить массив внутри метода30.04.2014, 02:56. Показов 2435. Ответов 10
Метки нет (Все метки)
Уважаемые форумчане,
пробовал написать код игры Морской бой (пока упрощенная версия, где только 1 кораблик на 3 палубы, и 1 строчка, в которой он помещается. Часть брал из учебника часть пробовал придумывать сам. Возникла проблема с методом setLocationCells, который "устанавливает" кораблик (в виде массива). Метод я писал сам, и он не совсем работает. То есть отдельно, он как бы присваивает массиву нужные значения и даже может их распечатать, но остальные части программы данного массива int [] locationCells как бы не видят. Подскажите пожалуйста, что сделал не так Прилагаю код который написал я, и который рекомендуется учебником. Мой код
0
|
|||||||||||
| 30.04.2014, 02:56 | |
|
Ответы с готовыми решениями:
10
Наполнить ListBox данными, с п омощью метода нового класса Получить имя метода внутри самого метода |
|
51 / 51 / 42
Регистрация: 06.09.2013
Сообщений: 188
|
|
| 30.04.2014, 03:13 | |
|
AMufu, а какие именно части не видят? подробнее опишите, что вы хотите сделать?
0
|
|
|
17 / 17 / 7
Регистрация: 05.09.2012
Сообщений: 246
|
||||||||||||
| 30.04.2014, 03:24 [ТС] | ||||||||||||
|
Проблема с методом setLocationCells, который "устанавливает" кораблик (в виде массива). Метод я писал сам, и он не совсем работает. То есть отдельно, он как бы присваивает массиву нужные значения и даже может их распечатать, но остальные части программы данного массива int [] locationCells как бы не видят.
При попытке выполнить Вот мой не работающий вариант метода
0
|
||||||||||||
|
51 / 51 / 42
Регистрация: 06.09.2013
Сообщений: 188
|
||||||
| 30.04.2014, 04:48 | ||||||
|
AMufu,
Добавлено через 1 минуту AMufu, вы дважды объявляли массив с одним и тем же именем, один раз как член класса, а второй локально в методе, отсюда Вам и ошибка ![]() Добавлено через 6 минут AMufu, т.е. вы локальный массив (существующий на протяжении работы метода) вы заполняли необходимыми рандомными числами, а в методе checkYourSelf обращались к массиву принадлежащему объекту класса, но для него вы не определили никаких действий, он пустой, отсюда и исключение NullPointerException.
1
|
||||||
|
17 / 17 / 7
Регистрация: 05.09.2012
Сообщений: 246
|
||||||||||||
| 30.04.2014, 05:03 [ТС] | ||||||||||||
|
Спасибо. Ето кое-что обяснило.
Но тогда еще вопрос возникает - почему если из моего варианта метода убрать int [] перед именем массива и сделать так, типа мы инициализируем этот массив (если я правильно использую термин)
и если можно сдесь же задам вопрос по другой части того же кода. В приведенном коде "ход" от игрока принимается с помощью класса GameHelper и использования входящего потока
0
|
||||||||||||
|
51 / 51 / 42
Регистрация: 06.09.2013
Сообщений: 188
|
||||||||
| 30.04.2014, 14:16 | ||||||||
![]()
либо выделить память а потом в цикле заполнить. Вы читаете Кэти Сьерра, Берт Бейтс "Head First Java"?
0
|
||||||||
|
17 / 17 / 7
Регистрация: 05.09.2012
Сообщений: 246
|
||
| 30.04.2014, 14:38 [ТС] | ||
0
|
||
|
51 / 51 / 42
Регистрация: 06.09.2013
Сообщений: 188
|
|
| 30.04.2014, 15:06 | |
|
AMufu, зачем Вам этот System.in.read когда нужно считывать строку а не символ! я сам читаю эту книгу и тоже не стал пользоваться вариантом авторов, а написал свой, с консольной визуализацией, код конечно не очень, но для тренировки пойдет. Работайте с readLine и все будет хорошо, Вам чтение отдельных символов тут не нужно, так зачем заморачиваться?
0
|
|
|
17 / 17 / 7
Регистрация: 05.09.2012
Сообщений: 246
|
||||||
| 30.04.2014, 15:48 [ТС] | ||||||
|
Вот попробовал обявить массив int [] locationCells и сразу его инициализировать. Но следующий метод checkYourSelf такого массива не видит.
0
|
||||||
|
51 / 51 / 42
Регистрация: 06.09.2013
Сообщений: 188
|
|
| 30.04.2014, 20:41 | |
Сообщение было отмечено AMufu как решение
Решение
AMufu, конечно он не будет виден
я вам даже больше скажу, когда выполнение метода закончится, ваш массив будет уничтожен, если не сохранить больше никаких ссылок на него Поэтому массив должен быть членом класса, а не объявлен локально в методе. Сделайте его приватным членом и вы сможете оперировать им в любом методе класса.
1
|
|
|
17 / 17 / 7
Регистрация: 05.09.2012
Сообщений: 246
|
||
| 30.04.2014, 23:16 [ТС] | ||
0
|
||
| 30.04.2014, 23:16 | |
|
Помогаю со студенческими работами здесь
11
Объект внутри объекта / метод внутри метода Не могу наполнить массив данными Наполнить массив данными из интернета Как наполнить массив через VALUE checkbox'a? Наполнить свойство класса(массив) объектами Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|