Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
23 / 23 / 1
Регистрация: 06.04.2014
Сообщений: 198

Написание графического "Лабиринта"

08.12.2014, 15:19. Показов 2592. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Программирование в графическом режиме VGA . Нужно написать иргу Лбиринт с графикой . Помогите реализовать с помощью этого режима хотябы маленький лабиринт, чтобы понять хотя-бы как это выглядит.(Не нашел литературы по этой теме).
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.12.2014, 15:19
Ответы с готовыми решениями:

С чего начать написание простого графического редактора?
Здравствуйте, мне нужно написать простейший графический редактор тапа Паинт, у меня нет пока никаких определенных вопросов, просто...

Написание графического редактора
Мне нужно написать на С# простенький графический редактор (на подобии пейнта). Пытался начать действовать методом тыка, а именно открывать...

Написание графического интерфейса для управления com-port
Здравствуйте подскажите пожалуйста как лучше реализовать данную задачу. Задача такова: есть уже готовый рабочий проект написанный на...

24
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
09.12.2014, 09:56
Цитата Сообщение от mraZzzb Посмотреть сообщение
Не нашел литературы по этой теме
Про Тесея и Минотавра очень занимательно.

Цитата Сообщение от mraZzzb Посмотреть сообщение
в графическом режиме VGA
Так хотелось что-то в текстовом сделать.

Коленочный лабиринт бессмысленности (Ганслингер-стайл):
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
TForm1 *Form1;
const n(100), m(50);
int field[n][m] = {0};
TPoint currPos;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
this->DoubleBuffered = true;
 
for( int i=0; i<n; i++ )
  for( int j=0; j<m; j++ )
    {
    int val = rand() % 1000 - 300;
    field[i][j] = val != 0? val: 1; // Положительное - пол, отрицательное - стена, ноль - курсор
    }
currPos.x = n/2;
currPos.y = m/2;
field[currPos.x][currPos.y] = 0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
field[currPos.x][currPos.y] = 1;
switch( Key )
  {
  case 37 : { currPos.x>0 &&                                             /*лево*/
              field[currPos.x - 1][currPos.y] > 0? currPos.x-- : NULL; } break;
  case 38 : { currPos.y>0 &&                                             /*право*/
              field[currPos.x][currPos.y - 1] > 0? currPos.y-- : NULL; } break;
  case 39 : { currPos.x<ClientWidth &&                                   /*верх*/
              field[currPos.x + 1][currPos.y] > 0? currPos.x++ : NULL; } break;
  case 40 : { currPos.y<ClientHeight &&                                  /*низ */
              field[currPos.x][currPos.y + 1] > 0? currPos.y++ : NULL; } break;
  }
field[currPos.x][currPos.y] = 0;
 
this->Repaint();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormPaint(TObject *Sender)
{
float sizeX = ClientWidth/n,
      sizeY = ClientHeight/m;
 
for( int i=0; i<n; i++ )
  for( int j=0; j<m; j++ )
    {
    if( field[i][j] > 0 )
      Canvas->Brush->Color = clPurple;
    else if( field[i][j] < 0 )
      Canvas->Brush->Color = clGreen;
    else
      Canvas->Brush->Color = clRed;
 
    Canvas->FillRect( TRect( i*sizeX, j*sizeY, (i+1)*sizeX, (j+1)*sizeY ) );
    }
}
1
23 / 23 / 1
Регистрация: 06.04.2014
Сообщений: 198
09.12.2014, 15:38  [ТС]
SatanaXIII, Забыл учесть, нужно в консоле..
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
09.12.2014, 15:39
Хорошо. Делайте.
1
09.12.2014, 15:41

Не по теме:

SatanaXIII, Про Тесея и Минотавра очень занимательно.
Там еще третьего юнита - Ариадну - надо вводить

0
23 / 23 / 1
Регистрация: 06.04.2014
Сообщений: 198
09.12.2014, 15:46  [ТС]
SatanaXIII, Скажите пожалуйста, что вообще значит написать программу с VGA ,я просто представление не имею что это вообще..
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
09.12.2014, 15:51
Цитата Сообщение от mraZzzb Посмотреть сообщение
я просто представление не имею что это
https://ru.wikipedia.org/wiki/VGA

