Que onda jóvenes linuxeros.
Es un proyectito un poco tonto pero muy divertido y clásico para programar en C (o cualquier lenguaje que compile a C). Es tratar de hacer arte ASCII en la terminal, lo mas clásico es correr la dona 3D giratoria en C (creada originalmente por Andy Sloane).
Esto puede ser util en algunos escenarios, por ejemplo creo que muchos de ustedes dan como “clases de linux” a sus conocidos, es decir ayudan a aprender a usar la terminal a gente nueva, y creo que esto puede ser interesante y educativo, ya que es un acercamiento divertido a como compilar en GCC y asi.
Pasos a seguir:
- Instalar GCC
sudo apt update && sudo apt install gcc -y
- Guardar el archivo dona.c
Tener el script de la dona en C guardado
Guardamos el siguiente archivo dona.c con el código siguiente:
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <math.h>
int main() {
float A = 0, B = 0;
float i, j;
int k;
float z[1760];
char b[1760];
printf("\x1b[2J");
for (;;) {
memset(b, 32, 1760);
memset(z, 0, 7040);
for (j = 0; j < 6.28; j += 0.07) {
for (i = 0; i < 6.28; i += 0.02) {
float c = sin(i);
float d = cos(j);
float e = sin(A);
float f = sin(j);
float g = cos(A);
float h = d + 2;
float D = 1 / (c * h * e + f * g + 5);
float l = cos(i);
float m = cos(B);
float n = sin(B);
float t = c * h * g - f * e;
int x = 40 + 30 * D * (l * h * m - t * n);
int y = 12 + 15 * D * (l * h * n + t * m);
int o = x + 80 * y;
int N = 8 * ((f * e - c * d * g) * m - c * d * e - f * g - l * d * n);
if (22 > y && y > 0 && x > 0 && 80 > x && D > z[o]) {
z[o] = D;
b[o] = ".,-~:;=!*#$@"[N > 0 ? N : 0];
}
}
}
printf("\x1b[H");
for (k = 0; k < 1761; k++) {
putchar(k % 80 ? b[k] : 10);
A += 0.00004;
B += 0.00002;
}
usleep(30000);
}
return 0;
}
(Si efectivamente uso notepad++ y eso no me hace menos hombre, lo siento Vim es muy difícil.)
-
Compilar el programa
Ahora llamamos el archivo dentro de gcc,con la libreria matematica -1m
gcc dona.c -o dona -lm -
Ejecutar
Cuando abramos la terminal, es importante tenerla en dimensiones donde se pueda observar bien la dona, en el caso de tener el archivo dona.c en el escritorio nos movemos hacia ellas con cd ~/ y asi
./dona
- Disfrutar




