~riderius/cpp-code

cpp-code/screensaver.cpp -rw-r--r-- 1.2 KiB
380d65aariderius digits_analysis.cpp: argv[1] can replace n 9 days ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include <cstring>
#include <locale>
#include <ncurses.h>

int main(void)
{
    setlocale(LC_ALL, "");
    initscr();

    start_color();

    char str[COLS];

    printw("Enter a string: ");
    getstr(str);

    clear();

    init_pair(0, COLOR_RED, COLOR_BLACK);
    init_pair(1, COLOR_GREEN, COLOR_BLACK);
    init_pair(2, COLOR_YELLOW, COLOR_BLACK);
    init_pair(3, COLOR_BLUE, COLOR_BLACK);
    init_pair(4, COLOR_MAGENTA, COLOR_BLACK);
    init_pair(5, COLOR_CYAN, COLOR_BLACK);
    init_pair(6, COLOR_BLUE, COLOR_WHITE);
    init_pair(7, COLOR_WHITE, COLOR_RED);
    init_pair(8, COLOR_BLACK, COLOR_GREEN);
    init_pair(9, COLOR_BLUE, COLOR_YELLOW);
    init_pair(10, COLOR_WHITE, COLOR_BLUE);
    init_pair(11, COLOR_WHITE, COLOR_MAGENTA);
    init_pair(12, COLOR_BLACK, COLOR_CYAN);

    int x = 0, y = 0;

    curs_set(0);
    noecho();
    halfdelay(2);

    for (int i = 0; i < 13; i++) {
        color_set(i, NULL);

        mvaddstr(y, x, str);

        x++;
        y++;
        if (x > COLS - strlen(str)) {
            x = 0;
        } else if (y > LINES - 2) {
            y = 0;
        }

        if (i == 12)
            i = 0;

        refresh();
        char ch = getch();
        if (ch == 'q')
            break;
    }
    endwin();
    return 0;
}