43 lines
1.2 KiB
Plaintext
43 lines
1.2 KiB
Plaintext
Size% = 20
|
|
DIM P&(Size%-1,Size%-1), Q&(Size%-1,Size%-1)
|
|
|
|
VDU 23,22,Size%*8;Size%*8;64,64,16,0
|
|
OFF
|
|
|
|
DATA "tH........."
|
|
DATA ". . "
|
|
DATA " ... "
|
|
DATA ". . "
|
|
DATA "Ht.. ......"
|
|
|
|
FOR Y% = 12 TO 8 STEP -1
|
|
READ A$
|
|
FOR X% = 1 TO LEN(A$)
|
|
P&(X%+4, Y%) = ASCMID$(A$, X%, 1) AND 15
|
|
NEXT
|
|
NEXT Y%
|
|
|
|
COLOUR 8,0,0,255 : REM Electron head = blue
|
|
COLOUR 4,255,0,0 : REM Electron tail = red
|
|
COLOUR 14,255,200,0 : REM Conductor orange
|
|
|
|
REPEAT
|
|
FOR Y% = 1 TO Size%-2
|
|
FOR X% = 1 TO Size%-2
|
|
IF P&(X%,Y%)<>Q&(X%,Y%) GCOL P&(X%,Y%) : PLOT X%*16, Y%*16
|
|
CASE P&(X%,Y%) OF
|
|
WHEN 0: Q&(X%,Y%) = 0
|
|
WHEN 8: Q&(X%,Y%) = 4
|
|
WHEN 4: Q&(X%,Y%) = 14
|
|
WHEN 14:
|
|
T% = (P&(X%+1,Y%)=8) + (P&(X%+1,Y%+1)=8) + (P&(X%+1,Y%-1)=8) + \
|
|
\ (P&(X%-1,Y%)=8) + (P&(X%-1,Y%+1)=8) + (P&(X%-1,Y%-1)=8) + \
|
|
\ (P&(X%,Y%-1)=8) + (P&(X%,Y%+1)=8)
|
|
IF T%=-1 OR T%=-2 THEN Q&(X%,Y%) = 8 ELSE Q&(X%,Y%) = 14
|
|
ENDCASE
|
|
NEXT
|
|
NEXT Y%
|
|
SWAP P&(), Q&()
|
|
WAIT 50
|
|
UNTIL FALSE
|