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

Движение окружностей с изменением цвета - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Составить функцию для сортировки (упорядочения) массива http://www.cyberforum.ru/cpp-beginners/thread728494.html
19. Составить функцию для сортировки (упорядочения) массива mas из n элементов по возрастанию значений элементов: void sort (int n, int *mas);
C++ Составить функцию для вычисления числа сочетаний 9. Составить функцию для вычисления числа сочетаний из n злементов по m (n и m - целые): Cnm = n! / ((n-m)! * m!) Результатом функции должно быть целое число, если Cnm < 32767 и булевское значение true, или вещественное число, если Cnm >=32767 и булевское значение false. Boolean binom (int n, int m, int *cnm, double *dcnm); http://www.cyberforum.ru/cpp-beginners/thread728493.html
Операции с односвязным списком C++
Уважаемые форумчане, прошу помощи с таким заданием: Определить рекурсивные функции, которые: 1) определяет, входит ли элемент Е в список L; 2) подсчитывает число вхождений элемента Е в список L; 3) находит максимальный элемент непустого списка Е; 4) заменяет в списке L все вхождения Е1 на Е2; 5) выводит список в файл; + функция, которая считывает список из файла
Литература для начинающнего C++
Здравствуйте. Будьте так добры,вы бы не могли подсказать книгу,которую можно почитать ? Я был в разделе "Литература C++",но среди предложенной литературы я конкретно не смог подобрать нужную,что выбрать из предложенного: Оригинальное название: The C Programming Language Автор: Брайан Керниган (Brian Kernighan), Деннис Ритчи (Dennis Ritchie) ...
C++ тип данных С++, который в переменную вместит 10^100 о_О http://www.cyberforum.ru/cpp-beginners/thread728482.html
нужен тип данных С++, который в переменную вместит 10^100 . или способ, как работать с таким числом..спасибо
C++ как проверить что в консоль вводился только английский алфавит? Посути, сделать массив из всех букв, и сверить со строкой ...так? подробнее

Показать сообщение отдельно
Lawlliet
2 / 2 / 0
Регистрация: 25.03.2010
Сообщений: 145

Движение окружностей с изменением цвета - C++

12.12.2012, 10:25. Просмотров 340. Ответов 0
Метки (Все метки)

Доброго времени суток!
Есть олимпийские кольца и рамка для них. Все они движуться вниз по экрану.
вот мой код:

Classes.H
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
#include <iostream.h>
#include <math.h>
#include <conio.h>
#include <graphics.h>
 
class Figure
{
   public:
       virtual int GetCoordinates(int fl) =0;  
       virtual int Getcolor() =0;  
       virtual void Paint(int dx,int dy) =0;    
};
 
class Circle:public Figure
{ 
  int X,Y,R,color;
 
public:
  Circle(int x,int y, int r, int col)
  {
     R=r;
     X=x;
     Y=y;
     color=col;
     }
  ~Circle(){};
 
  int GetCoordinates(int fl)
  {
    if(fl==1)return Y;
    else if(fl==2)return X;
  }  
   
  int GetR()
  {
  return R;   
  }
  
  int Getcolor()  
  {
  return color;
  }
 
  void Paint(int sx,int sy)
  { 
    setcolor(color);
    circle(X+sx,Y+sy,R);                                
  }         
 
};
 
class Rectangl:public Figure
{ 
  int X1,Y1,X2,Y2,color;
public:
  Rectangl(int x1,int y1, int x2,int y2, int col)
  {
     X1=x1;
     Y1=y1;
     X2=x2;
     Y2=y2;
     color=col;
   }
  ~Rectangl(){};
 
  int GetCoordinates(int fl)
  {
    if(fl==1)return Y1;
    else if(fl==2)return X1;
    else if(fl==3)return Y2;
    else if(fl==4)return X2;
   }    
 
  int Getcolor() 
  {   
      return color;
  }
 
  void Paint(int sx,int sy)  
  {
   setcolor(color);
   rectangle(X1+sx,Y1+sy,X2+sx,Y2+sy);
  }        
};
main.cpp
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
#include <iostream.h>
#include <math.h>
#include <conio.h>
#include <graphics.h>
#include "Classes.H"
 
