Dibuja un Tablero de Ajedrez usando Programación de Gráficos en C

Requisito previo: graphics.h , ¿Cómo incluir graphics.h en CodeBlocks?

En Computer Graphics , usamos graphics.h que proporciona funciones directas para dibujar diferentes formas coordinadas (como círculo, rectángulo, etc.). Mediante el uso de estas funciones podemos dibujar diferentes objetos como coches, cabañas, árboles, etc. En este programa, la tarea es dibujar un tablero de ajedrez utilizando las funciones de gráficos .

Para ejecutar el programa, tenemos que incluir el siguiente archivo de encabezado:

#include <graphic.h>

Enfoque: Crearemos un tablero de ajedrez con las siguientes funciones de ayuda:

  1. rectángulo (izquierda, arriba, derecha, abajo) : una función del archivo de encabezado graphics.h que se usa para dibujar un rectángulo. Se requieren las coordenadas de las esquinas superior izquierda e inferior derecha para dibujar el rectángulo. izquierda especifica la coordenada X de la esquina superior izquierda, arriba especifica la coordenada Y de la esquina superior izquierda, derecha especifica la coordenada X de la esquina inferior derecha, abajo especifica la coordenada Y de la esquina inferior derecha.
  2. delay(): esta función está presente en la biblioteca «dos.h» y se usa para retener la salida del programa durante un pequeño período de tiempo, ya que el procesamiento es muy rápido, así que utilícela para ver el resultado.
  3. setcolor() : una función del archivo de encabezado graphics.h que establece el color del puntero (cursor). Hay algunos colores predefinidos en los gráficos por computadora. Aquí n es el número de color.
  4. setfillstyle(): una función del archivo de encabezado graphics.h que establece el patrón de relleno actual y el color de relleno.
  5. floodfill() : una función del archivo de encabezado graphics.h que se usa para llenar un área cerrada.

A continuación se muestra la implementación de dibujar un tablero de ajedrez usando gráficos en C:

// C program to create a chess board
#include <conio.h>
#include <dos.h>
#include <graphics.h>
#include <stdio.h>
  
// Driver Code
void main()
{
    // Auto detection
    int gr = DETECT, gm;
    int r, c, x = 30, y = 30, black = 0;
  
    // Initialize graphics mode by passing
    // three arguments to initgraph function
  
    // &gdriver is the address of gdriver
    // variable, &gmode is the address of
    // gmode and  "C:\\Turboc3\\BGI" is the
    // directory path where BGI files are stored
    initgraph(&gr, &gm, "C:\\TURBOC3\\BGI");
  
    // Iterate over 8 rows
    for (r = 0; r < 8; r++) {
  
        // iterate over 8 cols
        for (c = 1; c <= 8; c++) {
  
            // If current block is to
            // color as black
            if (black == 0) {
  
                // set next color as white
                setcolor(WHITE);
  
                // sets the current fill
                // pattern and fill color
                // for black boxes
                setfillstyle(SOLID_FILL, BLACK);
  
                // creating rectangle
                // with length and breadth
                // with size 30
                rectangle(x, y, x + 30, y + 30);
  
                // Fill an enclosed area
                floodfill(x + 1, y + 1, WHITE);
  
                // Set black to true
                black = 1;
            }
  
            // If current block is to
            // color as white
            else {
                setcolor(WHITE);
  
                // sets the current fill
                // pattern and fill color
                // for whitw boxes
                setfillstyle(SOLID_FILL, WHITE);
  
                // creating rectangle
                // with length and breadth
                // with size 30
                rectangle(x, y, x + 30, y + 30);
  
                // Fill an enclosed area
                floodfill(x + 1, y + 1, WHITE);
  
                // Set black to false
                black = 0;
            }
  
            // Increment for next row
            x = x + 30;
  
            // delay function under library
            // "dos.h" for holding the
            // function for some time
            delay(30);
        }
        if (black == 0)
            black = 1;
        else
            black = 0;
  
        delay(30);
        x = 30;
        y = 30 + y;
    }
  
    // getch is used to hold the output screen
    // and wait until user gives any type of
    // input in turbo c
    getch();
  
    // close graph function is used to exit
    // from the graphics screen
    closegraph();
}

Salida:
A continuación se muestra la salida del programa anterior:

Publicación traducida automáticamente

Artículo escrito por hrishikeshkonderu y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *