C program to design a carrom board using graphics - GeeksforGeeks

06 Apr, 2021
In this article, we will discuss how to draw a Carrom Board using Graphics.
Approach:
Create the outline of the board using the rectangle() function.
Create another smaller rectangle inside the bigger one using the rectangle() function.
Create a total of four circles at each corner which will be the pockets of the carrom board by using the circle() function.
Color the circles created in the above step with a dark gray color by using two functions setfillstyle() and floodfill() function.
All the other parts of the Board will be colored brown using the same functions.
Create another circle by using the circle() function that represents the central circle of the board.
Color all the remaining circles with a red color by using the same two functions setfillstyle() and floodfill().
Below is the implementation of the above approach:
C
// C program to draw the Carrom Board// using graphics  #include <conio.h>#include <graphics.h>#include <stdio.h>  // Driver Codevoid main(){    // Initialize of gdriver with    // DETECT macros    int gd = DETECT, gm;    initgraph(&gd, &gm, "C:\\"                        "turboc3\\bgi");    rectangle(200, 100, 600, 500);      // Draw the outer Rectangle    rectangle(220, 120, 580, 480);      // Draw the inner Rectangle    circle(240, 140, 20);      // Upper Left Hole    circle(560, 140, 20);      // Upper Right Hole    circle(240, 460, 20);      // Lower Left Hole    circle(560, 460, 20);      // Lower Right Hole    setfillstyle(SOLID_FILL, BROWN);    floodfill(300, 170, 15);    line(300, 170, 500, 170);      // Upper Striker Range Line(Upper)    line(300, 184, 500, 184);      // Upper Striker Range Line(Lower)    circle(300, 177, 7);      // Circle Upper Stricker(Left)    circle(500, 177, 7);      // Circle Upper Stricker(Right)    line(300, 430, 500, 430);      // Lower Striker Range Line(Upper)    line(300, 416, 500, 416);      // Lower Striker Range Line(Lower)    circle(300, 423, 7);      // Circle Lower Stricker(Left)    circle(500, 423, 7);      // Circle Lower Stricker(Right)    line(270, 200, 270, 400);      // Left Striker Range Line(Left)    line(284, 200, 284, 400);      // Left Striker Range Line(Right)    circle(277, 200, 7);      // Circle Left Stricker(Upper)    circle(277, 400, 7);      // Circle Left Stricker(Down)    line(530, 200, 530, 400);      // Right Striker Range Line(Left)    line(516, 200, 516, 400);      // Right Striker Range Line(Right)    circle(523, 200, 7);      // Circle Right Stricker(Upper)    circle(523, 400, 7);      // Circle Right Stricker(Lower)    line(270, 170, 350, 250);      // Upper Left Tangent Line    line(530, 170, 450, 250);      // Upper Right Tangent Line    line(270, 430, 350, 350);      // Lower Left Tangent Line    line(530, 430, 450, 350);      // Lower Right Tangent Line    circle(400, 300, 40);      // Central Circle    circle(400, 300, 15);      // Mini Central Circle    setfillstyle(SOLID_FILL, RED);      // All Circle Red Coloring    floodfill(303, 180, 15);    floodfill(497, 180, 15);    floodfill(303, 420, 15);    floodfill(497, 420, 15);    floodfill(280, 203, 15);    floodfill(280, 403, 15);    floodfill(520, 203, 15);    floodfill(520, 403, 15);    floodfill(405, 305, 15);      setfillstyle(SOLID_FILL, DARKGRAY);    floodfill(243, 143, 15);    floodfill(563, 143, 15);    floodfill(243, 463, 15);    floodfill(563, 463, 15);      // Collectively coloring all    // the shapes created above    getch();      // Close the initialized gdriver    closegraph();}
Output:
c-graphics
computer-graphics
C Language
C Programs
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
TCP Server-Client implementation in C
Exception Handling in C++
'this' pointer in C++
Multithreading in C
Arrow operator -> in C/C++ with Examples
Strings in C
Arrow operator -> in C/C++ with Examples
Header files in C/C++ and its uses
C Program to read contents of Whole File
UDP Server-Client implementation in C