int main ()
{
    Figure **F=new Figure*[7];
    F[0]=new Circle(200,100,40,9);
    F[1]=new Circle(280,100,40,0);
    F[2]=new Circle(360,100,40,12);
    F[3]=new Circle(240,140,40,14);
    F[4]=new Circle(320,140,40,10);
    F[5]=new Rectangl(150,50,410,190,0);
    F[6]=new Rectangl(146,46,414,194,0);
    
    
int s,y;
     std::cout<<"Enter sy\n";
     std::cin>>s;
     initwindow(600,600);
     cleardevice();
     setbkcolor(15);
    for(y=s;y<getmaxy()-F[6]->GetCoordinates(6)-50;y+=s)
    {
     cleardevice();
     F[0]->Paint(0,y);
     F[1]->Paint(0,y);
     F[2]->Paint(0,y);
     F[3]->Paint(0,y);
     F[4]->Paint(0,y);
     F[5]->Paint(0,y);
     F[6]->Paint(0,y);
     delay(700);
   }
   
   getch();
   closegraph();
     return 0;
     }
Помогиет пожалуйста!
Нужно сделать так чтобы окружности меняли свой цвет ,когда двигаютсья, каждая в отдельности!

Заране большое спасибо

Добавлено через 1 час 48 минут
актуально

Добавлено через 6 часов 35 минут
разобрался...
может кому надо будет

Classes.H
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
#include <iostream.h>
#include <math.h>
#include <conio.h>
#include <graphics.h>
 
class Figure
{
   public:
       virtual int GetCoordinates(int fl) =0;  
       virtual int Getcolor() =0;  
       virtual void Paint(int dx,int dy, int color) =0; 
};
 
class Circle:public Figure
{ 
  int X,Y,R,color;
 
public:
  Circle(int x,int y, int r, int col)
  {
     R=r;
     X=x;
     Y=y;
     color=col;
     }
  ~Circle(){};
 
  int GetCoordinates(int fl)
  {
    if(fl==1)return Y;
    else if(fl==2)return X;
  }  
   
  int GetR()
  {
  return R;   
  }
  
  int Getcolor()  
  {
  return color;
  }
 
  void Paint(int sx,int sy,int color)
  { 
    setcolor(color);
    circle(X+sx,Y+sy,R);                                
  }         
 
};
 
class Rectangl:public Figure
{ 
  int X1,Y1,X2,Y2,color;
public:
  Rectangl(int x1,int y1, int x2,int y2, int col)
  {
     X1=x1;
     Y1=y1;
     X2=x2;
     Y2=y2;
     color=col;
   }
  ~Rectangl(){};
 
  int GetCoordinates(int fl)
  {
    if(fl==1)return Y1;
    else if(fl==2)return X1;
    else if(fl==3)return Y2;
    else if(fl==4)return X2;
   }    
 
  int Getcolor() 
  {   
      return color;
  }
 
  void Paint(int sx,int sy,int color) 
  {
   setcolor(color);
   rectangle(X1+sx,Y1+sy,X2+sx,Y2+sy);
  }        
};

main.cpp
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
#include <iostream.h>
#include <math.h>
#include <conio.h>
#include <graphics.h>
#include "Classes.H"
 
int main ()
{
    Figure **F=new Figure*[7];
    F[0]=new Circle(200,100,40,9);
    F[1]=new Circle(280,100,40,0);
    F[2]=new Circle(360,100,40,12);
    F[3]=new Circle(240,140,40,14);
    F[4]=new Circle(320,140,40,10);
    F[5]=new Rectangl(150,50,410,190,0);
    F[6]=new Rectangl(146,46,414,194,0);
    
int y,c1,c2,c3,c4,c5;
     srand(0);
     initwindow(600,600);
     cleardevice();
     setbkcolor(15);
    for(y=5;y<getmaxy()-F[6]->GetCoordinates(6)-50;y+=5)
    {
     c1=rand()%RAND_MAX*12+1;
     c2=rand()%RAND_MAX*13+1;
     c3=rand()%RAND_MAX*14+1;
     c4=rand()%RAND_MAX*15+1;
     c5=rand()%RAND_MAX*16+1;                                                   
     cleardevice();
     F[0]->Paint(0,y,c1);
     F[1]->Paint(0,y,c2);
     F[2]->Paint(0,y,c3);
     F[3]->Paint(0,y,c4);
     F[4]->Paint(0,y,c5);
     F[5]->Paint(0,y,0);
     F[6]->Paint(0,y,0);
     delay(700);
   }
   getch();
   closegraph();
     return 0;
     }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 06:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru