|
328 / 163 / 89
Регистрация: 03.11.2010
Сообщений: 920
|
|
Игра "Трубопровод". Как сделать проверку трубопровода на связность25.08.2012, 18:21. Показов 2561. Ответов 4
Метки нет (Все метки)
Всем привет. Пишу игру "Трубопровод (Ветка)". Игра будет консольная. Имеется два вопроса.
Первый вопрос: Нужно чтобы программа проверяла возможна ли данная расстановка труб на поле, т.е. сможет ли игрок собрать трубопровод. Как сделать такую проверку? Второй вопрос: Проверка на связность труб. Как проверить подходят трубы друг к другу, или нет? Предполагаю, что для каждого элемента нужно прописывать всевозможные комбинации его соседей. Но, мне кажется, что это будет как-то громоздко. Возможно ли как-то проще сделать? Описание игры: На экране представлено игровое поле, на котором расположены угловые элементы вида: ┌, └, ┘ , ┐, –, |,+, и др. Задача игрока - за минимальное число вращений этих элементов составить из них единую линию. Пример игры: http://home.earthlink.net/~tdg... pegame.htm. Добавлено через 2 часа 19 минут Никто не может подсказать ?
0
|
|
| 25.08.2012, 18:21 | |
|
Ответы с готовыми решениями:
4
Игра "Трубопровод": как сделать разъединение труб как сделать проверку выиграша и переход на новую игру(игра крестики нолики на батонах) Прогу выложыл в архиве Как сделать проверку на пустую строку и проверку что в слове нет повторяющихся букв |
|
51 / 38 / 5
Регистрация: 14.01.2012
Сообщений: 127
|
|
| 25.08.2012, 20:01 | |
|
Отвечаю в меру своих умственных способностей:
Первый вопрос: Если, это следствие из вопроса о том как сгенерировать игровое поле, то по-моему составить уже "соединеное" поле и потом "поворачивать" клетки легче. Впрочем ни как составить "соединеное" поле, ни ответить на первый вопрос не могу. Т.е. могу предложить вариант тупо перебирающий все варианты расположения труб в клетках и проверяющий каждый из этих вариантов(а их очень много) на связность отдельно. Второй вопрос: Проверять, соединена ли клетка с соседней? Допустим клетка (1) над клеткой (2) Проверяем, есть ли выход у (1) вниз, и , соответсвенно у (2) вверх.
1
|
|
|
328 / 163 / 89
Регистрация: 03.11.2010
Сообщений: 920
|
|
| 25.08.2012, 20:29 [ТС] | |
|
nrv, Спасибо. Второй вопрос, вроде, решился.
Хотелось бы еще послушать варианты решения!
0
|
|
|
912 / 672 / 134
Регистрация: 01.03.2010
Сообщений: 1,279
|
||
| 26.08.2012, 01:16 | ||
|
2. каждая клетка - это отдельный объект. 3.Для каждого объекта (клетки) задать координаты от 1 до 4. 1- верх, 2-прав. сторона, 3- низ, 4 -лев.сторона. 4. При вращении фиксировать смещение координат сторон 5. Правильно стоящая клетка всегда будет смотреть стороной 1 вверх. 6. Присвоить сторонам клетки значения True, если они имеют выход/вход трубы. Тогда при вращении клетки, если ее сторона со значением True встретится со стороной True соседней клетки -то это будет продолжением трубы. Можно трубы в них закрасить синим по мере продвижения сборки (заполнить водой) 7. Всегда можно собрать трубу одним кликом, заставив смотреть клетки стороной 1 вверх. 8. Игроку можно организовать подсказку на любое количество правильно стоящий клеток, повернув их стороной 1 вверх. 9. Игроку можно организовать подсказку на любое количество не правильно стоящий клеток окрасив их другим цветом. Ну и далее по мере воображения. Возможный недостаток такого подхода - трубу можно собрать только единственным способом. Если труба будет сложной формы, с кучей ответвлений, то наверное будут участки, где возможны варианты. Хотя, может я и ошибаюсь.
1
|
||
|
328 / 163 / 89
Регистрация: 03.11.2010
Сообщений: 920
|
|
| 26.08.2012, 02:18 [ТС] | |
|
Евгений В, Отличное объяснение. Спасибо.
0
|
|
| 26.08.2012, 02:18 | |
|
Помогаю со студенческими работами здесь
5
А как если что сделать проверку на пустой файл и вывод используемой оперативы/время выполнения? я сделал проверку на пус Что сделать, чтоб при печати были видны линии, пересекающие трубопровод?
Как сделать так, чтобы при нажатии на кнопку "Новая игра" игра начиналась заново? как сделать проверку? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|