| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Броуновское движение |
| Автор: radikayupov1710 2.2.2009, 19:06 |
| Помогите пожалуйста разобраться с программой. Нужны 100 точек бегающих по экрану. У меня всего бегает только одна точка. Вот код: #include<graphics.h> #include<stdio.h> #include<stdlib.h> #include<conio.h> #include<dos.h> void main() { clrscr(); int gdriver=DETECT, gmode, errorcode; initgraph(& gdriver, & gmode,"..."); errorcode=graphresult(); if (errorcode!= grOk) { printf("Graphicserror:%s\n", grapherrormsg(errorcode)); printf("Press any key to break:"); getch(); exit(1); } int x=50, y, dx=1, dy=1, x1, x2, y1, y2; x1=getmaxx()/2-300; y1=getmaxy()/2-239; x2=getmaxx()/2+300; y2=getmaxy()/2+239; x=getmaxx()/2; y=getmaxy()/2; randomize; do { for(;;) { if(kbhit()) { switch (getch()) { case 119: if(getch()==115) exit(0); break; case 115: if(getch()==119) exit(0); break; } } if(dx>0) { if(x+dx>=x2) dx=dx*(-1); } else if(x+dx<=x1) dx=dx*(-1); if(dy>0) { if(y+dy>=y2) dy=dy*(-1); } else if(y+dy<=y1) dy=dy*(-1); setcolor(BLACK); rectangle(x1, y1, x2, y2); x+=dx; y+=dy; putpixel(x, y, WHITE); delay(5); putpixel(x, y, BLACK); delay(5); } } while(!kbhit()); closegraph(); } |
| Автор: fiss 2.2.2009, 20:10 |
| Оужс. Запихай код в тэг code. Читать неудобно. Мб я не прав, но думаю что каждую точку надо засовывать в поток (thread), чтобы она не зависела от других. |
| Автор: pan2004 2.2.2009, 20:58 |
| fiss, я очень сильно сомневаюсь, что в Borland C++ 3.1(читай Ms DOS) были потоки. Судя по используемым хидерам и функциям, программа оттуда. Не говоря уже что 100 потоков много даже для современного компа. А ничего сложного я не вижу - точки надо пробегать в цикле, и менять их координаты, соответственно перерисовывая. Изза того, что движется только одна точка, могу сказать что этого цикла либо нет, либо он неправильно оформлен(программу не смотрел, так как без [code]) |
| Автор: Peter 18.2.2009, 14:52 |
| Я не вижу даже числа 100 в программе. Там цикл на перерисовку всего лишь одной точки. Откуда сотне взяться? |