|
|
View Message | Back to Messages |
Peter Swinkels Tue Jul 7 2026 at 9:32 am Updated version->
10 DEFINT A-Z
20 WIDTH 80
30 DIM CLOCK$(20, 20)
40 PI! = 3.141593
50 DEF FNDISTANCE! (X1, Y1, X2, Y2) = SQR(ABS(X2 - X1) ^ 2 + ABS(Y2 - Y1) ^ 2)
60 DEF FNTORADIANS! (DG) = DG / (180 / PI!)
70 GOSUB 160
80 PREVIOUSTIME$ = TIME$
90 KEYSTROKE$ = ""
100 WHILE (KEYSTROKE$ = "")
110 IF NOT TIME$ = PREVIOUSTIME$ THEN GOSUB 160
120 PREVIOUSTIME$ = TIME$
130 KEYSTROKE$ = INKEY$
140 WEND
150 END
160 PRINT "Clock v1.01 - By: Peter Swinkels, ***2025***"
170 PRINT
180 HOURS! = VAL(LEFT$(TIME$, 2))
190 MINUTES! = VAL(MID$(TIME$, 4, 2))
200 SECONDS! = VAL(RIGHT$(TIME$, 2))
210 IF HOURS! > 12 THEN HOURS! = HOURS! - 12
220 HOURS! = FNTORADIANS!(((360 - (HOURS! * 30)) + 180) - (MINUTES! / 2))
230 MINUTES! = FNTORADIANS!((360 - (MINUTES! * 6)) + 180)
240 SECONDS! = FNTORADIANS!((360 - (SECONDS! * 6)) + 180)
250 FOR X = 0 TO 20
260 FOR Y = 0 TO 20
270 DISTANCE = FNDISTANCE!(10, 10, X, Y)
280 IF DISTANCE > 9 AND DISTANCE < 11 THEN CLOCK$(X, Y) = "*" ELSE CLOCK$(X, Y) = " "
290 NEXT Y
300 NEXT X
310 CLOCK$(10, 10) = "X"
320 X = (COS(HOURS!) * 4) + 10
330 Y = (SIN(HOURS!) * 4) + 10
340 BRUSH$ = "H"
350 GOSUB 520
360 X = (COS(MINUTES!) * 8) + 10
370 Y = (SIN(MINUTES!) * 8) + 10
380 BRUSH$ = "M"
390 GOSUB 520
400 X = (COS(SECONDS!) * 8) + 10
410 Y = (SIN(SECONDS!) * 8) + 10
420 BRUSH$ = "s"
430 GOSUB 520
440 FOR X = 0 TO 20
450 PRINT SPACE$(30);
460 FOR Y = 0 TO 20
470 PRINT CLOCK$(X, Y);
480 NEXT Y
490 PRINT
500 NEXT X
510 RETURN
520 STEPS = FNDISTANCE!(10, 10, X, Y)
530 FOR LENGTH = 0 TO STEPS
540 HANDX = X + (((10 - X) * LENGTH) / STEPS)
550 HANDY = Y + (((10 - Y) * LENGTH) / STEPS)
560 CLOCK$(HANDX, HANDY) = BRUSH$
570 NEXT LENGTH
580 RETURN
NGTH) / STEPS)
550 HANDY = Y + (((10 - Y) * LENGTH) / STEPS)
560 CLOCK$(HANDX, HAN
I guess I got carried away with wanting to be precise and forgot the math functions don't even use double precision as well.
|
|