Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.95
:[Slash]:
1 / 1 / 0
Регистрация: 24.06.2009
Сообщений: 5
#1

Лабиринт - C++

24.06.2009, 11:11. Просмотров 2800. Ответов 8
Метки нет (Все метки)

Народ помогите! есть задание:
Лабиринт представляет собой квадрат, состоящий из NxN сегментов. Каждый из сегментов может быть либо пустым, либо заполненным камнем. Гарантируется, что левый верхний и правый нижний сегменты пусты. Лабиринт обнесен сверху, снизу, слева и справа стенами, оставляющими свободными только левый верхний и правый нижний углы. Требуется покрасить стены лабиринта, ВИДИМЫЕ изнутри. Рассчитать количество краски, необходимой для этого.

как можно посчитать все эти стенки???
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.06.2009, 11:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Лабиринт (C++):

Лабиринт C++ - C++
я написал код лабиринта на c++, с помощью чего можно найти кратчайший путь выхода из лабиринта? #include <iostream> #include...

лабиринт - C++
Всем привет. У меня проблема. В игре лабиринт получается, что каждый ход открывается новый лабиринт, как сделать, что бы он был один и тот...

Лабиринт - C++
Всем привет. Подскажите, вот делаю игру (понятно какую) но проблема. Вот код #include "stdafx.h" #include <iostream> using namespace...

лабиринт - C++
Коридорами лабиринта разрешается двигаться только в направлениях, указанных стрелками. Человек вошел в комнату A и, выбирая случайным...

Лабиринт - C++
#include <iostream> #include <fstream> #include <conio.h> #include <time.h> #include <cmath> #include <stdio.h> using...

Лабиринт с++ - C++
Есть код. только мне не понятен алгоритм который работает в bool PathExists(Labyrinth& lab, int y1, int x1, int y2, int x2) { и...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Evg
Эксперт CАвтор FAQ
17826 / 6036 / 388
Регистрация: 30.03.2009
Сообщений: 16,567
Записей в блоге: 26
24.06.2009, 11:28 #2
А что значит видимые изнутри? Т.е. существует хотя бы одна точка внутри, откуда стена видна?

А так берёшь все незанятые точки внутри лабиринта и идёшь от точки до четырёх сторон. Если натыкаешься на занятую точку, то отваливаешь. Если в итоге дошёл до края лабиринта - значит соотвествующий кусок стены видимый. Ну и надо учесть, что в четырёх местах стены нет (если я условие правильно понял)
0
:[Slash]:
1 / 1 / 0
Регистрация: 24.06.2009
Сообщений: 5
24.06.2009, 11:35  [ТС] #3
011111
100101
100111
110001
111110
вот пример лабиринта!! 0вверху слева вход, внизу снизу выход! мне надо наити грубо говоря всестенки, кроме тех, что около выделеного 0! т.е те стенки мы не видим

Добавлено через 1 минуту 36 секунд
Цитата Сообщение от Evg Посмотреть сообщение
А так берёшь все незанятые точки внутри лабиринта и идёшь от точки до четырёх сторон. Если натыкаешься на занятую точку, то отваливаешь. Если в итоге дошёл до края лабиринта - значит соотвествующий кусок стены видимый. Ну и надо учесть, что в четырёх местах стены нет (если я условие правильно понял)
я так щас и делаю, проблема в том, что идя так "по стенкам" когда я нахожу выход, программа дальше не считает..
0
Patch
2276 / 491 / 11
Регистрация: 01.04.2009
Сообщений: 2,178
24.06.2009, 11:44 #4
Цитата Сообщение от :[Slash
я так щас и делаю, проблема в том, что идя так "по стенкам" когда я нахожу выход, программа дальше не считает
а ты не выход ищи, а вход.
точку, откуда начал, с начальным направлением.
только вариант "по стенкам" не годится.
как я понял условия, возможны "внутренние кольца", до которых "по стенке" дойти нельзя.
0
:[Slash]:
1 / 1 / 0
Регистрация: 24.06.2009
Сообщений: 5
24.06.2009, 11:51  [ТС] #5
ну как раз такие кольца нам считать и не нада...
1
Patch
2276 / 491 / 11
Регистрация: 01.04.2009
Сообщений: 2,178
24.06.2009, 11:56 #6
Цитата Сообщение от :[Slash
:;201696]ну как раз такие кольца нам считать и не нада

0111111111
0000000001
1000000001
1001111001
1001111001
1000000001
1000000001
1111111100
хочешь сказать, что внутренний блок в этом примере окрашивать не надо??
0
:[Slash]:
1 / 1 / 0
Регистрация: 24.06.2009
Сообщений: 5
24.06.2009, 12:04  [ТС] #7
нужно, я просто не правильно тебя понял...
0
Evg
Эксперт CАвтор FAQ
17826 / 6036 / 388
Регистрация: 30.03.2009
Сообщений: 16,567
Записей в блоге: 26
24.06.2009, 12:09 #8
Э... а я как-то подругому задачу понял. Там фигурируют два слова "камень" и "стена" и я как-то воспринял, что стена это нечто, стоящее снаружи по периметру лабиринта. Я так понимаю, что это не так.

Тогда смысл задачи в том, чтобы покрасить стороны камней, которые соседствуют с пустыми участками, в которые момжно попасть по пусти из входа в выход. Так чтоли?

Тогда делается так. Ищем все доступные пустые клетки и раскрашиваем стены, находящиеся по соседству

Для поиска доступных клеток смотри эту тему. Надо найти "острова" на квадратной матрице. Т.е. фактически тебе надо найти один остров, начинающийся в левом верхнем углу. По сравнению с задачей по ссылке изменения такие: 0 считается островом (а не 1), при стриании вместо нуля надо вписывать, например, 2. После этого все двойки будут соотвествовать доступным клеткам лабиринта
1
:[Slash]:
1 / 1 / 0
Регистрация: 24.06.2009
Сообщений: 5
24.06.2009, 12:17  [ТС] #9
Ооо... спасибо!!! то что надо!!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.06.2009, 12:17
Привет! Вот еще темы с ответами:

Лабиринт - C++
Помогите пожалуйста: Создать игру «Лабиринт». Игра состоит из 2 уровней (лабиринтов), отличающихся по сложности. Лабиринты появляются...

Лабиринт - C++
Вообщем у меня 2 проблемы: 1) Либирнт генерирует 2 раза 2) '8' ходит как хочит Поправте плз код #include <iostream> #include...

Двумерный лабиринт - C++
Всем здраствуйте. Пожалуйста посоветуйте что-нибудь). Так же как и автор этой темы начал учить C++. Сам по книгам, это мой первый язык...

игра лабиринт - C++
Есть код игры Смайлик движется по лабиринту с помощью нажатия клавиш, есть два смайлика врага (один движется по вертикали, второй по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
24.06.2009, 12:17
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru