00000000: 50 52 4F 47 52 41 4D 20 42 4F 55 4E 43 45 20 28 |PROGRAM BOUNCE (|
00000010: 49 4E 50 55 54 2C 4F 55 54 50 55 54 29 3B 20 20 |INPUT,OUTPUT); |
00000020: 28 2A 20 34 30 20 43 4F 4C 55 4D 4E 20 56 45 52 |(* 40 COLUMN VER|
00000030: 53 49 4F 4E 20 2A 29 0D 63 6F 6E 73 74 20 74 68 |SION *).const th|
00000040: 65 63 6F 77 73 63 6F 6D 65 68 6F 6D 65 20 3D 20 |ecowscomehome = |
00000050: 66 61 6C 73 65 3B 0D 20 20 20 20 20 20 44 45 4C |false;. DEL|
00000060: 41 59 20 3D 20 33 30 3B 0D 76 61 72 20 72 6F 77 |AY = 30;.var row|
00000070: 2C 20 63 6F 6C 2C 20 69 2C 20 6A 2C 20 64 20 3A |, col, i, j, d :|
00000080: 20 69 6E 74 65 67 65 72 3B 0D 62 65 67 69 6E 0D | integer;.begin.|
00000090: 70 61 67 65 3B 0D 20 20 72 6F 77 20 3A 3D 20 30 |page;. row := 0|
000000A0: 3B 0D 20 20 63 6F 6C 20 3A 3D 20 30 3B 0D 20 20 |;. col := 0;. |
000000B0: 69 20 3A 3D 31 3B 20 6A 3A 3D 32 3B 0D 20 20 72 |i :=1; j:=2;. r|
000000C0: 65 70 65 61 74 0D 20 20 20 20 66 6F 72 20 64 20 |epeat. for d |
000000D0: 3A 3D 20 31 20 74 6F 20 44 45 4C 41 59 20 64 6F |:= 1 to DELAY do|
000000E0: 3B 0D 20 20 20 20 76 64 75 20 28 72 6F 77 2C 20 |;. vdu (row, |
000000F0: 63 6F 6C 2C 20 27 20 27 29 3B 0D 20 20 20 20 63 |col, ' ');. c|
00000100: 6F 6C 20 3A 3D 20 63 6F 6C 2B 6A 3B 0D 20 20 20 |ol := col+j;. |
00000110: 20 72 6F 77 20 3A 3D 20 72 6F 77 2B 69 3B 0D 20 | row := row+i;. |
00000120: 20 20 20 69 66 20 28 72 6F 77 20 3E 20 32 33 29 | if (row > 23)|
00000130: 20 6F 72 20 28 72 6F 77 20 3C 20 30 29 20 74 68 | or (row < 0) th|
00000140: 65 6E 0D 20 20 20 20 20 20 62 65 67 69 6E 0D 20 |en. begin. |
00000150: 20 20 20 20 20 20 20 69 20 3A 3D 20 2D 69 3B 0D | i := -i;.|
00000160: 20 20 20 20 20 20 20 20 72 6F 77 20 3A 3D 20 72 | row := r|
00000170: 6F 77 2B 69 2B 69 3B 0D 20 20 20 20 20 20 65 6E |ow+i+i;. en|
00000180: 64 3B 0D 20 20 20 20 69 66 20 28 63 6F 6C 20 3E |d;. if (col >|
00000190: 20 33 39 29 20 6F 72 20 28 63 6F 6C 20 3C 20 30 | 39) or (col < 0|
000001A0: 29 20 74 68 65 6E 0D 20 20 20 20 20 20 62 65 67 |) then. beg|
000001B0: 69 6E 0D 20 20 20 20 20 20 20 20 6A 20 3A 3D 20 |in. j := |
000001C0: 2D 6A 3B 0D 20 20 20 20 20 20 20 20 63 6F 6C 20 |-j;. col |
000001D0: 3A 3D 20 63 6F 6C 2B 6A 2B 6A 3B 0D 20 20 20 20 |:= col+j+j;. |
000001E0: 20 20 65 6E 64 3B 0D 20 20 20 20 56 44 55 20 28 | end;. VDU (|
000001F0: 52 4F 57 2C 20 43 4F 4C 2C 20 27 D3 27 29 3B 0D |ROW, COL, '.');.|
00000200: 20 75 6E 74 69 6C 20 74 68 65 63 6F 77 73 63 6F | until thecowsco|
00000210: 6D 65 68 6F 6D 65 0D 65 6E 64 2E 0D |mehome.end.. |
PROGRAM BOUNCE (INPUT,OUTPUT); (* 40 CO
LUMN VERSION *).CONST THECOWSCOMEHOME =
FALSE;. DELAY = 30;.VAR ROW, COL, I
, J, D : INTEGER;.BEGIN.PAGE;. ROW := 0
;. COL := 0;. I :=1; J:=2;. REPEAT.
FOR D := 1 TO DELAY DO;. VDU (ROW,
COL, ' ');. COL := COL+J;. ROW :=
ROW+I;. IF (ROW > 23) OR (ROW < 0) TH
EN. BEGIN. I := -I;.
ROW := ROW+I+I;. END;. IF (COL >
39) OR (COL < 0) THEN. BEGIN.
J := -J;. COL := COL+J+J;.
END;. VDU (ROW, COL, 'S');. UNTIL T
HECOWSCOMEHOME.END..
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL