Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Броуновское движение, написать программу броуновское движение 
:(
    Опции темы
radikayupov1710
Дата 2.2.2009, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 2.2.2009

Репутация: нет
Всего: нет



Помогите пожалуйста разобраться с программой. Нужны 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();

}

Это сообщение отредактировал(а) radikayupov1710 - 2.2.2009, 19:11
PM MAIL   Вверх
fiss
Дата 2.2.2009, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 10.1.2009
Где: nov.ru

Репутация: нет
Всего: нет



Оужс. Запихай код в тэг code. Читать неудобно.
Мб я не прав, но думаю что каждую точку надо засовывать в поток (thread), чтобы она не зависела от других.

Это сообщение отредактировал(а) fiss - 2.2.2009, 20:11
PM MAIL ICQ MSN   Вверх
pan2004
Дата 2.2.2009, 20:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 357
Регистрация: 28.7.2007

Репутация: 1
Всего: 9



fiss, я очень сильно сомневаюсь, что в Borland C++ 3.1(читай Ms DOS) были потоки. Судя по используемым хидерам и функциям, программа оттуда. Не говоря уже что 100 потоков много даже для современного компа.
А ничего сложного я не вижу - точки надо пробегать в цикле, и менять их координаты, соответственно перерисовывая. Изза того, что движется только одна точка, могу сказать что этого цикла либо нет, либо он неправильно оформлен(программу не смотрел, так как без [code])


--------------------
Qt4/C++ fan
WinXP SP3: MSVC++2005 Qt4.5.1 Boost1.39
сыграем в дурака?
PM MAIL   Вверх
Peter
Дата 18.2.2009, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 771
Регистрация: 28.7.2003
Где: Ставрополь

Репутация: -1
Всего: 1



Цитата(radikayupov1710 @  2.2.2009,  19:06 Найти цитируемый пост)
Помогите пожалуйста разобраться с программой. Нужны 100 точек бегающих по экрану. У меня всего бегает только одна точка.
Я не вижу даже числа 100 в программе. Там цикл на перерисовку всего лишь одной точки. Откуда сотне взяться?


--------------------
всё, что делаете, делайте от души, как для Господа (Послание апостола Павла колоссянам, 3:23).
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0542 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.