ISLES
FILE INFORMATION
FILENAME(S): ISLES
FILE TYPE(S): SEQ
FILE SIZE: 2.4K
FIRST SEEN: 2025-11-30 21:28:18
APPEARS ON: 1 disk(s)
FILE HASH
0ad770425c0667f901b2abfb5cc4bcf04e84b1722c5f743d3168de4a57f7fc43
FOUND ON DISKS (1 DISKS)
| DISK TITLE | FILENAME | FILE TYPE | COLLECTION | TRACK | SECTOR | ACTIONS |
|---|---|---|---|---|---|---|
| VCGN D 64007 | ISLES | SEQ | DuncanTwain | 16 | 0 | DOWNLOAD FILE |
FILE CONTENT & ANALYSIS
00000000: 50 52 4F 47 52 41 4D 0D 20 20 20 20 20 20 20 20 |PROGRAM. |
00000010: 69 73 6C 65 73 3B 0D 43 4F 4E 53 54 0D 20 20 20 |isles;.CONST. |
00000020: 20 20 20 66 6D 61 78 3D 20 31 36 3B 0D 20 20 20 | fmax= 16;. |
00000030: 20 20 20 67 6D 61 78 3D 20 38 3B 0D 54 59 50 45 | gmax= 8;.TYPE|
00000040: 0D 20 20 20 20 20 74 61 62 65 6C 3D 20 41 52 52 |. tabel= ARR|
00000050: 41 59 20 5B 31 2E 2E 66 6D 61 78 5D 0D 20 20 20 |AY [1..fmax]. |
00000060: 20 20 20 20 20 20 20 20 20 4F 46 20 69 6E 74 65 | OF inte|
00000070: 67 65 72 3B 0D 56 41 52 0D 20 20 20 20 20 20 61 |ger;.VAR. a|
00000080: 6E 73 77 65 72 3A 20 63 68 61 72 3B 0D 20 20 20 |nswer: char;. |
00000090: 20 20 20 20 20 61 6C 66 61 3A 20 69 6E 74 65 67 | alfa: integ|
000000A0: 65 72 3B 0D 20 20 20 20 20 20 20 6C 2C 78 2C 79 |er;. l,x,y|
000000B0: 3A 20 69 6E 74 65 67 65 72 3B 0D 20 20 20 20 20 |: integer;. |
000000C0: 6E 67 2C 6F 72 64 65 3A 20 69 6E 74 65 67 65 72 |ng,orde: integer|
000000D0: 3B 0D 20 20 20 20 20 20 20 78 30 2C 79 30 3A 20 |;. x0,y0: |
000000E0: 69 6E 74 65 67 65 72 3B 0D 20 20 20 67 65 6E 65 |integer;. gene|
000000F0: 72 61 74 6F 72 3A 20 41 52 52 41 59 20 5B 31 2E |rator: ARRAY [1.|
00000100: 2E 67 6D 61 78 5D 0D 20 20 20 20 20 20 20 20 20 |.gmax]. |
00000110: 20 20 20 20 20 4F 46 20 74 61 62 65 6C 3B 0D 20 | OF tabel;. |
00000120: 20 20 20 20 20 20 6E 66 2C 72 79 3A 20 41 52 52 | nf,ry: ARR|
00000130: 41 59 20 5B 31 2E 2E 67 6D 61 78 5D 0D 20 20 20 |AY [1..gmax]. |
00000140: 20 20 20 20 20 20 20 20 20 20 20 4F 46 20 69 6E | OF in|
00000150: 74 65 67 65 72 3B 0D 20 20 20 20 20 20 20 20 20 |teger;. |
00000160: 20 20 65 3A 20 41 52 52 41 59 20 5B 30 2E 2E 33 | e: ARRAY [0..3|
00000170: 5D 0D 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |]. |
00000180: 4F 46 20 52 45 43 4F 52 44 0D 20 20 20 20 20 20 |OF RECORD. |
00000190: 20 20 20 20 20 20 20 20 20 20 78 2C 79 3A 20 69 | x,y: i|
000001A0: 6E 74 65 67 65 72 3B 0D 20 20 20 20 20 20 20 20 |nteger;. |
000001B0: 20 20 20 20 20 20 45 4E 44 3B 0D 23 61 72 74 2E | END;.#art.|
000001C0: 6C 69 62 0D 50 52 4F 43 45 44 55 52 45 0D 20 20 |lib.PROCEDURE. |
000001D0: 20 20 20 20 20 20 20 20 70 72 69 6D 69 74 69 65 | primitie|
000001E0: 76 65 6E 3B 0D 56 41 52 0D 20 20 20 20 20 20 69 |ven;.VAR. i|
000001F0: 2C 6A 3A 20 69 6E 74 65 67 65 72 3B 0D 42 45 47 |,j: integer;.BEG|
00000200: 49 4E 0D 20 20 65 5B 30 5D 2E 78 3A 3D 31 3B 20 |IN. e[0].x:=1; |
00000210: 65 5B 30 5D 2E 79 3A 3D 30 3B 0D 20 20 46 4F 52 |e[0].y:=0;. FOR|
00000220: 20 69 3A 3D 31 20 54 4F 20 33 20 44 4F 20 42 45 | i:=1 TO 3 DO BE|
00000230: 47 49 4E 0D 20 20 20 20 6A 3A 3D 69 2D 31 3B 0D |GIN. j:=i-1;.|
00000240: 20 20 20 20 65 5B 69 5D 2E 78 3A 3D 2B 65 5B 6A | e[i].x:=+e[j|
00000250: 5D 2E 79 3B 0D 20 20 20 20 65 5B 69 5D 2E 79 3A |].y;. e[i].y:|
00000260: 3D 2D 65 5B 6A 5D 2E 78 3B 0D 20 20 45 4E 44 0D |=-e[j].x;. END.|
00000270: 45 4E 44 0D 3B 0D 50 52 4F 43 45 44 55 52 45 0D |END.;.PROCEDURE.|
00000280: 20 20 20 20 20 20 20 20 20 20 73 65 74 70 65 6E | setpen|
00000290: 20 28 61 2C 62 3A 20 69 6E 74 65 67 65 72 29 3B | (a,b: integer);|
000002A0: 0D 42 45 47 49 4E 0D 20 20 78 3A 3D 61 3B 20 79 |.BEGIN. x:=a; y|
000002B0: 3A 3D 62 3B 0D 45 4E 44 0D 3B 0D 50 52 4F 43 45 |:=b;.END.;.PROCE|
000002C0: 44 55 52 45 0D 20 20 20 20 20 20 20 20 20 20 64 |DURE. d|
000002D0: 72 61 77 0D 20 20 20 20 20 20 20 20 20 20 28 6C |raw. (l|
000002E0: 2C 61 3A 20 69 6E 74 65 67 65 72 29 3B 0D 56 41 |,a: integer);.VA|
000002F0: 52 0D 20 20 20 20 20 20 78 31 2C 79 31 3A 20 69 |R. x1,y1: i|
00000300: 6E 74 65 67 65 72 3B 0D 42 45 47 49 4E 0D 20 20 |nteger;.BEGIN. |
00000310: 61 3A 3D 28 61 2B 34 29 20 4D 4F 44 20 34 3B 0D |a:=(a+4) MOD 4;.|
00000320: 20 20 78 31 3A 3D 78 2B 6C 2A 65 5B 61 5D 2E 78 | x1:=x+l*e[a].x|
00000330: 3B 0D 20 20 79 31 3A 3D 79 2B 6C 2A 65 5B 61 5D |;. y1:=y+l*e[a]|
00000340: 2E 79 3B 0D 20 20 70 6C 6F 74 28 32 2C 78 2C 79 |.y;. plot(2,x,y|
00000350: 2C 78 31 2C 79 31 29 3B 0D 20 20 78 3A 3D 78 31 |,x1,y1);. x:=x1|
00000360: 3B 0D 20 20 79 3A 3D 79 31 3B 0D 45 4E 44 0D 3B |;. y:=y1;.END.;|
00000370: 0D 50 52 4F 43 45 44 55 52 45 0D 20 20 20 20 20 |.PROCEDURE. |
00000380: 20 20 20 20 20 70 61 72 61 6D 65 74 65 72 73 3B | parameters;|
00000390: 0D 56 41 52 0D 20 20 20 20 66 2C 67 2C 78 2C 68 |.VAR. f,g,x,h|
000003A0: 6F 65 6B 3A 20 69 6E 74 65 67 65 72 3B 0D 20 20 |oek: integer;. |
000003B0: 20 20 20 20 20 20 20 20 20 20 63 72 3A 20 63 68 | cr: ch|
000003C0: 61 72 3B 0D 20 20 50 52 4F 43 45 44 55 52 45 0D |ar;. PROCEDURE.|
000003D0: 20 20 20 20 20 20 20 20 20 20 20 20 74 61 62 3B | tab;|
000003E0: 0D 20 20 42 45 47 49 4E 0D 20 20 20 20 20 20 20 |. BEGIN. |
000003F0: 20 77 72 69 74 65 28 27 20 20 20 20 27 29 0D 20 | write(' '). |
00000400: 20 45 4E 44 0D 20 20 3B 0D 42 45 47 49 4E 20 28 | END. ;.BEGIN (|
00000410: 2A 20 70 61 72 61 6D 65 74 65 72 73 20 2A 29 0D |* parameters *).|
00000420: 20 20 63 72 3A 3D 63 68 72 28 31 33 29 3B 0D 20 | cr:=chr(13);. |
00000430: 20 70 61 67 65 3B 20 65 6D 70 74 79 3B 0D 20 20 | page; empty;. |
00000440: 77 72 69 74 65 6C 6E 28 27 20 4B 4F 43 48 A0 49 |writeln(' KOCH.I|
00000450: 53 4C 45 20 27 2C 63 72 29 3B 0D 20 20 77 72 69 |SLE ',cr);. wri|
00000460: 74 65 6C 6E 28 27 20 28 4F 72 74 68 6F 67 6F 6E |teln(' (Orthogon|
00000470: 61 6C 65 20 62 61 73 69 73 29 27 29 3B 0D 20 20 |ale basis)');. |
00000480: 74 61 62 3B 0D 20 20 77 72 69 74 65 28 27 41 61 |tab;. write('Aa|
00000490: 6E 74 61 6C 20 67 65 6E 65 72 61 74 6F 72 65 6E |ntal generatoren|
000004A0: 27 29 3B 0D 20 20 77 72 69 74 65 28 27 20 5B 31 |');. write(' [1|
000004B0: 2E 2E 38 5D 20 3D 20 27 29 3B 0D 20 20 72 65 61 |..8] = ');. rea|
000004C0: 64 6C 6E 28 6E 67 29 3B 0D 20 20 49 46 20 4E 4F |dln(ng);. IF NO|
000004D0: 54 20 28 6E 67 20 49 4E 20 5B 31 2E 2E 38 5D 29 |T (ng IN [1..8])|
000004E0: 0D 20 20 20 20 20 54 48 45 4E 20 6E 67 3A 3D 31 |. THEN ng:=1|
000004F0: 3B 0D 20 20 74 61 62 3B 0D 20 20 77 72 69 74 65 |;. tab;. write|
00000500: 28 27 41 61 6E 74 61 6C 20 67 65 6E 65 72 61 74 |('Aantal generat|
00000510: 69 65 73 20 27 29 3B 0D 20 20 77 72 69 74 65 28 |ies ');. write(|
00000520: 27 20 5B 31 2E 2E 38 5D 20 3D 20 27 29 3B 0D 20 |' [1..8] = ');. |
00000530: 20 72 65 61 64 6C 6E 28 6F 72 64 65 29 3B 0D 20 | readln(orde);. |
00000540: 20 49 46 20 4E 4F 54 20 28 6F 72 64 65 20 49 4E | IF NOT (orde IN|
00000550: 20 5B 31 2E 2E 38 5D 29 0D 20 20 20 20 20 54 48 | [1..8]). TH|
00000560: 45 4E 20 6F 72 64 65 3A 3D 31 3B 0D 20 20 77 72 |EN orde:=1;. wr|
00000570: 69 74 65 6C 6E 28 27 47 65 65 66 20 64 65 20 67 |iteln('Geef de g|
00000580: 65 6E 65 72 61 74 6F 72 65 6E 27 29 3B 0D 20 20 |eneratoren');. |
00000590: 77 72 69 74 65 6C 6E 28 27 48 6F 65 6B 65 6E 20 |writeln('Hoeken |
000005A0: 69 6E 20 6E 2A 39 30 20 67 72 61 64 65 6E 27 29 |in n*90 graden')|
000005B0: 3B 0D 20 20 46 4F 52 20 67 3A 3D 31 20 54 4F 20 |;. FOR g:=1 TO |
000005C0: 6E 67 20 44 4F 20 42 45 47 49 4E 0D 20 20 20 20 |ng DO BEGIN. |
000005D0: 77 72 69 74 65 28 27 52 65 65 6B 73 20 5B 27 2C |write('Reeks [',|
000005E0: 67 3A 31 2C 27 5D 20 27 29 3B 0D 20 20 20 20 77 |g:1,'] ');. w|
000005F0: 72 69 74 65 28 27 23 66 72 61 63 74 75 72 65 73 |rite('#fractures|
00000600: 20 3D 20 27 29 3B 0D 20 20 20 20 72 65 61 64 6C | = ');. readl|
00000610: 6E 28 6E 66 5B 67 5D 29 3B 0D 20 20 20 20 77 72 |n(nf[g]);. wr|
00000620: 69 74 65 28 27 48 6F 65 6B 65 6E 20 3D 20 27 29 |ite('Hoeken = ')|
00000630: 3B 0D 20 20 20 20 46 4F 52 20 66 3A 3D 31 20 54 |;. FOR f:=1 T|
00000640: 4F 20 6E 66 5B 67 5D 20 44 4F 0D 20 20 20 20 42 |O nf[g] DO. B|
00000650: 45 47 49 4E 0D 20 20 20 20 20 20 72 65 61 64 28 |EGIN. read(|
00000660: 68 6F 65 6B 29 3B 0D 20 20 20 20 20 20 68 6F 65 |hoek);. hoe|
00000670: 6B 3A 3D 28 68 6F 65 6B 2B 34 29 20 4D 4F 44 20 |k:=(hoek+4) MOD |
00000680: 34 3B 0D 20 20 20 20 20 20 67 65 6E 65 72 61 74 |4;. generat|
00000690: 6F 72 5B 67 5D 5B 66 5D 3A 3D 68 6F 65 6B 3B 0D |or[g][f]:=hoek;.|
000006A0: 20 20 20 20 45 4E 44 3B 0D 20 20 20 20 72 65 61 | END;. rea|
000006B0: 64 6C 6E 3B 0D 20 20 45 4E 44 3B 0D 20 20 77 72 |dln;. END;. wr|
000006C0: 69 74 65 28 27 47 65 6E 65 72 61 74 6F 72 20 72 |ite('Generator r|
000006D0: 65 65 6B 73 20 3D 20 27 29 3B 0D 20 20 46 4F 52 |eeks = ');. FOR|
000006E0: A0 67 3A 3D 31 20 54 4F 20 6F 72 64 65 20 44 4F |.g:=1 TO orde DO|
000006F0: 20 42 45 47 49 4E 0D 20 20 20 20 72 65 61 64 28 | BEGIN. read(|
00000700: 78 29 3B 0D 20 20 20 20 49 46 20 28 78 20 49 4E |x);. IF (x IN|
00000710: 20 5B 31 2E 2E 6E 67 5D 20 29 0D 20 20 20 20 20 | [1..ng] ). |
00000720: 20 20 54 48 45 4E 20 72 79 5B 67 5D 3A 3D 78 0D | THEN ry[g]:=x.|
00000730: 20 20 20 20 20 20 20 45 4C 53 45 20 72 79 5B 67 | ELSE ry[g|
00000740: 5D 3A 3D 32 0D 20 20 45 4E 44 3B 0D 20 20 72 65 |]:=2. END;. re|
00000750: 61 64 6C 6E 3B 0D 20 20 77 72 69 74 65 28 27 4C |adln;. write('L|
00000760: 65 6E 67 74 65 20 7A 79 64 65 20 3D 20 27 29 3B |engte zyde = ');|
00000770: 0D 20 20 72 65 61 64 6C 6E 28 6C 29 3B 0D 20 20 |. readln(l);. |
00000780: 77 72 69 74 65 28 27 53 74 61 72 74 20 70 6F 73 |write('Start pos|
00000790: 69 74 69 65 20 5B 78 20 79 5D 20 3D 20 27 29 3B |itie [x y] = ');|
000007A0: 0D 20 20 72 65 61 64 6C 6E 28 78 30 2C 79 30 29 |. readln(x0,y0)|
000007B0: 3B 0D 45 4E 44 0D 3B 0D 50 52 4F 43 45 44 55 52 |;.END.;.PROCEDUR|
000007C0: 45 0D 20 20 20 20 20 20 20 20 67 65 6E 65 72 61 |E. genera|
000007D0: 74 65 28 67 2C 61 6C 66 61 3A 20 69 6E 74 65 67 |te(g,alfa: integ|
000007E0: 65 72 29 3B 0D 56 41 52 0D 20 20 20 20 20 20 20 |er);.VAR. |
000007F0: 20 66 2C 6B 2C 68 6F 65 6B 3A 20 69 6E 74 65 67 | f,k,hoek: integ|
00000800: 65 72 3B 0D 20 20 42 45 47 49 4E 0D 20 20 49 46 |er;. BEGIN. IF|
00000810: 20 28 67 3D 6F 72 64 65 2B 31 29 0D 20 20 20 20 | (g=orde+1). |
00000820: 20 54 48 45 4E 20 64 72 61 77 28 6C 2C 61 6C 66 | THEN draw(l,alf|
00000830: 61 29 0D 20 20 20 20 20 45 4C 53 45 20 42 45 47 |a). ELSE BEG|
00000840: 49 4E 0D 20 20 20 20 20 20 20 6B 3A 3D 72 79 5B |IN. k:=ry[|
00000850: 67 5D 3B 0D 20 20 20 20 20 20 20 46 4F 52 20 66 |g];. FOR f|
00000860: 3A 3D 31 20 54 4F 20 6E 66 5B 6B 5D 20 44 4F 20 |:=1 TO nf[k] DO |
00000870: 42 45 47 49 4E 0D 20 20 20 20 20 20 20 20 20 68 |BEGIN. h|
00000880: 6F 65 6B 3A 3D 67 65 6E 65 72 61 74 6F 72 5B 6B |oek:=generator[k|
00000890: 5D 5B 66 5D 3B 0D 20 20 20 20 20 20 20 20 20 61 |][f];. a|
000008A0: 6C 66 61 3A 3D 61 6C 66 61 2B 68 6F 65 6B 3B 0D |lfa:=alfa+hoek;.|
000008B0: 20 20 20 20 20 20 20 20 20 67 65 6E 65 72 61 74 | generat|
000008C0: 65 28 67 2B 31 2C 61 6C 66 61 29 3B 0D 20 20 20 |e(g+1,alfa);. |
000008D0: 20 20 20 20 45 4E 44 0D 20 20 20 20 20 45 4E 44 | END. END|
000008E0: 0D 45 4E 44 0D 3B 0D 42 45 47 49 4E 20 28 2A 20 |.END.;.BEGIN (* |
000008F0: 69 73 6C 65 73 20 2A 29 0D 20 20 70 72 69 6D 69 |isles *). primi|
00000900: 74 69 65 76 65 6E 3B 0D 20 20 52 45 50 45 41 54 |tieven;. REPEAT|
00000910: 0D 20 20 20 20 70 61 72 61 6D 65 74 65 72 73 3B |. parameters;|
00000920: 0D 20 20 20 20 67 72 61 66 69 6E 69 74 28 30 2C |. grafinit(0,|
00000930: 32 29 3B 0D 20 20 20 20 73 65 74 70 65 6E 28 78 |2);. setpen(x|
00000940: 30 2C 79 30 29 3B 0D 20 20 20 20 69 6E 6B 28 37 |0,y0);. ink(7|
00000950: 29 3B 0D 20 20 20 20 67 65 6E 65 72 61 74 65 28 |);. generate(|
00000960: 31 2C 30 29 3B 0D 20 20 20 20 49 46 20 61 66 64 |1,0);. IF afd|
00000970: 72 75 6B 20 54 48 45 4E 20 42 45 47 49 4E 0D 20 |ruk THEN BEGIN. |
00000980: 20 20 20 20 20 20 6D 6F 76 65 3B 20 68 61 72 64 | move; hard|
00000990: 63 6F 70 79 0D 20 20 20 20 45 4E 44 0D 20 20 55 |copy. END. U|
000009A0: 4E 54 49 4C 20 6B 6C 61 61 72 6F 76 65 72 0D 45 |NTIL klaarover.E|
000009B0: 4E 44 2E 0D FF |ND... |
PROGRAM. ISLES;.CONST. FMAX=
16;. GMAX= 8;.TYPE. TABEL= ARR
AY [1..FMAX]. OF INTEGER;.VAR
. ANSWER: CHAR;. ALFA: INTEG
ER;. L,X,Y: INTEGER;. NG,ORDE:
INTEGER;. X0,Y0: INTEGER;. GENE
RATOR: ARRAY [1..GMAX]. OF
TABEL;. NF,RY: ARRAY [1..GMAX].
OF INTEGER;. E: ARR
AY [0..3]. OF RECORD.
X,Y: INTEGER;. EN
D;.#ART.LIB.PROCEDURE. PRIMITIE
VEN;.VAR. I,J: INTEGER;.BEGIN. E[0
].X:=1; E[0].Y:=0;. FOR I:=1 TO 3 DO BE
GIN. J:=I-1;. E[I].X:=+E[J].Y;.
E[I].Y:=-E[J].X;. END.END.;.PROCEDURE.
SETPEN (A,B: INTEGER);.BEGIN.
X:=A; Y:=B;.END.;.PROCEDURE. D
RAW. (L,A: INTEGER);.VAR.
X1,Y1: INTEGER;.BEGIN. A:=(A+4) MOD 4;.
X1:=X+L*E[A].X;. Y1:=Y+L*E[A].Y;. PL
OT(2,X,Y,X1,Y1);. X:=X1;. Y:=Y1;.END.;
.PROCEDURE. PARAMETERS;.VAR.
F,G,X,HOEK: INTEGER;. CR: CH
AR;. PROCEDURE. TAB;. BEGIN
. WRITE(' '). END. ;.BEGIN (
* PARAMETERS *). CR:=CHR(13);. PAGE; E
MPTY;. WRITELN(' KOCH ISLE ',CR);. WRI
TELN(' (ORTHOGONALE BASIS)');. TAB;. W
RITE('AANTAL GENERATOREN');. WRITE(' [1
..8] = ');. READLN(NG);. IF NOT (NG IN
[1..8]). THEN NG:=1;. TAB;. WRITE
('AANTAL GENERATIES ');. WRITE(' [1..8]
= ');. READLN(ORDE);. IF NOT (ORDE IN
[1..8]). THEN ORDE:=1;. WRITELN('G
EEF DE GENERATOREN');. WRITELN('HOEKEN
IN N*90 GRADEN');. FOR G:=1 TO NG DO BE
GIN. WRITE('REEKS [',G:1,'] ');. W
RITE('#FRACTURES = ');. READLN(NF[G])
;. WRITE('HOEKEN = ');. FOR F:=1 T
O NF[G] DO. BEGIN. READ(HOEK);.
HOEK:=(HOEK+4) MOD 4;. GENERAT
OR[G][F]:=HOEK;. END;. READLN;. E
ND;. WRITE('GENERATOR REEKS = ');. FOR
G:=1 TO ORDE DO BEGIN. READ(X);.
IF (X IN [1..NG] ). THEN RY[G]:=X.
ELSE RY[G]:=2. END;. READLN;.
WRITE('LENGTE ZYDE = ');. READLN(L);.
WRITE('START POSITIE [X Y] = ');. READL
N(X0,Y0);.END.;.PROCEDURE. GENERA
TE(G,ALFA: INTEGER);.VAR. F,K,HOE
K: INTEGER;. BEGIN. IF (G=ORDE+1).
THEN DRAW(L,ALFA). ELSE BEGIN.
K:=RY[G];. FOR F:=1 TO NF[K] DO
BEGIN. HOEK:=GENERATOR[K][F];.
ALFA:=ALFA+HOEK;. GENERAT
E(G+1,ALFA);. END. END.END.;.B
EGIN (* ISLES *). PRIMITIEVEN;. REPEAT
. PARAMETERS;. GRAFINIT(0,2);.
SETPEN(X0,Y0);. INK(7);. GENERATE(
1,0);. IF AFDRUK THEN BEGIN. MO
VE; HARDCOPY. END. UNTIL KLAAROVER.E
ND...
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL