Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 100 DIM A%(1,100,100): CI%=0: NI%=1
- 101 SCREEN 1: CLS: LOCATE 5, 2: PRINT "LOADING DATA"
- 110 GOSUB 800
- 200 CLS: S$="DATA LOADED.": GOSUB 2100
- 205 SX%=50: SY%=50: GOSUB 2000
- 210 IT% = 1
- 210 LOCATE 5,2: PRINT IT%; " - CALCULATING..."
- 210 GOSUB 1000
- 215 LOCATE 5,2: PRINT CC; " SEATS CHANGED. "
- 218 IF CC = 0 THEN GOTO 300
- 220 T%=CI%: CI%=NI%: NI%=T%: IT% = IT% + 1
- 230 SX%=50+120*CI%: SY%=50: GOSUB 2000
- 240 GOTO 210
- 299 REM
- 300 CS=0
- 310 FOR Y=1 TO MY%
- 320 FOR X=1 TO 100
- 330 IF A%(CI%,X,Y) MOD 4 = 2 THEN CS=CS+1
- 340 NEXT X
- 350 NEXT Y
- 355 LOCATE 1,2: PRINT "ITERATIONS COMPLETE!"
- 360 LOCATE 2,2: PRINT CS;" PEOPLE SEATED."
- 365 S$="": GOSUB 2100
- 370 GOSUB 1900
- 500 END
- 797 REM **************
- 798 REM LOAD SEAT DATA
- 799 REM **************
- 800 OPEN "I", 1, "data11.txt"
- 810 FOR Y = 1 TO 100
- 820 IF EOF(1) THEN MY%=Y: RETURN
- 830 LINE INPUT #1, S$
- 840 FOR X=1 TO LEN(S$)
- 850 C$=MID$(S$,X,1)
- 860 IF C$="." THEN A%(CI%,X,Y)=0 ELSE IF C$="L" THEN A%(CI%,X,Y)=1
- 870 NEXT X
- 880 NEXT Y
- 997 REM *********************
- 998 REM EVOLVE THE SEAT ARRAY
- 999 REM *********************
- 1000 CC=0
- 1001 FOR Y=1 TO MY%: FOR X=1 TO 100
- 1002 A%(NI%,X,Y) = A%(CI%,X,Y)
- 1003 NEXT: NEXT
- 1004 FOR Y=1 TO MY%
- 1005 LINE (3*Y,160)-(3*Y+2,170),CI%+1,BF
- 1010 FOR X=1 TO 100
- 1020 IF A%(CI%,X,Y) = 1 THEN DN%=1: GOSUB 1100
- 1030 IF A%(CI%,X,Y) MOD 4 = 2 AND A%(CI%,X,Y)>16 THEN DN%=-1: GOSUB 1100
- 1040 NEXT X
- 1050 NEXT Y
- 1060 RETURN
- 1070 REM
- 1100 A%(NI%,X-1,Y-1)=A%(NI%,X-1,Y-1)+4*DN%
- 1110 A%(NI%,X ,Y-1)=A%(NI%,X ,Y-1)+4*DN%
- 1120 A%(NI%,X+1,Y-1)=A%(NI%,X+1,Y-1)+4*DN%
- 1130 A%(NI%,X-1,Y )=A%(NI%,X-1,Y )+4*DN%
- 1135 A%(NI%,X ,Y )=A%(NI%,X ,Y )+DN%: REM **
- 1140 A%(NI%,X+1,Y )=A%(NI%,X+1,Y )+4*DN%
- 1150 A%(NI%,X-1,Y+1)=A%(NI%,X-1,Y+1)+4*DN%
- 1160 A%(NI%,X ,Y+1)=A%(NI%,X ,Y+1)+4*DN%
- 1170 A%(NI%,X+1,Y+1)=A%(NI%,X+1,Y+1)+4*DN%
- 1175 CC = CC + 1
- 1180 RETURN
- 1897 REM *****************
- 1898 REM WAIT FOR KEYPRESS
- 1899 REM *****************
- 1900 IF INKEY$ <> "" THEN RETURN ELSE GOTO 1900
- 1997 REM ******************************
- 1998 REM DISPLAY THE CURRENT SEAT ARRAY
- 1999 REM ******************************
- 2000 FOR PY%=1 TO MY%
- 2010 FOR PX%=1 TO 99
- 2020 PSET (SX%+PX%,SY%+PY%),A%(CI%,PX%,PY%) MOD 4
- 2030 NEXT: NEXT: RETURN
- 2097 REM ****************************
- 2098 REM DISPLAY A MESSAGE A SET PLACE
- 2099 REM *****************************
- 2100 LOCATE 5,2: PRINT " "
- 2110 LOCATE 5,2: PRINT S$: RETURN
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement