/* http://www.mrwadlo.com */ #include #include #include void randchar(); int random(int max); void takepill(); void calc_time(); void count_1000ths(int hund); long one_sec; void main() { int i=0,j=0; int array[81][2]; int spinner1[2] = { 50, 10 } ; int spinner2[2] = { 20, 3 } ; int x, y, temp, counter1=0, counter2=0, xtemp=0, ytemp=0, stemp=0; clrscr(); calc_time(); for ( i=0 ; i<81 ; i++ ) { array[i][0] = 0; array[i][1] = random(99); } while ( kbhit() == 0 ) { x = random(80)+1; y = array[x][1]; array[x][1]++; if ( array[x][1] >= 100 ) array[x][1] = 0; else if ( array[x][1] >= 50 ) ; else if ( array[x][1] > 25 ) { gotoxy(x,y-24); printf(" "); } else { gotoxy(x,y); textcolor(10); randchar(); } count_1000ths(4); if ( array[x][1] < 25 && random(300) == 1 ) { xtemp = x; ytemp = y; stemp = 1; while ( stemp < 8 ) { for ( i=xtemp-stemp ; i0 && j>0 && i<81 && j<25 ) { gotoxy(i,j); cprintf(" "); } } } count_1000ths(40); stemp++; } stemp = 0; xtemp = 0; ytemp = 0; } if (spinner1[0]<80 && spinner1[1]<25) { gotoxy(spinner1[0],spinner1[1]); textcolor(10); randchar(); } if (spinner2[0]<80 && spinner2[1]<25) { gotoxy(spinner2[0],spinner2[1]); textcolor(10); randchar(); } if (counter1 > 5000) { spinner1[0] = x; spinner1[1] = y; counter1 = 0; } else counter1++; if (counter2 > 7100) { spinner2[0] = x; spinner2[1] = y; counter2 = 0; } else counter2++; } takepill(); } void randchar() { int number = random(255); if ( ( number >= 7 && number <= 10 ) || number == 13 || number == 26 || number == 0 || number == 255 ) number = ' '; cprintf("%c",number); } int random(int max) { int rnd; time_t time1; time1 = time(NULL); rnd = ( rand() + time1 ) % max; return rnd; } void takepill() { int i; char pill[18] = { 'T','@','<','e',' ','t',186,'e',' ','r',240,'D',' ','p',139,'|','l',249 }; clrscr(); textcolor(12); for ( i=0 ; i<18 ; i++ ) { gotoxy(40,i+2); cprintf("%c",pill[i]); count_1000ths(40); } count_1000ths(1000); } void calc_time() { time_t time1; time1 = time(NULL); gotoxy(30,13); printf("Calculating CPU Speed..."); while( time(NULL) == time1 ) ; time1 = time(NULL); while( time(NULL) < (time1 + 2) ) { one_sec++; printf(" \b"); } clrscr(); one_sec /= 2; } void count_1000ths(int thous) { long i = 0; time_t time1; gotoxy (1,25); while ( i < ( one_sec / 1000 * thous ) ) { printf(" \b"); time1 = time(NULL); i++; } }