master
Caleb Fontenot 2024-02-04 10:15:38 +07:00
parent e25c8d4cd5
commit 6a26bbd859
2 changed files with 91 additions and 0 deletions

Binary file not shown.

@ -0,0 +1,91 @@
#include <iostream>
#include <string>
#include<unistd.h> // for linux
using namespace std;
const string COLOR_ANSI = "\033[38;2;";
int color[] = {255, 0, 0};
//bool incDec[] = {false, true, true};
int currentColor = 1;
int colorIterator = 0;
std::string updateColor() {
if (colorIterator >= 255) {
currentColor++;
colorIterator = 0;
}
if (currentColor > 2) {
currentColor = 0;
}
switch (currentColor) {
case 0:
if (color[0] < 255) {
color[0]++;
}
if (color[1] > 0) {
color[1]--;
}
if (color[2] > 0) {
color[2]--;
}
break;
case 1:
if (color[0] > 0) {
color[0]--;
}
if (color[1] < 255) {
color[1]++;
}
if (color[2] > 0) {
color[2]--;
}
break;
case 2:
if (color[0] > 0) {
color[0]--;
}
if (color[1] > 0) {
color[1]--;
}
if (color[2] < 255) {
color[2]++;
}
break;
default:
break;
}
colorIterator++;
return COLOR_ANSI + std::to_string(color[0]) + ";" + std::to_string(color[1]) + ";" + std::to_string(color[2])+ "m";
}
int main() {
//printf("Hello World!\n");
std::system("clear");
string input = "Scrolling text in C++! ";
input += input;
input += input;
input += input;
string colorStr = "";
for (int i = 0;; ++i) {
//printf("\033[H");
//colorStr = updateColor();
//printf ("RGB: %u, %u, %u; colorIterator: %u; currentColor: %u\n", color[0], color[1], color[2], colorIterator, currentColor);
//printf("\n %d ", (i + 1));
for (int j = 0; j < input.size() - 1; ++j) {
printf("%s%c", updateColor().c_str(), input.at(j));
//updateColor();
}
cout << "\n";
//printf("%s %d %s\n", colorStr.c_str(), (i + 1), input.c_str());
input = input.substr((input.size() - 1), input.size()) + input.substr(0, (input.size() - 1));
usleep(100000);
// Clear screen
//std::system("clear");
}
return 0;
}