From dbccdc12de2b70db75afd4982d51ec2284fe92f6 Mon Sep 17 00:00:00 2001 From: Alnotz Date: Sun, 3 Oct 2021 11:04:56 +0200 Subject: [PATCH] Logotype C++ v2 encore mieux! --- WeBashCLILogo_v2.cpp | 155 ++++++++++++++++--------------------------- 1 file changed, 57 insertions(+), 98 deletions(-) diff --git a/WeBashCLILogo_v2.cpp b/WeBashCLILogo_v2.cpp index 6dc97fd..bfcee7b 100644 --- a/WeBashCLILogo_v2.cpp +++ b/WeBashCLILogo_v2.cpp @@ -23,39 +23,28 @@ \ / \_________________________________/ */ -/* g++ -Wall -Wextra -c WeBashLogo.cpp && g++ -Wall -Wextra WeBashLogo.o -o WeBashLogo */ +/* g++ -std=c++17 -Wall -Wextra -c WeBashLogo.cpp && g++ -Wall -Wextra WeBashLogo.o -o WeBashLogo */ #include //I/O en C++. #include //Caractères C++. #include //Non standard en C de GNU pour 'usleep()'. #include //Non standard en C de GNU pour 'nanousleep()'. +#include //Tableaux C++. /* En ce qui concerne les dimensions des symboles et lettres. */ -const int LOGO_LIGNES = 19; -const int LOGO_COLONNES = 80; -const int LETTRES_LIGNES = 19; -const int LETTRES_COLONNES = 23; -const int SORTIE_LIGNES = 19; -const int SORTIE_COLONNES = 100; +const auto LOGO_LIGNES = 19; +const auto LOGO_COLONNES = 80; +const auto LETTRES_LIGNES = 19; +const auto SORTIE_LIGNES = 19; +const auto SORTIE_COLONNES = 100; /* Numéro de version. */ const auto LOGO_VERSION = std::string("2.0"); /* Temps de pause (microsecondes). */ -const int TEMPS_L = 800000; -const int TEMPS_C = 200000; -const int TEMPS_TC = 50000; -/* Fonction d'aide. */ -void help_info(char *commName) -{ - std::cout << - "Aide pour " << commName << " :\n\n\ -Commandes : " << commName << " [-h | --help | -v [SYMBOLE] | --verbose [SYMBOLE] | -V | --version] \n\n\ --h --help\t\tInformation sur les commandes.\n\n\ --v --verbose\t\tMode bavard pour les essais. Ajouter une valeur\ -SYMBOLE affiche le symbole correspondant.\n\n\ --V --version\t\tValeur de version.\n\n\ -SYMBOLE\t\tUne des valeurs de 1 à 6 pour les 6 lettres de WeBash\ -ou 0 pour le logo initial ou encore N pour une fenêtre sans croisillon.\n"; -} +const auto TEMPS_L = 800000;//Long. +const auto TEMPS_C = 200000;//Court. +const auto TEMPS_TC = 50000;//Très court. +const std::array SYMBOLES{"N", "0", "1", "2", "3", "4", "5", "6"}; +typedef const std::array frame;//Trame de plusieurs lignes. /* Le logo seul. */ -char logo0[LOGO_LIGNES][LOGO_COLONNES] = +frame LOGO0 = { " _______________________________ \n", " /._____________________. ._. ._.\\ \n", @@ -78,7 +67,7 @@ char logo0[LOGO_LIGNES][LOGO_COLONNES] = " \\_________________________________/ \n" }; /* Le logo vide. */ -char logoN[LOGO_LIGNES][LOGO_COLONNES] = +frame LOGON = { " _______________________________ \n", " /._____________________. ._. ._.\\ \n", @@ -101,7 +90,7 @@ char logoN[LOGO_LIGNES][LOGO_COLONNES] = " \\_________________________________/ \n" }; /* La lettre 'W'. */ -char logo1[LETTRES_LIGNES][LETTRES_COLONNES] = +frame LOGO1 = { "\n", "\n", @@ -124,7 +113,8 @@ char logo1[LETTRES_LIGNES][LETTRES_COLONNES] = "\n" }; /* La lettre 'e'. */ -char logo2[LETTRES_LIGNES+4][LETTRES_COLONNES+4] = +//const char LOGO2[LETTRES_LIGNES+4][LETTRES_COLONNES+4] = +frame LOGO2 = { "\n", "\n", @@ -147,7 +137,7 @@ char logo2[LETTRES_LIGNES+4][LETTRES_COLONNES+4] = "\n" }; /* La lettre 'B'. */ -char logo3[LETTRES_LIGNES][LETTRES_COLONNES] = +frame LOGO3 = { "\n", "\n", @@ -170,7 +160,7 @@ char logo3[LETTRES_LIGNES][LETTRES_COLONNES] = "\n" }; /* La lettre 'a'. */ -char logo4[LETTRES_LIGNES][LETTRES_COLONNES] = +frame LOGO4 = { "\n", "\n", @@ -193,7 +183,7 @@ char logo4[LETTRES_LIGNES][LETTRES_COLONNES] = "\n" }; /* La lettre 's'. */ -char logo5[LETTRES_LIGNES][LETTRES_COLONNES] = +frame LOGO5 = { "\n", "\n", @@ -216,7 +206,7 @@ char logo5[LETTRES_LIGNES][LETTRES_COLONNES] = "\n" }; /* La lettre 'h'. */ -char logo6[LETTRES_LIGNES][LETTRES_COLONNES] = +frame LOGO6 = { "\n", "\n", @@ -238,6 +228,21 @@ char logo6[LETTRES_LIGNES][LETTRES_COLONNES] = "\n", "\n" }; +/* Collection de trames. */ +const std::array LOGOS{LOGON, LOGO0, LOGO1, LOGO2 ,LOGO3 ,LOGO4 ,LOGO5 ,LOGO6 }; +/* Fonction d'aide. */ +void help_info(char *commName) +{ + std::cout << + "Aide pour " << commName << " :\n\n\ +Commandes : " << commName << " [-h | --help | -v [SYMBOLE] | --verbose [SYMBOLE] | -V | --version] \n\n\ +-h --help\t\tInformation sur les commandes.\n\n\ +-v --verbose\t\tMode bavard pour les essais. Ajouter une valeur\ +SYMBOLE affiche le symbole correspondant.\n\n\ +-V --version\t\tValeur de version.\n\n\ +SYMBOLE\t\tUne des valeurs de 1 à 6 pour les 6 lettres de WeBash\ +ou 0 pour le logo initial ou encore N pour une fenêtre sans croisillon.\n"; +} void essai(int argc, char **argv) { std::cout << "=================\n===== Tests =====\n=================" << "\n"; @@ -259,61 +264,15 @@ void essai(int argc, char **argv) * La lettre 'N' correspond à une fenêtre vide, le chiffre '0' * au logo de WeBash. */ - std::cout << "\t== Symboles ==" << "\n"; - if(argument=="N") + std::cout << "==== Symboles ===" << "\n"; + for(auto i=0; i<8; i++) { - for(auto i=0;i