Цитата Сообщение от mraZzzb Посмотреть сообщение
Скажите пожалуйста, что вообще значит написать программу с VGA
Зависит от извращенного восприятия того, кто вам выдал это задание. Вплоть до написания драйверов.
Но если не вдаваться в полемику, то скорее всего имеется в виду просто работа с графикой. С любой. Не в текстовом режиме.
1
23 / 23 / 1
Регистрация: 06.04.2014
Сообщений: 198
09.12.2014, 15:59  [ТС]
Цитата Сообщение от SatanaXIII Посмотреть сообщение
Но если не вдаваться в полемику, то скорее всего имеется в виду просто работа с графикой. С любой. Не в текстовом режиме.
__________________
Надо написать игру с графикой(VGA) в консоле. Все что известно)
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
09.12.2014, 23:19
Вероятно, имеется в виду вот это:
void far initgraph(int far *driver, int far *mode, char far *path)

Прототип:
graphics.h
Описание:
Функция initgraph() используется для инициализации графической системы и загрузки подхо*дящего графического драйвера. Функция initgraph() загружает в память графический драйвер, соответствующий номеру, на который указывает параметр driver. Без графического драйвера, загруженного в память, никакие графические функции не могут выполняться. Используемый гра*фическими функциями видеорежим задается в виде числа, на которое указывает параметр mode. Наконец, путь к драйверу может быть задан в строке path. Если не задан никакой путь, то поиск осуществляется в текущем каталоге.

Графические драйверы содержатся в файлах с расширением BGI, которые должны находиться в распоряжении системы. Тем не менее...
Вот здесь < initgraph > - полное описание и внизу страницы список функций для работы с такой графикой.

Еще можно глянуть сюды - Графика в консоли
2
23 / 23 / 1
Регистрация: 06.04.2014
Сообщений: 198
10.12.2014, 19:29  [ТС]
BRcr, Спасибо большое! С этой библиотекой я пробовал делать, но проблема возникает там с подключением этой библиотеки(<graphics.h>),Выскакивает ошибка ,читал на счет этого на форумах, бесполезно. Мне сказали что и без нее можно написать.
0
23 / 23 / 1
Регистрация: 06.04.2014
Сообщений: 198
13.12.2014, 22:07  [ТС]
SatanaXIII, Как сделать так чтобы лабиринт задавался не рандомно а к примеру таким массивом:
где 1-стена, 0-путь, 3 - конец.
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
                      { {1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,},
                        {1,0,1,0,0,0,0,1,0,0,0,1,1,1,1,0,0,0,0,1,},
                        {1,0,1,0,1,1,0,1,0,1,0,0,0,0,1,0,1,1,0,1,},
                        {1,0,0,0,0,0,0,1,0,1,1,1,1,0,1,0,0,1,0,1,},
                        {1,1,1,1,1,1,0,1,0,1,1,1,1,0,1,1,0,1,0,1,},
                        {1,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,1,},
                        {1,0,1,1,0,1,1,1,0,0,0,0,1,0,1,1,1,1,0,1,},
                        {1,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,1,},
                        {1,1,1,1,1,1,0,1,1,1,0,0,0,0,1,0,1,1,1,1,},
                        {1,1,0,0,0,1,0,1,1,1,0,1,1,1,1,0,0,0,0,1,},
                        {1,0,0,1,0,0,0,0,0,1,0,0,0,0,1,1,1,1,0,1,},
                        {1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,0,0,0,0,1,},
                        {1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,1,1,},
                        {1,0,1,1,0,1,1,1,1,1,1,1,1,0,1,0,0,0,0,1,},
                        {1,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,1,1,0,1,},
                        {1,0,1,1,1,1,1,0,1,0,1,1,1,0,1,0,0,0,0,1,},
                        {1,0,1,0,0,0,1,0,1,0,0,0,1,0,1,1,1,1,1,1,},
                        {1,0,1,0,1,0,1,0,1,1,1,0,0,0,0,0,0,0,0,1,},
                        {1,0,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,0,1,},
                        {1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,},
                        {1,0,1,0,1,0,0,0,0,0,1,1,1,1,1,1,0,1,1,1,},
                        {1,0,1,0,1,1,1,1,1,0,0,0,1,0,0,0,0,0,0,1,},
                        {1,0,1,0,0,0,0,0,1,1,1,0,0,0,1,1,1,1,0,1,},
                        {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,} };
