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

Исправить поиск выхода из лабиринта - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ память затраченная на работу алгоритма http://www.cyberforum.ru/cpp-beginners/thread579651.html
Здравствуите, подскажите пожалуйста код, с помощью которого в Windows можно узнать, сколько оперативной памяти затрачено на выполнение программы, в моем случае алгоритма. #include <iostream>...
C++ Заполнить массив убывающими элементами Например: 67 56 43 32 5 3 #include <iostream> #include <ctime> using namespace std; int main () { setlocale (LC_CTYPE, "Russian"); srand(time(NULL)); http://www.cyberforum.ru/cpp-beginners/thread579642.html
Создать абстрактный базовый класс Figure C++
Здравствуйте,помогите пожалуйста с задачей. Создать абстрактный базовый класс Figure с виртуальной функцией - площадь поверхности. Создать производные классы параллелепипед, тетраэдр, шар в которых...
C++ Подсчитать вероятности длин слов, встречающихся в текстовом файле
Подсчитать вероятности длин слов, встречающихся в текстовом файле. Решите пожалуйста.. Добавлено через 17 часов 17 минут Никто не поможет ? =(
C++ Stack around the variable 'str' was corrupted http://www.cyberforum.ru/cpp-beginners/thread579626.html
#include <stdio.h> #include <math.h> #include <conio.h> #include <string.h> #include <stdlib.h> typedef char stringtype ; int znach = 0; int m=6;
C++ Выдаёт не правильную сумму чисел правее столбца с макс элементом Сумма правее макс числа right_sum() //matriza.h #pragma once class matriza { float *b,max,s; int n,m,nom,nom1; public: matriza(); подробнее

Показать сообщение отдельно
AncinetHero
49 / 49 / 3
Регистрация: 22.05.2011
Сообщений: 326
20.05.2012, 09:52
Во-первых, посоветовал бы для поиска пути использовать тип контейнера queue ( подключается #include <queue> ).
Работать с ней легко. Тут можно посмотреть все функции, а их немного:
front()
back()
push_back()
pop_front()

Пример работы с очередью: берете первую -> все соседние в очередь -> удаляете.

А в чем с алгоритмом проблема? Заводите переменную направления, пусть какая-то direction ( я об этом принципе "одной руки" )
И потом, если, например всегда нужно поворачивать направо по возможности:
C++
1
2
3
4
5
6
7
8
9
10
11
if( direction == right )
{
  if( rightpoint == free )
    nextpoint = rightpoint ;
  else if( downpoint == free )
    nextpoint = downpoint ;
  else if( leftpoint== free )
    nextpoint = leftpoint ;
  else
    nextpoint = uppoint ;
}
Еще заводите массив посещений. Если оказались в ранее посещеной клетке - пути нет .
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru