# Dice simulator with sound using graphics

• Difficulty Level : Hard
• Last Updated : 28 Jun, 2021

Graphics are defined as any sketch or a drawing or a special network that pictorially represents some meaningful information. Computer Graphics is used where a set of images needs to be manipulated or the creation of the image in the form of pixels and is drawn on the computer. It can be used in digital photography, film, entertainment, electronic gadgets, and all other core technologies which are required.

In this article, we will discuss the simulation of the dice valued from 1 to 6 using computer graphics. To implement this simulation, graphics.h header file is used for making dice, dos.h is used to play the beep sound when dice are thrown and the stdlib.h header file is used for the random() function that generates random numbers from 1 to 6.

Take a step-up from those "Hello World" programs. Learn to implement data structures like Heap, Stacks, Linked List and many more! Check out our Data Structures in C course to start learning today.

Approach:

• Initialize a graphic path using the function initgraph().
• Iterate a loop until the program is ended and perform the following steps:
• Take character input from the user and:
• If the character is space then generate any random number from the range [1, 6] and display that number in the square using the rectangle function.
• If the character is 0 then break out of the loop.
• If the character is other than O or space then display the message to press characters only 0 and space.
• After the simulator is ended, then close the graphics using the function closegraph().

Below is the C program to illustrate the dice simulator using graphics:

## C

 `// C program to illustrate the dice``// simulator using graphics`` ` `#include ``#include ``#include ``#include `` ` `// Driver Code``void` `main()``{``    ``int` `gd = DETECT, gm, i;``    ``int` `font = 7, direction = 0;``    ``int` `font_size = 4, r;``    ``char` `press, key, num[1];``    ``char` `value[6] = ``"624531"``;`` ` `    ``// Initialize the graphics path``    ``initgraph(&gd, &gm, ``"C:\\TC\\BGI"``);`` ` `    ``// Heading``    ``setcolor(WHITE);``    ``settextstyle(font, direction,``                 ``font_size);`` ` `    ``outtextxy(100, 10,``              ``"-----DICE SIMULATOR-----"``);`` ` `    ``setcolor(2);``    ``settextstyle(10, 0, 1);``    ``outtextxy(120, 180,``              ``"\"enter (space) to"``              ``" throw dice\""``);``    ``press = ``' '``;`` ` `    ``// Iterate until ask to throw``    ``// the dice``    ``while` `(1) {``        ``key = getch();``        ``if` `(press == key) {`` ` `            ``// Beep sound after``            ``// throwing dice``            ``sound(3000);``            ``delay(10);``            ``nosound();``            ``cleardevice();``            ``for` `(i = 0; i < 40; i++) {``                ``delay(5);`` ` `                ``// Rectangle``                ``rectangle(270 + i, 190 + i,``                          ``350 - i, 270 - i);``            ``}`` ` `            ``setcolor(WHITE);``            ``settextstyle(font, direction,``                         ``font_size);``            ``outtextxy(100, 10,``                      ``"-----DICE SIMULATOR-----"``);`` ` `            ``setcolor(10);``            ``settextstyle(10, 0, 1);`` ` `            ``// Print the message to``            ``// display the game``            ``outtextxy(5, 60,``                      ``"\"press 0 (zero) "``                      ``"for exit.\""``);``            ``outtextxy(``                ``5, 100,``                ``"\"enter (space) to "``                ``"throw dice again.\"\n"``);`` ` `            ``for` `(i = 1; i < 40; i++) {``                ``delay(5);``                ``setcolor(1);`` ` `                ``// Rectangle``                ``rectangle(310 - i, 230 - i,``                          ``310 + i, 230 + i);``            ``}`` ` `            ``// Generate a random number``            ``// between 1 to 6``            ``r = random(6);``            ``num[1] = value[r];`` ` `            ``setcolor(6);`` ` `            ``// Update the style of text``            ``settextstyle(1, 0, 6);`` ` `            ``// Print the number``            ``outtextxy(300, 200, num);``        ``}``        ``else` `if` `(key == ``'0'``) {``            ``break``;``        ``}``        ``else` `{`` ` `            ``// Clear the device``            ``cleardevice();`` ` `            ``// Update background color``            ``setcolor(WHITE);``            ``settextstyle(font, direction,``                         ``font_size);`` ` `            ``// Print the message``            ``outtextxy(100, 10,``                      ``"-----DICE SIM"``                      ``"ULATOR-----"``);`` ` `            ``setcolor(4);``            ``settextstyle(10, 0, 1);`` ` `            ``// For wrong key pressed``            ``outtextxy(170, 110,``                      ``"\"you enter wrong key\""``);``            ``setcolor(14);`` ` `            ``// Exiting the code``            ``outtextxy(170, 170,``                      ``"\"Enter 0 (zero)"``                      ``" for exit\""``);``            ``setcolor(9);``            ``outtextxy(300, 220, ``"(or)"``);``            ``setcolor(5);`` ` `            ``// For starting the dice``            ``// roll again``            ``outtextxy(``                ``90, 270,``                ``"\"Enter (space) to"``                ``" throw dice again\""``);``        ``}``    ``}``    ``closegraph();``}`

Output

My Personal Notes arrow_drop_up