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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.80
polindroma
0 / 0 / 0
Регистрация: 06.12.2011
Сообщений: 18
#1

не работает графика(не могу подключить) - C++

15.01.2012, 14:00. Просмотров 1925. Ответов 14
Метки нет (Все метки)

у меня есть программа
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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
#include <dos.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <graphics.h>
 
#define color_close 14
#define color_st_end 12
 
 
typedef struct point
{int x;
 int y;
} Point;
 
 
void main ()
{Point start, end;      
 Point point_closed[100];   
 Point lines[5000]={0,0};   
 int count_closed;      
 int level;         
 int iteration=0;       
 int pole[45][45]={0};         
 int i,j, status;       
 int gdriver, gmode, errorcode; 
 int orient=1;          
 int x, y;          
 char buf[256];
 char bbb[256]={219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219};
 FILE *f;
 
 
 gdriver = DETECT;
 gmode = IBM8514LO;
 
 
 clrscr ();
 
 
 printf ("razmernost: 2\n");
 
 
 printf ("Coordinate of start point (X Y): ");
 scanf ("%d%d", &start.x, &start.y);
 
 
 printf ("Coordinate of end point (X Y): ");
 scanf ("%d%d", &end.x, &end.y);
 
 
 printf ("Count of closed point: ");
 scanf ("%d", &count_closed);
 
 
 for (i=0; i<count_closed; i++)
    {printf ("Coordinate of close point %2.0d (X Y): ", i+1);
     scanf ("%d%d", &point_closed[i].x, &point_closed[i].y);
    }
 
 
 initgraph(&gdriver, &gmode,"");
 errorcode = graphresult();
 
 
 f = fopen("file_out.txt", "w");
 
 
 for (i=0; i<count_closed; i++)
    {pole[point_closed[i].x-1][point_closed[i].y-1] = 2;}
 pole[start.x-1][start.y-1] = 3;
 pole[end.x-1][end.y-1] = 4;
 
 
 setcolor(15);
 for (i=0; i<=45; i++)
    {moveto(175,15+i*10);
     lineto(625,15+i*10);
     moveto(175+i*10,15);
     lineto(175+i*10,465);
    }
 
 
 for (i=0; i<45; i++)
    {for (j=0; j<45; j++)
    {if (pole[i][j] == 2)
        {setcolor(4);}
     if (pole[i][j] == 3)
        {setcolor(12);}
     if (pole[i][j] == 4)
        {setcolor(8);}
     if (pole[i][j] != 0)
        {circle(180+i*10,460-j*10,0);
         circle(180+i*10,460-j*10,1);
         circle(180+i*10,460-j*10,2);
         circle(180+i*10,460-j*10,3);
         circle(180+i*10,460-j*10,4);
        }
    }
    }
 
 
 level = 0;
 x = start.x-1;
 y = start.y-1;
 
 
 sleep(2);
 setcolor(15);
 while (1)
    {
     
    
     if (status != 2)
    {status = 0;
         orient = random(1000) % 2;
    }
 
     
     if (orient == 0 && ((pole[x+1][y] == 0 && x < 44) || (pole[x-1][y] == 0 && x > 0)))
    {/* ЇҐаҐ¤ўЁЈ*Ґ¬бп */
     if (pole[x+1][y] == 0 && x < 44)
        {x++;} 
     else
        {x--;}
 
     lines[level].x = x;
     lines[level].y = y;
     level++;
     pole[x][y] = 1;
     status = 1;
    }
 
     
     if (orient == 1 && ((pole[x][y+1] == 0 && y<44) || (pole[x][y-1] == 0 && y > 0)))
    {if (pole[x][y+1] == 0 && y < 44)
        {y++;} 
     else
        {y--;} 
 
        
    
     lines[level].x = x;
     lines[level].y = y;
     level++;
     pole[x][y] = 1;
     status = 1;
    }
     
     if (status == 0)
    {status = 2;
     orient = (orient+1)%2;
    }
     else
    
    {if (status == 2)
        {status = 0;
         while(((pole[lines[level-1].x+1][lines[level-1].y] != 0 &&
             pole[lines[level-1].x-1][lines[level-1].y] != 0 &&
             pole[lines[level-1].x][lines[level-1].y+1] != 0 &&
             pole[lines[level-1].x][lines[level-1].y-1] != 0 &&
             lines[level-1].x > 0 && lines[level-1].x < 44 &&
             lines[level-1].y > 0 && lines[level-1].y < 44) ||
           ((pole[lines[level-1].x+1][lines[level-1].y] != 0 && lines[level-1].x ==  0) ||
            (pole[lines[level-1].x-1][lines[level-1].y] != 0 && lines[level-1].x == 44) ||
            (pole[lines[level-1].x][lines[level-1].y+1] != 0 && lines[level-1].y ==  0) ||
            (pole[lines[level-1].x][lines[level-1].y-1] != 0 && lines[level-1].y == 44))) &&
            level > 0)
        level--;
         
         x = lines[level-1].x;
         y = lines[level-1].y;
 
         
         if (level == 0)
        {closegraph();
         printf ("error. point not found.");
         exit(0);
        }
        }
    }
 
    
     iteration++;
 
     
     setcolor (0);
     sprintf (buf,"Level: %d", level);
     moveto (10,10); outtext (bbb);
     setcolor (2);
     moveto (10,10); outtext (buf);
 
     
     setcolor (0);
     sprintf (buf,"All count: %d", iteration);
     moveto (10,20); outtext (bbb);
     setcolor (2);
     moveto (10,20); outtext (buf);
 
    
     setcolor (15);
     circle(180+x*10,460-y*10,0);
     circle(180+x*10,460-y*10,1);
     circle(180+x*10,460-y*10,2);
     delay(5000);
 
     
     if ((pole[lines[level-1].x+1][lines[level-1].y] == 4 && x <44) ||
     (pole[lines[level-1].x-1][lines[level-1].y] == 4 && x > 0) ||
     (pole[lines[level-1].x][lines[level-1].y+1] == 4 && y <44) ||
     (pole[lines[level-1].x][lines[level-1].y-1] == 4 && y > 0))
    {
     setcolor (2);
     sprintf (buf,"Point found!!!");
     moveto (10,30); outtext (buf);
 
     
        **
     sleep(1);
     sprintf (buf,"Start line!");
     moveto (10,40); outtext (buf);
 
     
     fprintf (f,"%d:%d - start point\n", start.x, start.y);
 
     
     setcolor (3);
 
     
     for (i=0; i<level; i++)
        {
         circle(180+lines[i].x*10,460-lines[i].y*10,0);
         circle(180+lines[i].x*10,460-lines[i].y*10,1);
         circle(180+lines[i].x*10,460-lines[i].y*10,2);
         delay (10000);
 
        
         fprintf(f,"%d:%d\n", lines[i].x, lines[i].y);
        }
 
    
     fprintf (f,"%d:%d - end point", end.x, end.y);
 
     
     setcolor (6);
     sprintf (buf,"Press any key to end...");
     moveto (10,50); outtext (buf);
 
    
     getch ();
 
 
     closegraph();
     printf ("done. point found. programm closed.");
     exit(0);
В Borland C++ Release 5.02 сомпилятор мне написал,что BGI графика под виндоуз не поддрерживается.А линковщик Borland C++ & Application Frameworks 3.1 ругается на все функции графического режима.Я уже и файл EGAVGA.BGI положила в одну папку с СРР-все равно.Подскажите,пожалуйста,что сделать нужно.Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.01.2012, 14:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос не работает графика(не могу подключить) (C++):

Консольная графика. Как подключить <msoftcon>? - C++
В Лафоре есть задание по консольной графике. Я начал недавно, не пинайте сильно. Как подключить &lt;msoftcon&gt;?

Не могу подключить библиотеку - C++
Пытаюсь запустить простую программу с выводом &quot;Hello World&quot;, но у меня не находит функцию cout #include &lt;iostream&gt; void main() { ...

Не могу подключить библеотеку - C++
Файл .dll добавил в папку c .еxe ,в linkere указал имя файла .lib,указал директорию бвсе равно выыдает сообщение email_message error...

Не могу подключить gmp к VS - C++
Не могу подключить gmp к Visual Studio 2013 Express. Пробовал на 2008 тоже не получается. Прочитал кучу мануалов, собрал файлы gmp.h,...

Не могу подключить библиотеку SFML - C++
Здравствуйте форумчане,проблема такая,хочу подключить библиотеку SFML сделал все как в уроках, подключил все dll файлы но выдает ошибку

Не могу подключить свой хэдер - C++
Пытаюсь присоединить свой хэдер.(SFML, Code::Blocks) #include &lt;SFML/Graphics.hpp&gt; void death (RenderWindow&amp; window) { Texture...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
easybudda
Модератор
Эксперт CЭксперт С++
9530 / 5523 / 932
Регистрация: 25.07.2009
Сообщений: 10,602
15.01.2012, 14:29 #2
Цитата Сообщение от polindroma Посмотреть сообщение
В Borland C++ Release 5.02 сомпилятор мне написал,что BGI графика под виндоуз не поддрерживается.
Но Вас это, видимо, не убедило? Кстати, он даже в Borland C++ Release 5.02 компиляторм называется...
Если так необходимо имеено этот анахронизм запустить, я бы ему и среду соответствующую создать постарался. Найдите и скачайте бесплатную программу DosBox (имитатор DOS), найдите где-нибудь Borland C++ 3.x, скопируйте её в ту папку, которую DosBox диском С: считает, и вот из-под этого самого DosBox в этой самой Borland C++ при нереальном везении оно может и запустится...
polindroma
0 / 0 / 0
Регистрация: 06.12.2011
Сообщений: 18
15.01.2012, 17:34  [ТС] #3
так я этот файл в Borland C++ 3.1 открываю и пытаюсь запустить.Тут никто про BGI графику не ругается.А ругается на все функции графического режима(initgraph,graphresult и т.д.).Чего ему не хватает?

Добавлено через 23 минуты
даже если скопировать пример(например,окружность)в файл из справки и попробовать запустить на выполнение,то на все графические функции ругается....
liker error:undefined symbol _setcolor in modul и по всем остальным тоже.Я так понимаю,я что то не подключаю.
easybudda
Модератор
Эксперт CЭксперт С++
9530 / 5523 / 932
Регистрация: 25.07.2009
Сообщений: 10,602
15.01.2012, 20:16 #4
polindroma, а посмотрите в открытой IDE TurboC Options->Linker->Libraries стоит крестик напротив Graphics library?
Ну и в Options->Directories Library Directories должен в правильное место указывать...
polindroma
0 / 0 / 0
Регистрация: 06.12.2011
Сообщений: 18
15.01.2012, 22:00  [ТС] #5
я уже нашла)))там,где Вы написали надо было крестик поставить и initgraph прописать путь к EGAVGA.BGI.Спасибо.

