Ho migliorato ancora il mio programma!
Anche se... adesso... ci sono diverse centinaia di righe di codice
Ecco:
// Programma --V Note--
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include <stdarg.h>
#include <windows.h>
// -------------------------
// Inizio Funzione COLORI -----
void textcolor(unsigned short color)
{
HANDLE hconsole = GetStdHandle(STD_OUTPUT_HANDLE);
if (hconsole == INVALID_HANDLE_VALUE) return;
SetConsoleTextAttribute(hconsole,color);
}
void printfk(char* format,...)
{
va_list ap;
va_start(ap,format);
char data[32];
char* pdata;
int vap;
char* pcap;
double dap;
int* piap;
int process;
while (*format != '\0')
{
if (*format != '%')
{
putchar(*format);
++format;
}
else
{
pdata = data;
process = 0;
while (*format != '\0')
{
*pdata++ = *format++;
switch (*format)
{
case 'd':
case 'i':
case 'o':
case 'u':
case 'x':
case 'X':
case 'c':
vap = va_arg(ap,int);
*pdata++ = *format++;
*pdata = '\0';
printf(data,vap);
process = 1;
break;
case 's':
pcap = va_arg(ap,char*);
*pdata++ = *format++;
*pdata = '\0';
printf(data,pcap);
process = 1;
break;
case 'e':
case 'f':
case 'g':
dap = va_arg(ap,double);
*pdata++ = *format++;
*pdata = '\0';
printf(pdata,dap);
process = 1;
break;
case 'p':
case 'n':
piap = va_arg(ap,int*);
*pdata++ = *format++;
*pdata = '\0';
printf(data,piap);
process = 1;
break;
case '%':
*pdata++ = *format++;
*pdata = '\0';
printf(data);
process = 1;
break;
case 'k':
if (pdata - data == 1)
vap = va_arg(ap,int);
else
{
*pdata = '\0';
data[0] = '0';
vap = atoi(data);
}
++format;
textcolor(vap);
process = 1;
break;
}
if (process) break;
}
}
}
va_end(ap);
}
/*
Colori:
0 = Bianco, 1 = Blu scuro, 2 - Verde scuro, 3 - Azzurro scuro, 4 - Rosso scuro, 5 - Viola scuro,
6 - Giallo scuro, 7 - Default, 8 - Default scuro, 9 - Blu chiaro, 10 - Verde chiaro, 11 - Azzurro chiaro,
12 - Rosso chiaro, 13 - Viola chiaro, 14 - Giallo chiaro.
*/
// Fine funzione colori
// -------------------------
// Inizio MAIN -----
main()
{
// system("color 0A"); /* Colore del testo verde */
int a,b,c,d,scelta,sceltax,sceltay,i,k,x,y,z; /* Dichiarazione delle variabili */
printfk("%10k"); // Colore Verde chiaro
printf("Ciao, benvenuto nel mio programma!\n"); /* Messaggio di benvenuto */
printf("Scegli cosa vuoi fare premendo il tasto corrispondente:\n");
printf("1 - Inizializzare il programma V Note...\n");
printf("2 - Credits...\n");
printf("3 - Impostare manualmente le frequenze per i tasti...\n");
scanf("%d",&scelta);
if (scelta==1)
{
//----------
printf("Hai scelto 1, attendi...\n");
Sleep(2500);
system("CLS");
printfk("%7k"); // Colore Default
printf("|###|xxx|###|###|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|###|xxx|###|###|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|###|xxx|###|###|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|###|xxx|###|###|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|###|xxx|###|###|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|###|xxx|###|###|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|#####|#####|#####|#####|#####|#####|#####|#####|\n");
printf("|##1##|##2##|##3##|##4##|##5##|##6##|##7##|##8##|\n");
printf("|#####|#####|#####|#####|#####|#####|#####|#####|\n");
printf("|#####|#####|#####|#####|#####|#####|#####|#####|\n");
printfk("%10k"); // Colore Verde chiaro
printf("\n\n\n\n\nScegli quale nota riprodurre: \n");
printf("1 - DO, 2 - RE, 3 - MI, 4 - FA o 5 - SOL: ");
scanf("%d",&sceltax);
if (sceltax==1)
{
//-----
printfk("%7k"); // Colore Default
system("CLS");
printf("|***|xxx|###|###|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|***|xxx|###|###|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|***|xxx|###|###|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|***|xxx|###|###|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|***|xxx|###|###|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|***|xxx|###|###|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|*****|#####|#####|#####|#####|#####|#####|#####|\n");
printf("|**1**|##2##|##3##|##4##|##5##|##6##|##7##|##8##|\n");
printf("|*****|#####|#####|#####|#####|#####|#####|#####|\n");
printf("|*****|#####|#####|#####|#####|#####|#####|#####|\n");
Beep(261,750);
system("CLS");
printf("|###|xxx|###|###|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|###|xxx|###|###|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|###|xxx|###|###|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|###|xxx|###|###|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|###|xxx|###|###|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|###|xxx|###|###|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|#####|#####|#####|#####|#####|#####|#####|#####|\n");
printf("|##1##|##2##|##3##|##4##|##5##|##6##|##7##|##8##|\n");
printf("|#####|#####|#####|#####|#####|#####|#####|#####|\n");
printf("|#####|#####|#####|#####|#####|#####|#####|#####|\n");
printfk("%10k"); // Colore Verde chiaro
//-----
}
else if (sceltax==2)
{
//-----
printfk("%7k"); // Colore Default
system("CLS");
printf("|###|xxx|***|###|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|###|xxx|***|###|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|###|xxx|***|###|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|###|xxx|***|###|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|###|xxx|***|###|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|###|xxx|***|###|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|#####|*****|#####|#####|#####|#####|#####|#####|\n");
printf("|##1##|**2**|##3##|##4##|##5##|##6##|##7##|##8##|\n");
printf("|#####|*****|#####|#####|#####|#####|#####|#####|\n");
printf("|#####|*****|#####|#####|#####|#####|#####|#####|\n");
Beep(293,750);
system("CLS");
printf("|###|xxx|###|###|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|###|xxx|###|###|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|###|xxx|###|###|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|###|xxx|###|###|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|###|xxx|###|###|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|###|xxx|###|###|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|#####|#####|#####|#####|#####|#####|#####|#####|\n");
printf("|##1##|##2##|##3##|##4##|##5##|##6##|##7##|##8##|\n");
printf("|#####|#####|#####|#####|#####|#####|#####|#####|\n");
printf("|#####|#####|#####|#####|#####|#####|#####|#####|\n");
printfk("%10k"); // Colore Verde chiaro
//-----
}
else if (sceltax==3)
{
//-----
printfk("%7k"); // Colore Default
system("CLS");
printf("|###|xxx|###|***|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|###|xxx|###|***|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|###|xxx|###|***|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|###|xxx|###|***|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|###|xxx|###|***|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|###|xxx|###|***|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|#####|#####|*****|#####|#####|#####|#####|#####|\n");
printf("|##1##|##2##|**3**|##4##|##5##|##6##|##7##|##8##|\n");
printf("|#####|#####|*****|#####|#####|#####|#####|#####|\n");
printf("|#####|#####|*****|#####|#####|#####|#####|#####|\n");
Beep(329,750);
system("CLS");
printf("|###|xxx|###|###|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|###|xxx|###|###|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|###|xxx|###|###|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|###|xxx|###|###|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|###|xxx|###|###|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|###|xxx|###|###|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|#####|#####|#####|#####|#####|#####|#####|#####|\n");
printf("|##1##|##2##|##3##|##4##|##5##|##6##|##7##|##8##|\n");
printf("|#####|#####|#####|#####|#####|#####|#####|#####|\n");
printf("|#####|#####|#####|#####|#####|#####|#####|#####|\n");
printfk("%10k"); // Colore Verde chiaro
//-----
}
else if (sceltax==4)
{
//-----
printfk("%7k"); // Colore Default
system("CLS");
printf("|###|xxx|###|###|xxx|***|###|xxx|###|###|xxx|###|\n");
printf("|###|xxx|###|###|xxx|***|###|xxx|###|###|xxx|###|\n");
printf("|###|xxx|###|###|xxx|***|###|xxx|###|###|xxx|###|\n");
printf("|###|xxx|###|###|xxx|***|###|xxx|###|###|xxx|###|\n");
printf("|###|xxx|###|###|xxx|***|###|xxx|###|###|xxx|###|\n");
printf("|###|xxx|###|###|xxx|***|###|xxx|###|###|xxx|###|\n");
printf("|#####|#####|#####|*****|#####|#####|#####|#####|\n");
printf("|##1##|##2##|##3##|**4**|##5##|##6##|##7##|##8##|\n");
printf("|#####|#####|#####|*****|#####|#####|#####|#####|\n");
printf("|#####|#####|#####|*****|#####|#####|#####|#####|\n");
Beep(349,750);
system("CLS");
printf("|###|xxx|###|###|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|###|xxx|###|###|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|###|xxx|###|###|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|###|xxx|###|###|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|###|xxx|###|###|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|###|xxx|###|###|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|#####|#####|#####|#####|#####|#####|#####|#####|\n");
printf("|##1##|##2##|##3##|##4##|##5##|##6##|##7##|##8##|\n");
printf("|#####|#####|#####|#####|#####|#####|#####|#####|\n");
printf("|#####|#####|#####|#####|#####|#####|#####|#####|\n");
printfk("%10k"); // Colore Verde chiaro
//-----
}
else if (sceltax==5)
{
//-----
printfk("%7k"); // Colore Default
system("CLS");
printf("|###|xxx|###|###|xxx|###|***|xxx|###|###|xxx|###|\n");
printf("|###|xxx|###|###|xxx|###|***|xxx|###|###|xxx|###|\n");
printf("|###|xxx|###|###|xxx|###|***|xxx|###|###|xxx|###|\n");
printf("|###|xxx|###|###|xxx|###|***|xxx|###|###|xxx|###|\n");
printf("|###|xxx|###|###|xxx|###|***|xxx|###|###|xxx|###|\n");
printf("|###|xxx|###|###|xxx|###|***|xxx|###|###|xxx|###|\n");
printf("|#####|#####|#####|#####|*****|#####|#####|#####|\n");
printf("|##1##|##2##|##3##|##4##|**5**|##6##|##7##|##8##|\n");
printf("|#####|#####|#####|#####|*****|#####|#####|#####|\n");
printf("|#####|#####|#####|#####|*****|#####|#####|#####|\n");
Beep(392,750);
system("CLS");
printf("|###|xxx|###|###|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|###|xxx|###|###|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|###|xxx|###|###|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|###|xxx|###|###|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|###|xxx|###|###|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|###|xxx|###|###|xxx|###|###|xxx|###|###|xxx|###|\n");
printf("|#####|#####|#####|#####|#####|#####|#####|#####|\n");
printf("|##1##|##2##|##3##|##4##|##5##|##6##|##7##|##8##|\n");
printf("|#####|#####|#####|#####|#####|#####|#####|#####|\n");
printf("|#####|#####|#####|#####|#####|#####|#####|#####|\n");
printfk("%10k"); // Colore Verde chiaro
//-----
}
else
{
//-----
printfk("%12k"); // Colore Rosso chiaro
printf("Scelta errata, scegli un numero da 1 a 5!\n");
//-----
}
//----------
}
else if (scelta==2)
{
//----------
printf("Hai scelto 2, attendi...\n");
Sleep(2500);
system("CLS");
printf("--Credits--\n");
printf("V Note v1.0\nCreated by Rand0rnV\n");
printf("Questo programma riproduce le prime 5 note del piano (Do-Re-Mi-Fa-Sol)\n");
printf("Questa e' la versione 1.0 e possono essere presenti diversi BUGs.\nCerchero' di correggerli al piu' presto!\n");
printf("Nel prossimo aggiornamento sara' aggiunta la possibilita' di impostare manualmente la frequenza di ogni nota!\n");
printf("Grazie per il supporto!\n");
//----------
}
else if(scelta==3)
{
//----------
printf("Hai scelto 3, attendi...\n");
Sleep(2500);
system("CLS");
printfk("%12k"); // Colore Rosso chiaro
printf("Opzione non disponibile nella versione attuale (v1.0)\nSi prega di leggere Credits per piu' informazioni.\n");
int sceltaz;
printf("Vuole leggere Credits adesso? Premere 0 - No, 1 - Si: ");
scanf("%d",&sceltaz);
if(sceltaz==1)
{
printf("Hai scelto 1, attendi...\n");
Sleep(2500);
system("CLS");
printf("--Credits--\n");
printf("V Note v1.0\nCreated by Rand0rnV\n");
printf("Questo programma riproduce le prime 5 note del piano (Do-Re-Mi-Fa-Sol)\n");
printf("Questa e' la versione 1.0 e possono essere presenti diversi BUGs.\nCerchero' di correggerli al piu' presto!\n");
printf("Nel prossimo aggiornamento sara' aggiunta la possibilita' di impostare manualmente la frequenza di ogni nota!\n");
printf("Grazie per il supporto!\n");
}
else if(sceltaz==0)
{
printf("Hai scelto 0, attendi...\n");
Sleep(2500);
}
//----------
}
else
{
//----------
printf("\a");
printfk("%12k"); // Colore Rosso chiaro
printf("Scelta errata, puoi scegliere tra 1, 2 o 3!\n");
//----------
}
system("pause");
return 0;
}
// Fine MAIN -----