вот в этом коде:
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
[quote="SatanaXIII;6961834"]TForm1 *Form1;
const n(100), m(50);
int field[n][m] = {0};
TPoint currPos;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
* * * * : TForm(Owner)
{
this->DoubleBuffered = true;
for( int i=0; i<n; i++ )
* for( int j=0; j<m; j++ )
* * {
* * int val = rand() % 1000 - 300;
* * field[i][j] = val != 0? val: 1; // Положительное - пол, отрицательное - стена, ноль - курсор
* * }
currPos.x = n/2;
currPos.y = m/2;
field[currPos.x][currPos.y] = 0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key,
* * * TShiftState Shift)
{
field[currPos.x][currPos.y] = 1;
switch( Key )
* {
* case 37 : { currPos.x>0 && * * * * * * * * * * * * * * * * * * * * * * /*лево*/
* * * * * * * field[currPos.x - 1][currPos.y] > 0? currPos.x-- : NULL; } break;
* case 38 : { currPos.y>0 && * * * * * * * * * * * * * * * * * * * * * * /*право*/
* * * * * * * field[currPos.x][currPos.y - 1] > 0? currPos.y-- : NULL; } break;
* case 39 : { currPos.x<ClientWidth && * * * * * * * * * * * * * * * * * /*верх*/
* * * * * * * field[currPos.x + 1][currPos.y] > 0? currPos.x++ : NULL; } break;
* case 40 : { currPos.y<ClientHeight && * * * * * * * * * * * * * * * * */*низ */
* * * * * * * field[currPos.x][currPos.y + 1] > 0? currPos.y++ : NULL; } break;
* }
field[currPos.x][currPos.y] = 0;
this->Repaint();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormPaint(TObject *Sender)
{
float sizeX = ClientWidth/n,
* * * sizeY = ClientHeight/m;
for( int i=0; i<n; i++ )
* for( int j=0; j<m; j++ )
* * {
* * if( field[i][j] > 0 )
* * * Canvas->Brush->Color = clPurple;
* * else if( field[i][j] < 0 )
* * * Canvas->Brush->Color = clGreen;
* * else
* * * Canvas->Brush->Color = clRed;
Canvas->FillRect( TRect( i*sizeX, j*sizeY, (i+1)*sizeX, (j+1)*sizeY ) );
* * }
}[/quote]
1
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
15.12.2014, 09:09
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
const n(20), m(25);
int field[n][m] =     { {1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,},
                        {1,0,1,0,0,0,0,1,0,0,0,1,1,1,1,0,0,0,0,1,},
                        {1,0,1,0,1,1,0,1,0,1,0,0,0,0,1,0,1,1,0,1,},
                        {1,0,0,0,0,0,0,1,0,1,1,1,1,0,1,0,0,1,0,1,},
                        {1,1,1,1,1,1,0,1,0,1,1,1,1,0,1,1,0,1,0,1,},
                        {1,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,1,},
                        {1,0,1,1,0,1,1,1,0,0,0,0,1,0,1,1,1,1,0,1,},
                        {1,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,1,},
                        {1,1,1,1,1,1,0,1,1,1,0,0,0,0,1,0,1,1,1,1,},
                        {1,1,0,0,0,1,0,1,1,1,0,1,1,1,1,0,0,0,0,1,},
                        {1,0,0,1,0,0,0,0,0,1,0,0,0,0,1,1,1,1,0,1,},
                        {1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,0,0,0,0,1,},
                        {1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,1,1,},
                        {1,0,1,1,0,1,1,1,1,1,1,1,1,0,1,0,0,0,0,1,},
                        {1,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,1,1,0,1,},
                        {1,0,1,1,1,1,1,0,1,0,1,1,1,0,1,0,0,0,0,1,},
                        {1,0,1,0,0,0,1,0,1,0,0,0,1,0,1,1,1,1,1,1,},
                        {1,0,1,0,1,0,1,0,1,1,1,0,0,0,0,0,0,0,0,1,},
                        {1,0,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,0,1,},
                        {1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,},
                        {1,0,1,0,1,0,0,0,0,0,1,1,1,1,1,1,0,1,1,1,},
                        {1,0,1,0,1,1,1,1,1,0,0,0,1,0,0,0,0,0,0,1,},
                        {1,0,1,0,0,0,0,0,1,1,1,0,0,0,1,1,1,1,0,1,},
                        {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,} };
1
23 / 23 / 1
Регистрация: 06.04.2014
Сообщений: 198
15.12.2014, 22:14  [ТС]
Цитата Сообщение от SatanaXIII Посмотреть сообщение
int val = rand() % 1000 - 300;
* * field[i][j] = val != 0? val: 1;
Тогда в этои строки записать так?
C++
1
field[i][j]  != 0? field[i][j] : 1;
Но когда я записываю так у меня квадрат, которым управляю , становится цветом стен ..
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
16.12.2014, 08:26
Цитата Сообщение от mraZzzb Посмотреть сообщение
Тогда в этои строки записать так?
Зачем?
Массив заполнен уже.
0
23 / 23 / 1
Регистрация: 06.04.2014
Сообщений: 198
16.12.2014, 11:59  [ТС]
SatanaXIII,
Цитата Сообщение от SatanaXIII Посмотреть сообщение
int val = rand() % 1000 - 300;
* * field[i][j] = val != 0? val: 1;
В этой строке ведь задается рандомный лабиринт
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
16.12.2014, 12:05
Да.
И что?
0
23 / 23 / 1
Регистрация: 06.04.2014
Сообщений: 198
16.12.2014, 12:14  [ТС]
SatanaXIII,
Цитата Сообщение от SatanaXIII Посмотреть сообщение
const n(20), m(25);
int field[n][m] = * * { {1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ,},
* * * * * * * * * * * * {1,0,1,0,0,0,0,1,0,0,0,1,1,1,1,0,0,0,0,1 ,},
* * * * * * * * * * * * {1,0,1,0,1,1,0,1,0,1,0,0,0,0,1,0,1,1,0,1 ,},
* * * * * * * * * * * * {1,0,0,0,0,0,0,1,0,1,1,1,1,0,1,0,0,1,0,1 ,},
* * * * * * * * * * * * {1,1,1,1,1,1,0,1,0,1,1,1,1,0,1,1,0,1,0,1 ,},
* * * * * * * * * * * * {1,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,1 ,},
* * * * * * * * * * * * {1,0,1,1,0,1,1,1,0,0,0,0,1,0,1,1,1,1,0,1 ,},
* * * * * * * * * * * * {1,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,1 ,},
* * * * * * * * * * * * {1,1,1,1,1,1,0,1,1,1,0,0,0,0,1,0,1,1,1,1 ,},
* * * * * * * * * * * * {1,1,0,0,0,1,0,1,1,1,0,1,1,1,1,0,0,0,0,1 ,},
* * * * * * * * * * * * {1,0,0,1,0,0,0,0,0,1,0,0,0,0,1,1,1,1,0,1 ,},
* * * * * * * * * * * * {1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,0,0,0,0,1 ,},
* * * * * * * * * * * * {1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,1,1 ,},
* * * * * * * * * * * * {1,0,1,1,0,1,1,1,1,1,1,1,1,0,1,0,0,0,0,1 ,},
* * * * * * * * * * * * {1,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,1,1,0,1 ,},
* * * * * * * * * * * * {1,0,1,1,1,1,1,0,1,0,1,1,1,0,1,0,0,0,0,1 ,},
* * * * * * * * * * * * {1,0,1,0,0,0,1,0,1,0,0,0,1,0,1,1,1,1,1,1 ,},
* * * * * * * * * * * * {1,0,1,0,1,0,1,0,1,1,1,0,0,0,0,0,0,0,0,1 ,},
* * * * * * * * * * * * {1,0,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,0,1 ,},
* * * * * * * * * * * * {1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1 ,},
* * * * * * * * * * * * {1,0,1,0,1,0,0,0,0,0,1,1,1,1,1,1,0,1,1,1 ,},
* * * * * * * * * * * * {1,0,1,0,1,1,1,1,1,0,0,0,1,0,0,0,0,0,0,1 ,},
* * * * * * * * * * * * {1,0,1,0,0,0,0,0,1,1,1,0,0,0,1,1,1,1,0,1 ,},
* * * * * * * * * * * * {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1 ,} };
Так из этого массива можно как то сделать лабиринт?
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
16.12.2014, 12:33
mraZzzb, молодой человек, в двенадцатом посте из этого массива делается лабиринт.

Цитата Сообщение от mraZzzb Посмотреть сообщение
Тогда в этои строки записать так?
Цитата Сообщение от SatanaXIII Посмотреть сообщение
Зачем?
Массив заполнен уже.
Цитата Сообщение от mraZzzb Посмотреть сообщение
В этой строке ведь задается рандомный лабиринт
Цитата Сообщение от mraZzzb Посмотреть сообщение
Так из этого массива можно как то сделать лабиринт?
Если вы опишете полностью что вы хотите сделать, развернуто, лучше даже нарисуете картинку по этому поводу, то мы не будем с вами ходить по кругу как дебилы.
0
23 / 23 / 1
Регистрация: 06.04.2014
Сообщений: 198
16.12.2014, 12:42  [ТС]
SatanaXIII,Ладно я сделал так как вы написали:
Цитата Сообщение от SatanaXIII Посмотреть сообщение
const n(20), m(25);
int field[n][m] = * * { {1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ,},
* * * * * * * * * * * * {1,0,1,0,0,0,0,1,0,0,0,1,1,1,1,0,0,0,0,1 ,},
* * * * * * * * * * * * {1,0,1,0,1,1,0,1,0,1,0,0,0,0,1,0,1,1,0,1 ,},
* * * * * * * * * * * * {1,0,0,0,0,0,0,1,0,1,1,1,1,0,1,0,0,1,0,1 ,},
* * * * * * * * * * * * {1,1,1,1,1,1,0,1,0,1,1,1,1,0,1,1,0,1,0,1 ,},
* * * * * * * * * * * * {1,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,1 ,},
* * * * * * * * * * * * {1,0,1,1,0,1,1,1,0,0,0,0,1,0,1,1,1,1,0,1 ,},
* * * * * * * * * * * * {1,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,1 ,},
* * * * * * * * * * * * {1,1,1,1,1,1,0,1,1,1,0,0,0,0,1,0,1,1,1,1 ,},
* * * * * * * * * * * * {1,1,0,0,0,1,0,1,1,1,0,1,1,1,1,0,0,0,0,1 ,},
* * * * * * * * * * * * {1,0,0,1,0,0,0,0,0,1,0,0,0,0,1,1,1,1,0,1 ,},
* * * * * * * * * * * * {1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,0,0,0,0,1 ,},
* * * * * * * * * * * * {1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,1,1 ,},
* * * * * * * * * * * * {1,0,1,1,0,1,1,1,1,1,1,1,1,0,1,0,0,0,0,1 ,},
* * * * * * * * * * * * {1,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,1,1,0,1 ,},
* * * * * * * * * * * * {1,0,1,1,1,1,1,0,1,0,1,1,1,0,1,0,0,0,0,1 ,},
* * * * * * * * * * * * {1,0,1,0,0,0,1,0,1,0,0,0,1,0,1,1,1,1,1,1 ,},
* * * * * * * * * * * * {1,0,1,0,1,0,1,0,1,1,1,0,0,0,0,0,0,0,0,1 ,},
* * * * * * * * * * * * {1,0,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,0,1 ,},
* * * * * * * * * * * * {1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1 ,},
* * * * * * * * * * * * {1,0,1,0,1,0,0,0,0,0,1,1,1,1,1,1,0,1,1,1 ,},
* * * * * * * * * * * * {1,0,1,0,1,1,1,1,1,0,0,0,1,0,0,0,0,0,0,1 ,},
* * * * * * * * * * * * {1,0,1,0,0,0,0,0,1,1,1,0,0,0,1,1,1,1,0,1 ,},
* * * * * * * * * * * * {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1 ,} };
, выводится лабиринт с рандомно расставлеными стенами! Как сделать так тчобы стены были не рандомными а равными - 1 , а 0 - путь!из этого массива!!!:
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
const n(20), m(25);
int field[n][m] =     { {1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,},
                        {1,0,1,0,0,0,0,1,0,0,0,1,1,1,1,0,0,0,0,1,},
                        {1,0,1,0,1,1,0,1,0,1,0,0,0,0,1,0,1,1,0,1,},
                        {1,0,0,0,0,0,0,1,0,1,1,1,1,0,1,0,0,1,0,1,},
                        {1,1,1,1,1,1,0,1,0,1,1,1,1,0,1,1,0,1,0,1,},
                        {1,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,1,},
                        {1,0,1,1,0,1,1,1,0,0,0,0,1,0,1,1,1,1,0,1,},
                        {1,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,1,},
                        {1,1,1,1,1,1,0,1,1,1,0,0,0,0,1,0,1,1,1,1,},
                        {1,1,0,0,0,1,0,1,1,1,0,1,1,1,1,0,0,0,0,1,},
                        {1,0,0,1,0,0,0,0,0,1,0,0,0,0,1,1,1,1,0,1,},
                        {1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,0,0,0,0,1,},
                        {1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,1,1,},
                        {1,0,1,1,0,1,1,1,1,1,1,1,1,0,1,0,0,0,0,1,},
                        {1,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,1,1,0,1,},
                        {1,0,1,1,1,1,1,0,1,0,1,1,1,0,1,0,0,0,0,1,},
                        {1,0,1,0,0,0,1,0,1,0,0,0,1,0,1,1,1,1,1,1,},
                        {1,0,1,0,1,0,1,0,1,1,1,0,0,0,0,0,0,0,0,1,},
                        {1,0,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,0,1,},
                        {1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,},
                        {1,0,1,0,1,0,0,0,0,0,1,1,1,1,1,1,0,1,1,1,},
                        {1,0,1,0,1,1,1,1,1,0,0,0,1,0,0,0,0,0,0,1,},
                        {1,0,1,0,0,0,0,0,1,1,1,0,0,0,1,1,1,1,0,1,},
                        {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,} };
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
16.12.2014, 12:58
Цитата Сообщение от mraZzzb Посмотреть сообщение
я сделал так как вы написали:
Цитата Сообщение от mraZzzb Посмотреть сообщение
, выводится лабиринт с рандомно расставлеными стенами!
Стены выводятся так, как указано в массиве.
Как вы сам массив заполняли это я уже не знаю.

Еще раз. Массив можно заполнить либо случайными числами, обходя в цикле каждый элемент и присваивая ему какое-то случайное значение:
C++
1
2
3
4
5
6
for( int i=0; i<n; i++ )
  for( int j=0; j<m; j++ )
    {
    int val = rand() % 1000 - 300;
    field[i][j] = val != 0? val: 1; // Положительное - пол, отрицательное - стена, ноль - курсор
    }
либо же изначально известным массивом, в котором визуально можно поглядеть как оно что будет:
C++
1
2
3
4
const n(20), m(25);
int field[n][m] =     { {1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,},
                        {1,0,1,0,0,0,0,1,0,0,0,1,1,1,1,0,0,0,0,1,},
...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.12.2014, 12:58
Помогаю со студенческими работами здесь

Написание графического интерфейса для управления com-port
Здравствуйте подскажите пожалуйста как лучше реализовать данную задачу. Задача такова: есть уже готовый рабочий проект написанный на...

Составить программу инициализации графического режима, предварительно выполнив тестирование графического адаптера
Здравствуйте! Вот, попалась не простая(по моему субъективному мнению) задача, которую я совершенно не понимаю как решить. Звучит она...

Посоветуйте литературу по написание основам написание плагинов
пишу курсовую на тему, основы написание плагинов. Посоветуйте литературу.

Генерация лабиринта
На вход даны два числа - А и В (числа А и В обязательно нечётные, не меньше 5). Программа генерирует лабиринт шириной A символов и...

Выход из лабиринта
Дан лабиринт M: array of boolean; (true - стена false - свободно) Начало в верхнем левом угле Конец в нижнем правом угле ...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки на предмет заполнения реквизитов реализован с целью установки значения по умолчанию,. . .
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". На примере нетипового документа разработанного в конфигурации КА2. В качестве источника данных указан регистр накопления, в который записываются данные о. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru