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

Алгоритм поиска пути и прорисовка его - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Undeclared identifier (cout, endl, cin) http://www.cyberforum.ru/cpp-beginners/thread1567849.html
#include "iostream" #include "stdafx.h" #include "cmath" #include "cstdio" using namespace std; int main(void) { int v; cout <<"Vvedite vozrast: "<<endl;
C++ Графы.Список смежности. Поиск в глубину Разработать программу, которая читает числа N, M - кол-во вершин и рёбер графа. Программа сохраняет граф в виде списка смежности и выполняет поиск в глубину. На экран нужно вывести вершины в порядке обхода, для каждой указать время начала и конца рассмотрения и указать предка в дереве обхода http://www.cyberforum.ru/cpp-beginners/thread1567825.html
Получить в файле Q все компоненты файла F, отвечающие условию C++
Также нужна помощь в решении этой задачи.Снимаю шляпу перед теми,кто поможет в этом. Дано файл F , компоненты которого являются целыми числами. Получить в файле Q все компоненты файла F , что: а) являются четными числами; б) делятся на 3 и не делятся на 7; в) являются точными квадратами.
Задано две квадратные матрицы. Найти последовательность из нолей и единиц b1, b2, …, bn C++
Задано две квадратные матрицы целых чисел порядка n. Найти последовательность из нолей и единиц b1, b2, …, bn такую, что bі =1, коли количество отрицательных и неотрицательных элементов і-й строки первой матрицы совпадает соответственно количеству отрицательных и неотрицательных элементов і-й строки второй матрицы. У меня уже есть наработки. # include <stdio.h> main() { int a, c, b, n, i,...
C++ Одномерный лабиринт http://www.cyberforum.ru/cpp-beginners/thread1567739.html
Очень нужна помощь с написанием программы! Заранее большое спасибо, кто поможет написать код для этой задачи :) Очень выручите В одномерном государстве жили одномерные люди. И всё остальное в этом государстве было тоже одномерное. Всё в их одномерном мире было просто и понятно: всего одна ось координат и всего два направления движения — вперёд и назад. Но даже в одномерном мире есть...
C++ Доработать код: изменение регистра символов, считанных из файла Добрый вечер уважаемые мастера! Вот решаю одну задаю ,уже написал такой код #include <iostream> #include <fstream> #include <ctype.h> подробнее

