Gamla laptop (eller pc) i en klocka. (9 / 9 steg)
Steg 9: Analog klocka pågår.
www.delorie.com/DJGPP/sammanställa/
aclock_dos.c: (Använd på egen risk)
[code]
/*
* aclock - ASCII-klocka för MS-DOS-textläge
*
* Copyright (c) 2002-2004 Antoni Sawicki < tenox
* Version 1.9 (msdos-watcom); Dublin, juli 2004
*
* Sammanställning: Open Watcom 1.2
*
*/
#include < stdio.h >
#include < stdlib.h >
#include < time.h >
#include < conio.h >
#include < graph.h >
#include < math.h >
#define PI 3.14159265358979323846
void draw_point (int x, int y, char p) {
char sträng [2].
string [0] = p;
string [1] = 0;
_settextposition (y, x);
_outtext(string);
}
void draw_circle (int hand_max, int sXcen, int sYcen, int FontHW) {
Double x, y;
int r;
char c;
för (r = 0; r < 60; r ++) {
x = cos (r * PI/180 * 6) * hand_max * FontHW + sXcen;
y = sin (r * PI/180 * 6) * hand_max + sYcen;
Växla (r) {
fall 0:
fall 5:
mål 10:
mål 15:
mål 20:
fall 25:
fall 30:
fall 35:
fall 40:
mål 45:
fall 50:
fall 55:
c = "o";
bryta;
standard:
c='.';
bryta;
}
draw_point(x,y,c);
}
}
void draw_hand (int minut, int hlenght, char c, int sXcen, int sYcen, int FontHW) {
Double x, y;
int n;
flyta r =(minute-15) * (PI/180) * 6.
för (n = 1, n < hlenght; n ++) {
x = (cos (r) * n * FontHW) + sXcen;
y = (synd (r) * n) + sYcen;
draw_point(x,y,c);
}
}
void draw_text (char * p, int x, int y) {
_settextposition (y, x);
_outtext(p);
}
int main(void) {
char information [] = "skriven av Antoni Sawicki < tenox 1,9; Dublin, Mar 2004\n";
char digital_time [15].
kort FontHW = 2;
kort sXmax, sYmax, smax, hand_max, sXcen, sYcen;
tid t;
struct tm * ltime;
korta oanvända;
dubbel provet.
for(;;) {
tid (& t);
ltime = localtime (& t);
_gettextwindow (& oanvända, och oanvända, & sYmax, & sXmax);
om (sXmax + +/ 2 < = sYmax ++)
smax = sXmax/2;
annat
smax = sYmax;
hand_max = (smax/2) -1;
sXcen = sXmax/2;
sYcen = sYmax/2;
_clearscreen(_GCLEARSCREEN);
draw_hand (ltime -> tm_hour * 5 + ltime -> tm_min/10, 2 * hand_max/3 "h", sXcen, sYcen, FontHW);
draw_hand (ltime -> tm_min, hand_max-2, är ", sXcen, sYcen, FontHW);
draw_hand (ltime -> tm_sec, hand_max-1, '.', sXcen, sYcen, FontHW);
draw_circle (hand_max, sXcen, sYcen, FontHW);
draw_text (".: ACLOCK:.", sXcen-5, sYcen/3);
sprintf (digital_time, "[% 02d: % 02d: % 02d]", ltime -> tm_hour, ltime -> tm_min, ltime -> tm_sec);
draw_text (digital_time, sXcen-5, 4 * sYmax/5);
Sleep(1);
}
Return 0;
}
[/code]