diff options
| author | Anser <rostgans@tutamail.com> | 2026-07-23 23:40:23 +0200 |
|---|---|---|
| committer | Anser <rostgans@tutamail.com> | 2026-07-31 11:12:48 +0200 |
| commit | 56378b20f42b3dfb64c626f0bd7c7f59d0fffa50 (patch) | |
| tree | f71e0478ec651c9387b0397125c375bb88625568 /src/logo/logo.c | |
| parent | e668c5d6f9f472a1ed0bb62643b9c1b41542ff69 (diff) | |
some basic logos
Diffstat (limited to 'src/logo/logo.c')
| -rw-r--r-- | src/logo/logo.c | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/src/logo/logo.c b/src/logo/logo.c new file mode 100644 index 0000000..749b999 --- /dev/null +++ b/src/logo/logo.c @@ -0,0 +1,73 @@ +#include "logo.h" +#include <stddef.h> +#include <stdio.h> +#include <string.h> + +#define MAX_LOGOS 2 + +const char **logo(int index) { + + static const char *logo0[] = { +" _____________", +" / \\", +" | ☆ ☆ ☆ |", +" | ☆ ☭ ☆ |", +" | ☆ ☆ ☆ |", +" \\_____________/", +" Рабочие мира, объединяйтесь!", + NULL + }; + + + static const char *logo1[] = { +" ╔═══════════════════╗", +" ║ ║", +" ║ ☭ C C C P ☭ ║", +" ║ ║", +" ╚═══════════════════╝", +" Власть — Советам!", + NULL + }; + + if (index < 0 || index >= MAX_LOGOS) return NULL; + + switch (index) { + case 0: + return logo0; + case 1: + return logo1; + default: + return NULL; + } +} + +int get_line_length(const char **line) { + size_t length = 0; + size_t max_length = 0; + + if (line == NULL) return -1; + for (int i = 0; line[i] != NULL; i++) { + length = strlen(line[i]); + + if (length > max_length) { + max_length = length; + } + } + return max_length; +} + +void print_logo(void) { + int length = 0; + + for (int i = 0; i < MAX_LOGOS; i++) { + const char **lines = logo(i); + if (lines == NULL) continue; + + length = get_line_length(lines); + + for (int j = 0; lines[j] != NULL ; j++) { + printf("%s\n", lines[j]); + } + printf("%d\n", length); + } +} |