Добавлено через 28 минут
у меня теперь другая проблема-из-за того,что виндоуз не поддерживает полноэкранный режим IDE TurboC,программа запускается,но графика выбивает работу программы.она просто сворачивается.
не работает графика(не могу подключить)
С этим как быть?
Арсенал
144 / 66 / 6
Регистрация: 30.12.2011
Сообщений: 137
15.01.2012, 22:13 #6
Полноэкранный режим работы?
Один из вариантов:

Alt+Enter или Ctrl+Enter, точно не вспомню
polindroma
0 / 0 / 0
Регистрация: 06.12.2011
Сообщений: 18
15.01.2012, 22:24  [ТС] #7
пишет-система не поддерживает полноэкранный режим
easybudda
Модератор
Эксперт CЭксперт С++
9530 / 5523 / 932
Регистрация: 25.07.2009
Сообщений: 10,602
15.01.2012, 22:33 #8
Цитата Сообщение от polindroma Посмотреть сообщение
пишет-система не поддерживает полноэкранный режим
И если запустив DosBox в его окне Альт+Ентер нажать - то же пишет? Тогда, думаю, не судьба...
polindroma
0 / 0 / 0
Регистрация: 06.12.2011
Сообщений: 18
15.01.2012, 22:37  [ТС] #9
в DosBox полноэкранный режим работает.Только я никак не могу добраться до среды,чтоб ее запустить.Она создала виртуальный диск z.А система у меня на c:\borlandc\bin.Я никак до нее дойти не могу.На сколько я поняла,mount-создает новый виртуальный диск,а не переходит на диск с.
easybudda
Модератор
Эксперт CЭксперт С++
9530 / 5523 / 932
Регистрация: 25.07.2009
Сообщений: 10,602
15.01.2012, 22:49 #10
Цитата Сообщение от polindroma Посмотреть сообщение
Я никак до нее дойти не могу.На сколько я поняла,mount-создает новый виртуальный диск,а не переходит на диск с.
Нужно выделить папку на диске, назвав её как-нибудь символично (dosdisk например), в dosbox-овском конфиге (в вниде, на сколько помню, до него через пуск-все_программы-dosbox добраться можно) после [autoexec] в новой строке написать
Код
mount c c:\dosdisk
ну или где Вы там эту папку создали. Туда же в папку dosdisk запихнуть оптом весь Borland TurboC++ 3.1 ну и програмку свою. Дальше - запускаете DosBox, жмёте Alt+Enter, ну и
Код
c:
cd tc\bin
tc.exe
tc - это папка с TurboC. При этом должна бы открыться IDE борландовская, в ней открываете програмку свою, компилируете, запускаете, смотрите, что будет...
polindroma
0 / 0 / 0
Регистрация: 06.12.2011
Сообщений: 18
15.01.2012, 23:01  [ТС] #11
dosbox-овский конфиг-как он правильно называется(имя файла)?
easybudda
Модератор
Эксперт CЭксперт С++
9530 / 5523 / 932
Регистрация: 25.07.2009
Сообщений: 10,602
15.01.2012, 23:12 #12
Цитата Сообщение от polindroma Посмотреть сообщение
dosbox-овский конфиг-как он правильно называется(имя файла)?
Да прям так dosbox.config и называется. Говорю, Вы посмотрите в Пуск-Все программы-DosBox, там должно быть две запускалки - dosbox и dosbox(no console), readme какой-нибудь и этот самый config, который должен в текстовом редакторе открываться...
polindroma
0 / 0 / 0
Регистрация: 06.12.2011
Сообщений: 18
16.01.2012, 00:02  [ТС] #13
когда в среде уже под dosbox-ом компилирует,а при попытке послать файл на исполнение сворачивается даже dosbox.Это я пыталась запустить пример с отрисовкой окружности.
easybudda
Модератор
Эксперт CЭксперт С++
9530 / 5523 / 932
Регистрация: 25.07.2009
Сообщений: 10,602
16.01.2012, 00:53 #14
polindroma, не знаю, что такое gmode, и почему оно равно тому, чему оно там у Вас равно, но я бы попытки решить проблему с этого начал. А вообще лучше преподу как-нибудь мягко намекнуть, что со времён egavga.bgi уж 20 лет прошло и гораздо конструктивнее было бы OpenGL к примеру изучать, круги и с этой библиотекой рисовать можно...
polindroma
0 / 0 / 0
Регистрация: 06.12.2011
Сообщений: 18
16.01.2012, 00:58  [ТС] #15
мне бы тоже было легче
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.01.2012, 00:58
Привет! Вот еще темы с ответами:

Не могу подключить Friend функцию - C++
Недавно проходили в универе френ функции немного не понял как ими пользоваться Помогите исправить это жалкое подобие #include...

Не могу подключить библиотеку d3dx9.lib - C++
Я занимаюсь по книге &quot;Искусство программирования игр на С++&quot;. И на первом же уроке обломился...:-| Там нужно было подключить стандартные...

Про инклюды (не могу подключить хидера) - C++
Привет! Есть две папки &quot;classes&quot; и &quot;functions&quot; в папке &quot;incl&quot;. Мне нужно подключить хидера из &quot;classes&quot; в хидера из &quot;functions&quot;. Я пишу,...

Не могу подключить Header file к проекту... - C++
//Содержание Header file (Sum.h): class Sum { public: int s; int plus (int x1, int x2) { s = x1 + x2; return s;


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
16.01.2012, 00:58
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru