Броуновсоке движение

Тема в разделе "Общие вопросы по С и С++", создана пользователем -, 2 фев 2009.

Статус темы:
Закрыта.
  1. Гость

    Помогите пожалуйста разобраться с программой. Нужны 100 точек бегающих по экрану. У меня всего бегает только одна точка.
    Вот код:
    [codebox]#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();

    }[/codebox]
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей