mirror of
https://github.com/rfivet/BCG101.git
synced 2024-12-18 08:06:27 -05:00
66 lines
1.7 KiB
QBasic
66 lines
1.7 KiB
QBasic
1 REM LIFE CLARK BAKER 3/72 C.O.G.
|
|
2 PRINT CHR$(31%);CHR$(29%);CHR$(31%);"ENTER YOUR PATTERN:"
|
|
3 X1%,Y1%=1: X2%=24%: Y2%=70%
|
|
10 DIM A%(24%,70%),B$(24%)
|
|
20 OPEN "KB:" AS FILE 1
|
|
30 ON ERROR GO TO 80
|
|
40 C%=1
|
|
50 INPUT LINE #1,B$(C%):B$(C%)=LEFT(B$(C%),LEN(B$(C%))-2%)
|
|
60 C%=C%+1
|
|
70 GO TO 50
|
|
80 L%=0%
|
|
90 FOR X%=1 TO C%-1
|
|
100 IF LEN(B$(X%))>L% THEN L%=LEN(B$(X%))
|
|
110 NEXT X%
|
|
120 X1%=11%-C%/2%
|
|
130 Y1%=33%-L%/2%
|
|
140 FOR X%=1 TO C%
|
|
150 FOR Y%=1 TO LEN(B$(X%))
|
|
160 IF MID(B$(X%),Y%,1)<>" " THEN A%(X1%+X%,Y1%+Y%)=1:P%=P%+1
|
|
170 NEXT Y%
|
|
180 NEXT X%
|
|
200 PRINT CHR$(29%);CHR$(30%);
|
|
210 PRINT "GENERATION:";G%,"POPULATION:";P%;CHR$(30%);:IF I9% THEN PRINT ,"INVALID!";
|
|
215 X3%=24%:Y3%=70%:X4%,Y4%=1:P%=0%
|
|
220 G%=G%+1%
|
|
225 PRINT CHR$(13%);CHR$(10%);CHR$(30%); FOR X%=1 TO X1%-1
|
|
230 FOR X%=X1% TO X2%
|
|
240 PRINT
|
|
250 FOR Y%=Y1% TO Y2%
|
|
253 IF A%(X%,Y%)=2% THEN A%(X%,Y%)=0%:GO TO 270
|
|
256 IF A%(X%,Y%)=3% THEN A%(X%,Y%)=1:GO TO 261
|
|
260 IF A%(X%,Y%)<>1 THEN 270
|
|
261 PRINT TAB(Y%);"*";
|
|
262 IF X%<X3% THEN X3%=X%
|
|
264 IF X%>X4% THEN X4%=X%
|
|
266 IF Y%<Y3% THEN Y3%=Y%
|
|
268 IF Y%>Y4% THEN Y4%=Y%
|
|
270 NEXT Y%
|
|
280 PRINT CHR$(30%);
|
|
290 NEXT X%
|
|
295 PRINT CHR$(30%) FOR X%=X2%+1 TO 24%
|
|
298 PRINT CHR$(29%);
|
|
299 X1%=X3%:X2%=X4%:Y1%=Y3%:Y2%=Y4%
|
|
301 IF X1%<3% THEN X1%=3%:I9%=-1%
|
|
303 IF X2%>22% THEN X2%=22:I9%=-1%
|
|
305 IF Y1%<3% THEN Y1%=3:I9%=-1%
|
|
307 IF Y2%>68% THEN Y2%=68:I9%=-1%
|
|
309 P%=0%
|
|
500 FOR X%=X1%-1 TO X2%+1
|
|
510 FOR Y%=Y1%-1 TO Y2%+1
|
|
520 C%=0%
|
|
530 FOR I%=X%-1% TO X%+1%
|
|
540 FOR J%=Y%-1% TO Y%+1%
|
|
550 IF A%(I%,J%)=1% OR A%(I%,J%)=2% THEN C%=C%+1%
|
|
560 NEXT J%
|
|
570 NEXT I%
|
|
580 IF A%(X%,Y%)=0% THEN 610
|
|
590 IF C%<3% OR C%>4% THEN A%(X%,Y%)=2% ELSE P%=P%+1
|
|
600 GO TO 620
|
|
610 IF C%=3% THEN A%(X%,Y%)=3%:P%=P%+1
|
|
620 NEXT Y%
|
|
630 NEXT X%
|
|
635 X1%=X1%-1:Y1%=Y1%-1:X2%=X2%+1:Y2%=Y2%+1
|
|
640 GO TO 210
|
|
650 END
|