home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1993-07-24 | 2.0 KB | 69 lines |
- 10 '************************************************************
- 20 '***THIS PROGRAM DRAWS A CLOCK THAT KEEPS TRACK OF THE TIME**
- 30 '****** DALE KOEHN ******************************************
- 40 SCREEN 9:CLS:DIM N(13),N$(13)
- 50 R=180:PI=3.14159:H=1:M=2:A=-1
- 60 A=A+1
- 70 READ N(A),N$(A)
- 80 IF N$(A)="END" THEN GOTO 150
- 90 GOTO 60
- 100 DATA 0,"U6R4D6L4R4"
- 110 DATA 1,"U6D6"
- 120 DATA 2,"U3R4U3L4BD6R4"
- 130 DATA 3,"R4U3L4R4U3L4R4D6"
- 140 DATA 4,"BR4U6M-4,+3R4D3"
- 150 '
- 160 DATA 5,"R4U3L4U3R4BD6"
- 170 DATA 6,"U6R4L4D6R4U3L4BM+4,+3"
- 180 DATA 7,"BR4U6L4BM+4,+6"
- 190 DATA 8,"U6R4D6L4U3R4D3"
- 200 DATA 9,"R4U6L4D3R4D3"
- 210 DATA 44,"END"
- 220 Y=13
- 230 WHILE Y>1
- 240 Y=Y-1:X=X+(PI/6)
- 250 PSET (300+COS(X+PI/3)*(R+20),180-SIN(X+PI/3)*(R+20)/1.35),0:'NUMBERS
- 260 NUM$=MID$(STR$(Y),2)
- 270 FOR Z=1 TO LEN(NUM$)
- 280 L$=MID$(NUM$,Z,1)
- 290 FOR ZZ=0 TO 9
- 300 IF ZZ=VAL(L$) THEN DRAW "c15" + N$(ZZ) + "BR4"
- 310 NEXT ZZ
- 320 NEXT Z
- 330 WEND
- 340 KEY OFF
- 350 CIRCLE (300,180),220,1
- 360 FOR X=0 TO PI*2 STEP PI/30
- 370 LINE (300+COS(X)*(R+2),180-SIN(X)*(R+2)/1.35)-(300+COS(X)*(R+5),180-SIN(X)*(R+5)/1.35),4:'HOURS
- 380 NEXT X
- 390 FOR X=0 TO PI*2 STEP PI/6
- 400 LINE (300+COS(X)*(R+2),180-SIN(X)*(R+2)/1.35)-(300+COS(X)*(R+10),180-SIN(X)*(R+10)/1.35),1:'HOURS
- 410 NEXT X
- 420 A$=INKEY$:IF A$="q" OR A$="Q" THEN END
- 430 S=VAL(RIGHT$(TIME$,2)):S=(-S/60) * (PI*2) + PI/2:IF S<0 THEN S=(PI*2)+S
- 440 LOCATE 1,60:PRINT TIME$
- 450 IF S=LS THEN GOTO 500
- 460 LINE (300,180)-(300+COS(LS)*R,180-SIN(LS)*R/1.35),0:'seconds
- 470 LINE (300,180)-(300+COS(S)*R,180-SIN(S)*R/1.35),4:'seconds
- 480 IF INT(LS*10)/10=INT(10*H)/10 THEN GOTO 640
- 490 IF INT(LS*10)/10=INT(10*M)/10 THEN GOTO 540
- 500 LS=S
- 510 '
- 520 M=-VAL(MID$(TIME$,4,2))/60 * (PI*2) + PI/2:IF M<0 THEN M=(PI*2)+M
- 530 IF M=LM THEN GOTO 580
- 540 LINE (300,180)-(300+COS(LM)*R,180-SIN(LM)*R/1.35),0:'MINUTES
- 550 LINE (300,180)-(300+COS(M)*R,180-SIN(M)*R/1.35),2:'MINUTES
- 560 IF LM=H THEN GOTO 640
- 570 LM=M:LS=S
- 580 '
- 590 IF VAL(LEFT$(TIME$,2))>12 THEN H=-(VAL(LEFT$(TIME$,2))-12)/60 * (PI*2) + PI/2:GOTO 620
- 600 T=VAL(LEFT$(TIME$,2)):IF T>12 THEN T=T-12
- 610 H=-T/12*(PI*2) + PI/2:IF H<0 THEN H=(PI*2)+H
- 620 IF LM=H THEN GOTO 640
- 630 IF H=LH THEN GOTO 670
- 640 LINE (300,180)-(300+COS(LH)*(R-50),180-SIN(LH)*(R-50)/1.35),0:'HOURS
- 650 LINE (300,180)-(300+COS(H)*(R-50),180-SIN(H)*(R-50)/1.35),1:'HOURS
- 660 LH=H:LS=S:LM=M
- 670 '
- 680 GOTO 420
-