C++ using the STL library. Each code should run stand-alone as a simulation. Ima
ID: 3766112 • Letter: C
Question
C++ using the STL library. Each code should run stand-alone as a simulation. Imagine a 3-d chess board (8x8x8) with one knight on it. The knight is placed at location level 0, row 0 and column 1, (standard position), implement an algorithm that will allow the knight to move around the board randomly until 90% of possible locations have been visited. Knights usually move a total of three spaces in an “L” shape. This is still true, but they now can go up one (or down) over two and up two (or down) and over one. There are 512 locations in a 3-d chess board.
Explanation / Answer
C++ CODE:
# include <iostream.h>
# include <graphics.h>
# include <conio.h>
# include <math.h>
void show_screen( );
void Fill_rectangle(constint,constint,constint,constint);
void Rectangle(constint,constint,constint,constint);
void Line(constint,constint,constint,constint);
int main( )
{
int driver=VGA;
int mode=VGAHI;
initgraph(&driver,&mode,"..\Bgi");
show_screen( );
for(int count_1=0;count_1<15;count_1++)
{
setcolor((count_1+1));
Rectangle((141+count_1),(69+count_1),(499-count_1),
(427-count_1));
}
setcolor(9);
for(int count_2=0;count_2<19;count_2++)
Rectangle((156+count_2),(84+count_2),(484-count_2),(412-count_2));
setcolor(12);
Rectangle((156+count_2),(84+count_2),(484-count_2),(412-count_2));
for(int count_3=0;count_3<9;count_3++)
{
Line((176+(count_3*36)),104,(176+(count_3*36)),392);
Line(176,(104+(36*count_3)),464,(104+(36*count_3)));
}
setcolor(15);
for(int count_4=0;count_4<8;count_4++)
{
for(int count_5=0;count_5<8;count_5++)
{
if(((count_5%2)+(count_4%2))==1)
Fill_rectangle((176+(count_5*36)),(104+(count_4*36)),
(212+(count_5*36)),(140+(count_4*36)));
}
}
char English[8][3]={"H","G","F","E","D","C","B","A"};
char Numbers[8][3]={"1","2","3","4","5","6","7","8"};
setcolor(15);
settextstyle(0,0,1);
for(int count_6=0;count_6<8;count_6++)
{
outtextxy(164,(120+(count_6*36)),Numbers[count_6]);
outtextxy((190+(count_6*36)),398,English[count_6]);
}
getch( );
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);
}
/*************************************************************************///------------------------- Fill_rectangle( ) -------------------------///*************************************************************************/void Fill_rectangle(constint x_1,constint y_1,constint x_2,constint y_2)
{
int y_min=((y_1>=y_2)?y_2:y_1);
int y_max=((y_1<=y_2)?y_2:y_1);
for(int count=(y_min+1);count<y_max;count++)
Line((x_1+1),count,(x_2-1),count);
}
/*************************************************************************///------------------------------ 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( )
{
setfillstyle(1,1);
bar(262,26,365,38);
settextstyle(0,0,1);
setcolor(15);
outtextxy(5,5,"******************************************************************************");
outtextxy(5,17,"*-**************************************************************************-*");
outtextxy(5,29,"*------------------------------ -------------------------------*");
outtextxy(5,41,"*-**************************************************************************-*");
outtextxy(5,53,"*-**************************************************************************-*");
setcolor(11);
outtextxy(270,29,"Chess Board");
setcolor(15);
for(int count=0;count<=30;count++)
outtextxy(5,(65+(count*12)),"*-* *-*");
outtextxy(5,438,"*-**************************************************************************-*");
outtextxy(5,450,"*------------------------- -------------------------*");
outtextxy(5,462,"******************************************************************************");
setcolor(12);
outtextxy(229,450,"Press any Key to exit.");
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.