Показать сообщение отдельно
lenarano
1 / 1 / 0
Регистрация: 12.04.2014
Сообщений: 77
01.11.2015, 14:07  [ТС]     Алгоритм поиска пути и прорисовка его
У меня изначально было все сделано структурно в Main
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
30
#include <SFML\Graphics.hpp>
const int HEIGHT_MAP=25;
const int WIDTH_MAP=28;
 sf::String TileMap[HEIGHT_MAP]={
    "0000000000000000000000000000",
    "0                          0",
    "0                          0",
    "0  0 s0   0      0   0s 0  0",
    "0  0000   0mmmmmm0   0000  0",
    "0  0  0   00000000   0  0  0",
    "0                          0",
    "0                          0",
    "0  0mm0   00000000   0mm0  0",
    "0  0000              0000  0",
    "0  0mm0              0mm0  0",
    "t         00000000         T",
    "t                          T",
    "t                          T",
    "0  0mm0   00000000   0mm0  0",
    "0  0000              0000  0",
    "0  0mm0              0mm0  0",
    "0         00000000         0",
    "0                          0",
    "0  0  0              0  0  0",
    "0  0000   00000000   0000  0",
    "0  0 s0              0s 0  0",
    "0                          0",
    "0                          0",
    "0000000000000000000000000000",
};
Потом начала разносить все по классам и понеслось((( С ООП мне сложно... Начала переносить, ребята посоветовали так... Я , если честно, особо не поняла -просто сделала, что бы работало. Если поможете, то буду рада.

Добавлено через 43 минуты
Я по совету nmcf попробовала levelsMap сделать поле, но возникли ошибки. Помогите их исправить.
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
#ifndef MAP_H
#define MAP_H
#include <SFML\Graphics.hpp>
class Map{
private:
int m_level;
 
public: 
   enum { HEIGHT_MAP=25, WIDTH_MAP=28 };
   sf::String TileMap[HEIGHT_MAP];
 static const char* levelsMap[][HEIGHT_MAP];
 Map();
 
 int getLevel();
 
 void setLevel(int level);
 
 
};
 
#include "map.h"
 
#include <iostream>
 
 
    static const char* levelsMap[][Map::HEIGHT_MAP] = {
        { 
                "0000000000000000000000000000",/* Инициализация 0-го уровня */
                "0   S                      0",
                "0                          0",
                "0  0 s0   0      0   0s 0 G0",
                "0  0000   0mmmmmm0   0000  0",
                "0  0mm0   00000000   0mm0  0",
                "0                          0",
                "0                          0",
                "0  0mm0   000  000   0mm0  0",
                "0  0000   0      0   0000  0",
                "0  0mm0   0      0   0mm0  0",
                "t         000  000         T",
                "t                          T",
                "t                          T",
                "0  0mm0   00000000   0mm0  0",
                "0  0000              0000  0",
                "0  0mm0              0mm0  0",
                "0         00000000         0",
                "0                          0",
                "0  0mm0              0mm0  0",
                "0  0000   00000000   0000  0",
                "0  0 s0              0s 0  0",
                "0                          0",
                "0                          0",
                "0000000000000000000000000000", },
            {"0000000000000000000000000000", /* Инициализация 1-го уровня */ 
            "0                          0",
            "0                          0",
            "0  0                    0  0",
            "0  0000              0000  0",
            "0  0      000  000      0  0",
            "0         0      0         0",
            "0         0      0         0",
            "0  0mm    000  000    mm0  0",
            "0  0000              0000  0",
            "0  0                    0  0",
            "t         00000000         T",
            "t           m00m           T",
            "t           m00m           T",
            "0  0      00000000      0  0",
            "0  0000              0000  0",
            "0  0                    0  0",
            "0                          0",
            "0      0000      0000      0",
            "0  0      0s    s0      0  0",
            "0  0  0   00000000   0  0  0",
            "0  0  0   0mmmmmm0   0  0  0",
            "0                          0",
            "0                          0",
            "0000000000000000000000000000", },
            { /* Инициализация 2-го уровня */ },
    };
 
Map::Map()
{
    setLevel(0);
}
 
int Map:: getLevel() { return m_level; }
 
void Map:: setLevel(int level)
{
    int levelsCount = sizeof(levelsMap) / sizeof(levelsMap[0]);//sizeof(levelsMap)-недопусимый неполный путь
    if (level < 0 || level >= levelsCount)
        level = 0;
    m_level = level;
    for(int i=0; i < HEIGHT_MAP; i++)
    {TileMap[i] = levelsMap[level][i];
    std::cout<<levelsMap[level][i];
    printf("\n");
    }
}
 
 
void display_maze( int level)
{
    int i;
    printf("MAZE:\n");
    for(int i=0; i < Map::HEIGHT_MAP; i++)
    {TileMap[i] = levelsMap[level][i];//TileMap[i] не определен
    std::cout<<levelsMap[level][i];
    printf("\n");
    }
 
    return;
}
Я закоментила, где ругается компилятор

Добавлено через 6 минут
передала по ссылке и на эту строчку уже не ругается. Правильно?
C++
1
int levelsCount = sizeof(&levelsMap) / sizeof(levelsMap[0]);
Добавлено через 4 минуты
все-таки не так
int levelsCount = sizeof(&levelsMap) / sizeof(levelsMap[0]);

Я закоментила свою функцию прорисовки и попробовала запустить -все равно ошибка

Добавлено через 7 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
void display_maze( int level)
{
    int i;
    printf("MAZE:\n");
    for(int i=0; i < Map::HEIGHT_MAP; i++)
    {TileMap[i] = levelsMap[level][i];//почему они не определены??
    std::cout<<levelsMap[level][i];
    printf("\n");
    }
 
    return;
}
Добавлено через 33 минуты
Нашла ошибки о которых стыдно говорить. На данный момент нужна помощь в том, что я не могу вывести levelsMap в поле класса, возникают ошибки. Если кто то покажет, как это будет-буду рада, может опять что-то упускаю. Если оставить как есть, то тогда естественно моя функция прорисовки void Map::display_maze( int level) его не видит. Подскажите пути исправления
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#ifndef MAP_H
#define MAP_H
#include <SFML\Graphics.hpp>
class Map{
private:
int m_level;
 
public: 
   enum { HEIGHT_MAP=25, WIDTH_MAP=28 };
   sf::String TileMap[HEIGHT_MAP];
 
 Map();
 
 int getLevel();
 
 void setLevel(int level);
 
 void display_maze( int level);
};
 
 
 
#include "map.h"
 
#include <iostream>
 
 
 
Map::Map()
{
    setLevel(0);
    
}
 
int Map:: getLevel() { return m_level; }
 
void Map:: setLevel(int level)
{
    static const char* levelsMap[][HEIGHT_MAP] = {
        { 
                "0000000000000000000000000000",/* Инициализация 0-го уровня */
                "0   S                      0",
                "0                          0",
                "0  0 s0   0      0   0s 0 G0",
                "0  0000   0mmmmmm0   0000  0",
                "0  0mm0   00000000   0mm0  0",
                "0                          0",
                "0                          0",
                "0  0mm0   000  000   0mm0  0",
                "0  0000   0      0   0000  0",
                "0  0mm0   0      0   0mm0  0",
                "t         000  000         T",
                "t                          T",
                "t                          T",
                "0  0mm0   00000000   0mm0  0",
                "0  0000              0000  0",
                "0  0mm0              0mm0  0",
                "0         00000000         0",
                "0                          0",
                "0  0mm0              0mm0  0",
                "0  0000   00000000   0000  0",
                "0  0 s0              0s 0  0",
                "0                          0",
                "0                          0",
                "0000000000000000000000000000", },
            {"0000000000000000000000000000", /* Инициализация 1-го уровня */ 
            "0                          0",
            "0                          0",
            "0  0                    0  0",
            "0  0000              0000  0",
            "0  0      000  000      0  0",
            "0         0      0         0",
            "0         0      0         0",
            "0  0mm    000  000    mm0  0",
            "0  0000              0000  0",
            "0  0                    0  0",
            "t         00000000         T",
            "t           m00m           T",
            "t           m00m           T",
            "0  0      00000000      0  0",
            "0  0000              0000  0",
            "0  0                    0  0",
            "0                          0",
            "0      0000      0000      0",
            "0  0      0s    s0      0  0",
            "0  0  0   00000000   0  0  0",
            "0  0  0   0mmmmmm0   0  0  0",
            "0                          0",
            "0                          0",
            "0000000000000000000000000000", },
            { /* Инициализация 2-го уровня */ },
    };
    int levelsCount = sizeof(levelsMap) / sizeof(levelsMap[0]);
    if (level < 0 || level >= levelsCount)
        level = 0;
    m_level = level;
    for(int i=0; i < HEIGHT_MAP; i++)
    {TileMap[i] = levelsMap[level][i];
    std::cout<<levelsMap[level][i];
    printf("\n");
    }
}
 
 
void Map::display_maze( int level)
{
    int i;
    printf("MAZE:\n");
    for(int i=0; i < Map::HEIGHT_MAP; i++)
    {TileMap[i] = levelsMap[level][i];
    std::cout<<levelsMap[level][i];
    printf("\n");
    }
 
    return;
}
Добавлено через 2 часа 5 минут
 
Текущее время: 07:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru