今回僕の作成したちょっとシュールな時計プログラムを
紹介したいと思います。
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int main(void)
{
/* 数字&記号用アスキーアートを作成 */
char num0[5][7]={"000000",
"00 00",
"00 00",
"00 00",
"000000" };
char num1[5][7]={" 111 ",
" 11 ",
" 11 ",
" 11 ",
"111111" };
char num2[5][7]={"222222",
" 22",
"222222",
"22 ",
"222222" };
char num3[5][7]={"333333",
" 33",
"333333",
" 33",
"333333" };
char num4[5][7]={"44 ",
"44 4 ",
"44 4 ",
"444444",
" 4 " };
char num5[5][7]={"555555",
"55 ",
"555555",
" 55",
"555555" };
char num6[5][7]={"666666",
"66 ",
"666666",
"66 66",
"666666" };
char num7[5][7]={"777777",
"77 77",
" 77",
" 77",
" 77" };
char num8[5][7]={"888888",
"88 88",
"888888",
"88 88",
"888888" };
char num9[5][7]={"999999",
"99 99",
"999999",
" 99",
"999999" };
char num_colon[5][7] =
{" ** ",
" ** ",
" ",
" ** ",
" ** " };
char num_slash[5][7] =
{" **",
" ** ",
" ** ",
" ** ",
"** " };
int i; /* ループカウンタ */
char *nump[12]; /* 各アスキーアート数字へのポインタ */
time_t t; /*時間を一時的に保存*/
struct tm *ltime; /* tm構造体へのポインタ */
int year; /* 西暦 */
int mon; /* 月 */
int mday; /* 日 */
int hour; /* 時 */
int min; /* 分 */
int sec; /* 秒 */
int oldsec=0; /* 一回前の秒数 */
/* 各アスキーアートの先頭アドレスをポインタ配列に格納 */
nump[0] = num0[0];
nump[1] = num1[0];
nump[2] = num2[0];
nump[3] = num3[0];
nump[4] = num4[0];
nump[5] = num5[0];
nump[6] = num6[0];
nump[7] = num7[0];
nump[8] = num8[0];
nump[9] = num9[0];
nump[10] = num_colon[0];
nump[11] = num_slash[0];
while(1){
while(sec == oldsec){
t = time(NULL);
ltime = localtime(&t); /* localtime()でstruct *tm型に変換 */
sec = ltime->tm_sec;
}
system("cls"); /*スクリーンクリア*/
year = ltime->tm_year;
mon = ltime->tm_mon + 1; /* tm_monは 0~11 */
mday = ltime->tm_mday;
hour = ltime->tm_hour;
min = ltime->tm_min;
oldsec = sec;
/* 西暦(下2桁)、月、日 を表示 */
printf("\n");
for(i=0;i<=4;i++){
printf("%s %s ",nump[year / 10 % 10]+ i*7, nump[year % 10]+ i*7);
printf("%s ",nump[11]+ i*7);
printf("%s %s ", nump[mon / 10]+ i*7, nump[mon % 10]+ i*7);
printf("%s ",nump[11]+ i*7);
printf("%s %s ", nump[mday / 10]+ i*7, nump[mday % 10]+ i*7);
printf("\n");
}
printf("\n");
/* 時、分、秒 を表示 */
for(i=0;i<=4;i++){
printf("%s %s ", nump[hour / 10]+ i*7, nump[hour % 10]+ i*7);
printf("%s ",nump[10]+ i*7);
printf("%s %s ", nump[min / 10]+ i*7, nump[min % 10]+ i*7);
printf("%s ",nump[10]+ i*7);
printf("%s %s ", nump[sec / 10]+ i*7, nump[sec % 10]+ i*7);
printf("\n");
}
}
return 0;
}
このコードを実行すると何とも言えないシュールな時計が出来上がります。。。