Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 23.05.2016
Сообщений: 22
1

Реализация вектора ссылок

12.11.2016, 21:50. Показов 1719. Ответов 9

Author24 — интернет-сервис помощи студентам
Доброго времени суток, дорогие форумчане! Проблема в следующем: мне дано было задание сделать игру Го(кто не знает это что-то вроде китайских шахмат-шашек) в консоли с возможностью играть с компьютером(задача не из легких как по мне)! Я не хочу заводить Вас в тупик своими безумными идеями, а поделюсь лишь их частью... Словом у меня есть класс element, который представляет собой набор данных где есть 4 ссылки на соседние элементы(right, left, top, down), значение(value), координаты на доске 19х19(x, y), дыхания(breathes - соседние места где ничего не стоит). Так вот сейчас я хочу создать класс group, означающий группу фишек 1 - го цвета. Этот класс мне нужен для того, чтобы в игре я мог рассматривать не только каждую фишку по-одной, но и группами! У каждой такой группы должен быть вектор со ссылками на каждую фишку текущего цвета, вектор со свободными дыханиями(напоминаю - соседними местами где на данном этапе игры ничего не стоит), причем дыханиями всех фишек в этой группе исключая те, которые заняты своими фишками(надеюсь не запутал))))! И вот наконец мы подошли к самому вопросу: как мне реализовать добавление ссылок в "вектор дыханий"(FreeBreathes)?
Эта загвоздка находится в switch-е ниже!
class group
{
public:
unint ID;
vector<element>Graph;
vector<element>*FreeBreathes;
void addForGraph(element iElement)
{
unint i = 0;
Graph.push_back(iElement);
for (i = 0; i < 4; i++)
{
if (iElement.value = ' ') {
switch (i)
{
case 1: *FreeBreathes.push_back(iElement.right);
case 2: *FreeBreathes.push_back(iElement.top);
case 3: *FreeBreathes.push_back(iElement.left);
case 4: *FreeBreathes.push_back(iElement.down);
}
}
}
}
group()
{
ID = counterGraphs;
counterGraphs++;
}
};

Если есть непонятности жду вопросов! Но хотелось бы узнать по-скорее хоть какое-то мнение)))
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.11.2016, 21:50
Ответы с готовыми решениями:

Реализация программы с использованием ссылок и указателей
Добрые люди! Подскажите, есть ли тут использованные ссылки и указатели? Препод не принимает...

Реализация интеллектуального указателя подсчета ссылок
Добрый день ! Подскажите пожалуйста, правильно ли я реализовал интеллектуальный указатель подсчета...

Реализация вектора
Всем доброго времени суток. Я сегодня уже обращался за помощью к форумчанам, но костыли не...

Реализация вектора
Добрый день. Нужно мне реализовать функции самому push_back та pop_back. Моя реализация...

9
7793 / 6560 / 2984
Регистрация: 14.04.2014
Сообщений: 28,672
12.11.2016, 21:54 2
Указатели используй.
0
Любитель чаепитий
3742 / 1798 / 566
Регистрация: 24.08.2014
Сообщений: 6,016
Записей в блоге: 1
12.11.2016, 22:22 3
C++
1
std::vector<std::reference_wrapper<int>> vec;
1
Комп_Оратор)
Эксперт по математике/физике
8950 / 4704 / 629
Регистрация: 04.12.2011
Сообщений: 13,999
Записей в блоге: 16
12.11.2016, 22:24 4
metrovlad2033, вот это вот не вектор:
Цитата Сообщение от metrovlad2033 Посмотреть сообщение
C++
1
vector<element>*FreeBreathes;
это указатель на вектор. Вы уверены, что именно это Вам нужно? Если да, - расскажите.
А чтобы понять фразу:
Цитата Сообщение от metrovlad2033 Посмотреть сообщение
как мне реализовать добавление ссылок в "вектор дыханий"(FreeBreathes)?
Эта загвоздка находится в switch-е ниже!
Нужно:
1.Увидеть определение класса iElement. Особенно того места где определяются rght, left и т.п.
2.Понять что означает слово "загвоздка". То есть, что пишет компилятор, если пишет...
И ещё. Попробуйте в следующий раз выделить код и тиснуть на кнопочку C++. Она в левом верхнем углу редактора сообщений.
1
Любитель чаепитий
3742 / 1798 / 566
Регистрация: 24.08.2014
Сообщений: 6,016
Записей в блоге: 1
12.11.2016, 22:24 5
del
0
0 / 0 / 0
Регистрация: 23.05.2016
Сообщений: 22
13.11.2016, 00:13  [ТС] 6
Вот определение класса element:
C++
1
2
3
4
5
6
7
8
9
10
11
12
class element
{
public:
    unint number;
    char value;
    element *top;
    element *left;
    element *right;
    element *down;
    unint x, y, breathes;
        ............................
};
Миниатюры
Реализация вектора ссылок  
0
0 / 0 / 0
Регистрация: 23.05.2016
Сообщений: 22
13.11.2016, 00:15  [ТС] 7
Да и скорее всего я не правильно выразился: мне нужен вектор УКАЗАТЕЛЕЙ! Прошу прощения за неточность(((
0
805 / 532 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
13.11.2016, 00:19 8
Лучший ответ Сообщение было отмечено metrovlad2033 как решение

Решение

metrovlad2033, тему целиком не читал (лень вникать, да и букв многа), поэтому что первое вижу, на то и отвечаю
Цитата Сообщение от metrovlad2033 Посмотреть сообщение
мне нужен вектор УКАЗАТЕЛЕЙ
это делается примерно так
C++
1
vector<int*> vec;
1
Комп_Оратор)
Эксперт по математике/физике
8950 / 4704 / 629
Регистрация: 04.12.2011
Сообщений: 13,999
Записей в блоге: 16
13.11.2016, 00:37 9
Лучший ответ Сообщение было отмечено metrovlad2033 как решение

Решение

Цитата Сообщение от metrovlad2033 Посмотреть сообщение
Да и скорее всего я не правильно выразился: мне нужен вектор УКАЗАТЕЛЕЙ! Прошу прощения за неточность
тогда не объявляйте указатель на вектор. Объявляйте вектор указателей:
C++
1
2
3
4
5
6
class group
{
public:
unint ID;
vector<element>Graph;
vector<element* > FreeBreathes;
И помните о том что указатели должны быть инициализированы.
1
0 / 0 / 0
Регистрация: 23.05.2016
Сообщений: 22
13.11.2016, 19:47  [ТС] 10
СПАСИБО ВАМ ВСЕМ, ДАЙ БОГ ВАМ ЗДОРОВЬЯ))) ВСЕ ЗАРАБОТАЛО ТОЛЬКО БЛАГОДАРЯ ВАМ!
0
13.11.2016, 19:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.11.2016, 19:47
Помогаю со студенческими работами здесь

Реализация вектора
Здравствуйте друзья! Зашел в тупик после того как попытался реализовать структуру данных типа...

Реализация вектора из структуры
struct ad { string obraz; vector&lt;int&gt; result; }; ad a; void inputFile()

Реализация собственного класса вектора
Создать абстрактный тип данных - класс вектор, который имеет указатель на float, число элементов и...

Реализация двусвязного списка на базе вектора
Дано задание реализовать двусвязный список на базе вектора. Насколько я понял, сам вектор...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru