|
0 / 0 / 0
Регистрация: 07.04.2023
Сообщений: 13
|
||||||
Двемерный Строковый массив для игрового поля. Проверить дорогу07.04.2023, 13:12. Показов 1057. Ответов 16
Метки нет (Все метки)
Добрый день, ребята!
Может ли кто-нибудь помочь мне решить мою задачу? У меня есть двумерный массив строк, который должен представлять игровое поле. Поле состоит из стены ('#'), маршрута (' ') и линии старта/финиша ('<' или '>'), указывающей направление движения влево или вправо. Я должен проверить, действительно ли игровое поле. Поле действительное, если маршрут от начала (стартовая линия с рдной стороны) до конца (стартовая линия с другой стороны)не перекрыт стеной. Если например следуя одному маршруту зашел в тупик, но можна вернуться и пойти другим маршрутом (картинка 2), то дорога является действительной, потому что можна все таки дойти до цели. Изображения помогут понять, как может выглядеть игровое поле и как двигаться от начала до конца. Нам запретили использовать awt или swing. Очень надеюсь, что смог доступно обяснить задачу и кто то сможет мне помочь.
0
|
||||||
| 07.04.2023, 13:12 | |
|
Ответы с готовыми решениями:
16
Создать массив для игрового поля крестиков-ноликов Двемерный массив |
|
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,779
|
|
| 07.04.2023, 13:26 | |
|
2
|
|
|
8 / 6 / 2
Регистрация: 25.12.2011
Сообщений: 116
|
||||||
| 07.04.2023, 16:12 | ||||||
|
Для проверки, является ли игровое поле действительным, можно использовать алгоритм поиска в глубину (Depth First Search, DFS). Этот алгоритм позволяет проверить, существует ли маршрут от начала до конца поля без перекрытий стеной.
Вот примерный код:
1
|
||||||
|
0 / 0 / 0
Регистрация: 07.04.2023
Сообщений: 13
|
|
| 07.04.2023, 17:21 [ТС] | |
|
Спасибо большое за ответ.
У меня почему то результат всегда false.
0
|
|
|
|
|||
| 07.04.2023, 18:05 | |||
|
Еще запуск isValid неправильный в корне. Надо брать от направления старта клетку. Я уже решал похожую задачу, надо только направление добавить в клетку старта. Проверить игровое поле на валидность
1
|
|||
|
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
|
|
| 09.04.2023, 15:48 | |
|
Не по теме: korvin_, это двемерский
0
|
|
|
0 / 0 / 0
Регистрация: 07.04.2023
Сообщений: 13
|
|
| 10.04.2023, 09:42 [ТС] | |
|
Спасибо большое, я пересмотрел ваш вариант решения подобной задачи. Пока ещё не все понял, я новичок пока.
Вы могли бы мне помочь решить задачу не используя *awt. Нам запретили использовать awt и swing. Спасибо за любой ответ.
0
|
|
|
|
|||||||||||
| 10.04.2023, 11:14 | |||||||||||
|
maxpavlenko, там awt нужен для функции хэша и equals. Можно самому написать, в принципе-то. Еще там Mutable объект в качестве ключа используется, что конечно неправильно.
Добавлено через 48 минут Сам попроверял, пару условий неверно сделал. Вроде работает Кликните здесь для просмотра всего текста
1
|
|||||||||||
|
0 / 0 / 0
Регистрация: 07.04.2023
Сообщений: 13
|
|
| 10.04.2023, 11:19 [ТС] | |
|
Тестовые данные у меня есть в JSON. Мне лучше скопировать их сюда в виде массива или загрузить JSON?
0
|
|
|
0 / 0 / 0
Регистрация: 07.04.2023
Сообщений: 13
|
||||||
| 10.04.2023, 12:45 [ТС] | ||||||
0
|
||||||
|
0 / 0 / 0
Регистрация: 07.04.2023
Сообщений: 13
|
|
| 10.04.2023, 13:08 [ТС] | |
|
Ну вот здесь я мог бы пойти двумя дорогами, но обе перекрыты стеной, поэтому трек не действителен.
0
|
|
|
0 / 0 / 0
Регистрация: 07.04.2023
Сообщений: 13
|
|
| 10.04.2023, 13:22 [ТС] | |
|
Здесь я могу спокойно пройти, даже е сти я пойду дорогой 2, я все равно могу вернуться и пойти правильным путем.
0
|
|
|
|
|
| 10.04.2023, 21:13 | |
|
Все равно не понял. Я просто намеренно считаю start клетки стенами. Если мы сквозь них ходить сможем, то вот подобное можно сделать.
Если > и < не значит направление, а можно ходить и вних и вверх, то надо просто перебор всех направлений возможных делать в isValid, как у меня было изначально.
0
|
|
|
0 / 0 / 0
Регистрация: 07.04.2023
Сообщений: 13
|
|
| 10.04.2023, 23:46 [ТС] | |
|
Прошу прощения. Я что то уже сам совсем запутался и неверно указал направление линии старта (направление должно било быть влево). Попробую объяснить ещё раз. Движение должно начинаться на линии старта (на любой из клеток линии старта). То есть я стою на линии и двигаюсь по направлению указанному стрелкой. Когда я делаю первый шаг, я схожу с линии старта в указанном направлении на первую свободнуюю клетку (' '). Потом я должен пройти по дороге и опять дойти до линии старта. То есть когда поле действительно, то должен быть свободной путь из белых полей до лини старта с другой стороны в том же направлении (в данной ситуации опять влево). Очень надеюсь, что это поможет вам понять мою задачу и спасибо большое за потраченное время.
0
|
|
|
|
||
| 11.04.2023, 02:29 | ||
|
Нужно вводить еще два направления "^", "∨" Добавлено через 5 минут Возможно, что это транспонированное значение, но думаю оси ты и сам поменять сможешь.
0
|
||
| 11.04.2023, 02:29 | |
|
Помогаю со студенческими работами здесь
17
Забыл как вывести двемерный массив EF. Строковый атрибут для поля Строковый массив (объявить пустой глобальный строковый массив из 16 элементов) Создание игрового поля для арканоида Реализовать класс для поддержки игрового поля Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|