RosettaCodeData/Task/Cistercian-numerals/Applesoft-BASIC/cistercian-numerals.basic
2025-06-11 20:16:52 -04:00

6 lines
944 B
Text

0 HGR : HCOLOR= 3: HOME : VTAB 21 : FOR I = 1 TO 8 : READ N$: N = VAL (N$): GOSUB 100: PRINT S$MID$ (" " + STR$ (N) + " ", VAL ( MID$ ("1223", LEN ( STR$ (N)),1)),4);: S$=" ":NEXT I : END: END : DATA0,1,20,300,4000,5555,6789,9080
100 N$ = RIGHT$ ("000" + STR$ (N),4):S = S + (S = 0) * 9:X = X + (X = 0) * (S + 4):Y = Y + (Y = 0) * (160 - S * 2):T = Y - S * 1.5:B = Y + S * 1.5: HPLOT X,T TO X,B TO X + 1,B TO X + 1,T
110 FOR D = 1 TO 4:O = SGN (D - 2.5):A = VAL ( MID$ ("1331",D,1)) - 2:Y(0) = Y + S * 1.5 * A:Y(1) = Y + S * .5 * A:E$ = MID$ ("...1..2..3..4..14.6..16.26.126", VAL ( MID$ (N$,D,1)) * 3 + 1,3)
120 FOR J = 1 TO 3:E = VAL ( MID$ (E$,J,1)): IF E THEN X1 = X + (S * O) * (E = 6):X2 = X + S * O:Y1 = Y( VAL ( MID$ ("0101.1",E,1))):Y2 = Y( VAL ( MID$ ("0110.0",E,1))): HPLOT X1,Y1 TO X2,Y2 TO X2 + 1,Y2 TO X1 + 1,Y1: NEXT J
130 NEXT D:X = X + S * 4 - 1: IF X + S > 278 THEN X = S + 4:Y = Y + S * 4
140 RETURN