The international rules of chess only require that the 64 sq
The international rules of chess only require that the 64
squares on a chessboard alternate between \"light\" and \"dark,\" so many color
combinations are possible. Pick two contrasting colors you have never seen on a
chessboard before from the picture in section 13.10 and write a program named
hw6pr1.cpp to draw a chessboard with those colors. Note that in chess the
bottom right square is the \"light\" color. Hint: The colors in section 13.10
are the FLTK palette colors Color(0) through Color(255).
PROGRAM IN C++.....
Solution
Hope this will help-
# 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.\");
     }
    



