home *** CD-ROM | disk | FTP | other *** search
/ RUN Flagazine Extra: Special 3 / run-special-3.zip / OPART.BAS < prev    next >
BASIC Source File  |  1989-11-24  |  1KB  |  29 lines

  1. 100 REM OP-ART LIFE GWBASIC MONO
  2. 110 CLS:KEY OFF:DEFINT A-Z:RANDOMIZE -TIMER
  3. 120 N=22:N2=N*N:UP=12-N\2:LFT=40-3*N\2+1
  4. 130 DIM A(N+1,N+1),V(N2)
  5. 140 LOCATE UP,LFT:PRINT CHR$(201);STRING$(N*3+2,205);CHR$(187);
  6. 150 FOR J=1 TO N:LOCATE UP+J,LFT
  7. 160 PRINT CHR$(186);SPACE$(N*3+2);CHR$(186);:NEXT
  8. 170 LOCATE UP+N+1,LFT
  9. 180 PRINT CHR$(200);STRING$(N*3+2,205);CHR$(188);
  10. 190 GEN=0:FOR I=0 TO N+1:FOR J=0 TO N+1
  11. 200 A(I,J)=INT(RND*2):NEXT:NEXT:GOSUB 320:WIJZ=9999
  12. 210 FOR I=1 TO N2:V(I)=I:NEXT
  13. 220 FOR I=1 TO N2:SWAP V(I),V(INT(RND*N2+1)):NEXT
  14. 230 WIJZOUD=WIJZ:WIJZ=0
  15. 240 FOR I=1 TO N2
  16. 250 Y=(V(I)-1)\N+1:X=(V(I)-1) MOD N+1
  17. 260 SOM=A(X-1,Y)+A(X+1,Y)+A(X,Y-1)+A(X,Y+1)
  18. 270 IF (SOM>2) AND (A(X,Y)=1) THEN A(X,Y)=0:WIJZ=WIJZ+1
  19. 280 IF (SOM<2) AND (A(X,Y)=0) THEN A(X,Y)=1:WIJZ=WIJZ+1
  20. 290 IF (SOM=2) THEN A(X,Y)=1-A(X,Y):WIJZ=WIJZ+1
  21. 300 NEXT:GOSUB 320:IF WIJZ>1 AND GEN<50 THEN 230
  22. 310 LOCATE 23,1:BEEP
  23. 315 WHILE INKEY$="":WEND:END
  24. 320 FOR J=1 TO N:FOR I=1 TO N:LOCATE UP+J,LFT-1+I*3
  25. 330 PRINT STRING$(3,32+187*A(I,J));
  26. 340 NEXT:NEXT:LOCATE 1,1:PRINT "GEN:":LOCATE 2,1:PRINT GEN
  27. 350 GEN=GEN+1:LOCATE 4,1:PRINT "WIJZ:":LOCATE 5,1:PRINT WIJZ
  28. 360 RETURN
  29.