Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Programming Langauge: C++ I need help creating a linked list program which creat

ID: 3838514 • Letter: P

Question

Programming Langauge: C++

I need help creating a linked list program which creates rectangles on a screen as you press go. The go feature is done. I'm having trouble figuring out how the linked list part works. Also I have timer figured out.

Size

Color

Location

Direction

Speed

Create a linked list to keep track of of the objects of type RectangleClass.

Create a class called RectangleClass.

The drawn rectangles should be defined in RectangleClass whose objects are nodes of a linked list.

The rectangles should have the following random initial values:

Size

Color

Location

Direction

Speed

Create a linked list to keep track of of the objects of type RectangleClass.

3. Create a menu item GO. (DONE)

Each time the menu item is selected, an object of type RectangleClass should be added to the linked list. 4. When the GO button is clicked create a new rectangle.

The rectangle should be defined in a class whose objects are nodes of the linked list. 5. Create a timer.

Set the timer to 50 milliseconds.

At each timer tick re-draw all of the rectangles.

Move each rectangles according to its direction and speed. 6. Bounce the rectangles.

When any coordinate of the rectangles meets or exceeds the edge of the window change the direction of the rectangle to simulate a bounce.

Explanation / Answer

# incorporate <iostream.h>
# incorporate <graphics.h>
# incorporate <conio.h>
# incorporate <math.h>
void show_screen( );
void Rectangle(constint,constint,constint,constint);
void Line(constint,constint,constint,constint);
int primary( )
{
int driver=VGA;
int mode=VGAHI;
int x_1=0;
int y_1=0;
int x_2=0;
int y_2=0;
do
{
show_screen( );
gotoxy(8,10);
cout<<"Coordinates of Left Point (x1,y1) :";
gotoxy(8,11);
cout<<"ííííííííííííííííííííííííííííííííííí";
gotoxy(12,13);
cout<<"Enter the estimation of x1 = ";
cin>>x_1;
gotoxy(12,14);
cout<<"Enter the estimation of y1 = ";
cin>>y_1;
gotoxy(8,18);
cout<<"Coordinates of Right Point (x2,y2) :";
gotoxy(8,19);
cout<<"íííííííííííííííííííííííííííííííííííí";
gotoxy(12,21);
cout<<"Enter the estimation of x2 = ";
cin>>x_2;
gotoxy(12,22);
cout<<"Enter the estimation of y2 = ";
cin>>y_2;
initgraph(&driver,&mode,"..\Bgi");
setcolor(15);
Rectangle(x_1,y_1,x_2,y_2);
setcolor(15);
outtextxy(110,460,"Press <Enter> to proceed or some other key to exit.");
int key=int(getch( ));
if(key!=13)
break;
}
while(1);
return 0;
}
/*************************************************************************// - - Rectangle( ) - -/*************************************************************************/void Rectangle(constint x_1,constint y_1,constint x_2,constint y_2)
{
Line(x_1,y_1,x_2,y_1);
Line(x_2,y_1,x_2,y_2);
Line(x_2,y_2,x_1,y_2);
Line(x_1,y_2,x_1,y_1);
}
/*************************************************************************// - - Line( ) - -/*************************************************************************/void Line(constint x_1,constint y_1,constint x_2,constint y_2)
{
int color=getcolor( );
int x1=x_1;
int y1=y_1;
int x2=x_2;
int y2=y_2;
if(x_1>x_2)
{
x1=x_2;
y1=y_2;
x2=x_1;
y2=y_1;
}
int dx=abs(x2-x1);
int dy=abs(y2-y1);
int inc_dec=((y2>=y1)?1:- 1);
if(dx>dy)
{
int two_dy=(2*dy);
int two_dy_dx=(2*(dy-dx));
int p=((2*dy)- dx);
int x=x1;
int y=y1;
putpixel(x,y,color);
while(x<x2)
{
x++;
if(p<0)
p+=two_dy;
else
{
y+=inc_dec;
p+=two_dy_dx;
}
putpixel(x,y,color);
}
}
else
{
int two_dx=(2*dx);
int two_dx_dy=(2*(dx-dy));
int p=((2*dx)- dy);
int x=x1;
int y=y1;
putpixel(x,y,color);
while(y!=y2)
{
y+=inc_dec;
if(p<0)
p+=two_dx;
else
{
x++;
p+=two_dx_dy;
}
putpixel(x,y,color);
}
}
}
/*************************************************************************// - - show_screen( ) - -/*************************************************************************/void show_screen( )
{
restorecrtmode( );
textmode(C4350);
cprintf(" ********************************************************************************");
cprintf("********************************- - *********************************");
cprintf("* - - ");
textbackground(1);
cprintf(" Rectangle ");
textbackground(8);
cprintf(" - - - *");
cprintf("********************************- - *********************************");
cprintf("*-****************************************************************************-*");
for(int count=0;count<42;count++)
cprintf("* *-*");
gotoxy(1,46);
cprintf("*-****************************************************************************-*");
cprintf("* - - - - - *");
cprintf("********************************************************************************");
gotoxy(1,2);
}