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

предлагаю людям класс "рекурсивный обход матрицы" для решения задач на такую тематику - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ [Матрица] Круг или квадрат? http://www.cyberforum.ru/cpp-beginners/thread337379.html
Доброго времени суток. Условие тут. Просьба подсказать алгоритм или выложить код с кратким описанием идеи решения. Сам довольно много думал, но ничего дельного не надумал... А задача должна быть несложной.
C++ Visual C++ & Hello world Вот поставил Visual C++ 2005 Пишу: #include "stdafx.h" #include <iostream.h> int _tmain(int argc, _TCHAR* argv) { http://www.cyberforum.ru/cpp-beginners/thread337362.html
Быстрый перевод байта в вектор битов C++
Всем привет. Есть тут интересная задачка: перевести байт в вектор битов, да побыстрее. Я реализовал это дело через таблицу. Кто знает способ лучше ? public: void static CharToBits (const boost::uint8_t & InputByte, std::vector <boost::uint8_t> & OutputVector) { /*Converts input unsigned char to 8 bits.Result is in vector vect1 * MSB is OutputVector * LSB is...
Почему тормозит играаа??? C++
Добрый день - решил недавно создать игрушку (третяя на моем счету)... но на этот раз игра не пошаговая - эдакое подобие бомбермена с инвентарем... Можете пожалуйста подсказать по какой причине игра может тормозить ? (Возможно проблема в алгоритме - основная часть которого в мейн функции(это цикл)- пожалуйста обратите внимание) Администрацию сайта просьба не переносить даное сообщение в...
C++ простые функции http://www.cyberforum.ru/cpp-beginners/thread337334.html
Всем приветик!!! Есть код: #include<iostream.h> #include<conio.h> #include<string.h> enum Shape{prizm,parallelepiped,cube,pyramid,cone,cylinder}; class Body {
C++ Построить эйлерову цепь в графе. Всем доброго времени суток! Помогите пожалуйста или подскажите как сделать следующее. Дали задание по дискретной математике построить эйлерову цепь в графе (нужно реализовать все программе, но вот не знаю с чего начать). Задание следующее: Построить эйлерову цепь в графе. Изменить алгоритм построения эйлерова цикла так, чтобы можно было использовать его для построения эйлеровой цепи в графе.... подробнее

Показать сообщение отдельно
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
30.07.2011, 19:06     предлагаю людям класс "рекурсивный обход матрицы" для решения задач на такую тематику
Всё, мне надоела таинственность и я написал альтернативу этому классу.
Распространяется без лицензии, код принадлежит всему программирующему сообществу.
Поиск происходит из любой точки во всех направлениях.
Пользователю достаточно задать предикат принадлежности точки пути, предикат определения конечной точки (т.е. завершения поиска) и функцию изменения точки в матрице.
А потом функция Process будет крутиться-вертеться и САМА всё за вас сделает!
Воть.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
//предикат принадлежности точки пути
typedef bool (*TestPosition)( const int ** matix, int x, int, y );
// Предикат определения конечной точки
typedef bool (*LastPoint)( const int ** matix, int x, int, y  );
// Изменение точки пути
typedef void (*CorrectPoint)( const int ** matix, int x, int, y );
 
int global_X = 0;
int global_Y = 0;
 
void Process( int ** matrix, TestPosition cbTest, LastPoint cbLast, CorectPoint cbCorrect, int x, int y )
{
      if( global_X <= x || global_Y <= y )
          return;
 
      if( cbLast(matrix, x,y) )
          return;
 
     int dx[4] = {-1,0,0,1};
     int dy[4] = {0,-1,1,0};
     for( int i = 0; i < 4; ++i )
     {
              if( cbTestPoint(matrix, x+dx[i], y+dy[i]) )
              {
                    cbCorrect( matrix, x+dx[i], y_dy[i] );
                    Process(matrix, cbTest, cbLast, cbCorrect, x+dx[i], y+dy[i] );
              }
     }
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru