-+-+-+-+-+-+-+-+ START OF PART 4 -+-+-+-+-+-+-+-+ X `09 Games(i) = Games(i) + 1 X endif X sorted = .false. X do while (.not.sorted)`20 X `09sorted = .true. X`09Do I=1,max_keep-1 X`09 IF ( Score(I).Lt.Score(I+1)) Then`20 X `09 Sorted = .false. X `09 IF (I+1.eq.me) me = Me - 1 X`09 K=Score(I) X`09 Score(I)=Score(I+1) X`09 Score(I+1)=K X`09 K=games(I) X`09 Games(I)=Games(I+1) X`09 Games(I+1)=K X`09 Do J=1,12 X`09`09Temp(J)=name(J,I) X`09`09Name(J,I)=name(J,I+1) X`09`09Name(J,I+1)=Temp(J) X`09 enddo X`09 Do J=1,12`20 X`09`09Temp(J)=username(J,I) X`09`09UserName(J,I)=username(J,I+1) X`09`09UserName(J,I+1)=Temp(J) X`09 enddo X`09 endif X`09enddo X enddo XC XC Now To display The Top Players Of The Year`20 XC `20 X type 110,Esc,Esc,Year_now-1,Year_now,Esc,Esc X110 Format(X,A1,'`5BH',A1,'`5B2J' X . ,'Immortal Players For ',I4,' - ',I4,A1,'(0',/ X .`09 X,'oooooooooooooooooooooooooooooooooo',A1,'(B',/ X .`09 X,'Month Username Name Score',/) X If (month_now.eq.1) month_now = 13 X `09 X Do M = month_now - 1 ,1,-1 X If ( Month_Score(M).gt.0) Then`20 X `09 type 120,Month_of_year(M), X .`09`09(Month_username(K,M),K=1,10), X .`09`09(month_name(K,M),K=1,12),month_Score(m) X `09 endif X enddo X Do M = 12 ,month_now,-1 X If ( Month_Score(M).gt.0) Then`20 X `09 type 120,Month_of_year(M), X .`09`09(Month_username(K,M),K=1,10), X .`09`09(month_name(K,M),K=1,12),month_Score(m) X `09 endif X enddo X120 Format(2X,A4,2X,10A1,12A1,I6) X X type 210,Esc,Esc,Month_of_year(Month_top), X .`09`09Esc,num_games,Esc,Esc,Esc,Esc,Esc X210 Format(X,A1,'`5BH',A1,'`5B40C Top Players For ',A4, X .`09`09A1,'`5B1m',I6,' Games',A1,'`5B0m',/ X .`09 X,A1,'`5B40C ',A1, X .`09`09'(0ooooooooooooooooooo',A1,'(B',/ X .`09 X,A1,'`5B40CNum Username Name Score Games'/) X Do I = 1,12 X If ( Score(I).ne.0) Then`20 X `09 type 220,Esc,I,(username(K,I),K=1,10), X .`09`09(name(K,I),K=1,12),Score(I), X .`09`09Games(I) X endif X enddo X220 Format(X,A1,'`5B40C',I3,X,10A1,12A1,I6,I6) X `20 X If ( This_Score.Ge.Prev_Score.and.Me.le.12) Then`20 X Type 311,Esc,Me,Prev_Score,Esc,Esc,This_Score X else X Type 312,Esc,Me,Prev_Score,This_Score X endif X311 Format(X,A1,'`5B18;1H', X . 4X,'You Are Seated At ',I2,' In Asteroids ', X . 6X,'Previous Score ',I6,//,X, X . 4X,A1,'`5B1m','Enter Your Name `5B Return to leave `5D ', X . A1,'`5B0m',6X,'Current Score ',I6) X312 Format(X,A1,'`5B18;1H', X . 4X,'You Are Seated At ',I2,' In Asteroids ', X . 6X,'Previous Score ',I6,//,X, X . 4X,'Not The Best .... ', X . 6X,'Current Score ',I6) X If ( Me.LE.12.and.This_Score.GE.Prev_Score) then`20 X`09 If ( Me + 4.ge.10) then`20 X`09 Type 320,Esc,Me + 4 `20 X320`09 Format(X,A1,'`5B',I2,';55H',$) X`09 else`20 X`09 Type 321,Esc,me + 4 X321`09 Format(X,A1,'`5B',I1,';55H',$) X`09 endif X`09 Accept 323, I, ( Name(K,Me),K = 1 ,I ) X323`09 Format(Q,A1) X Endif X Type 324,Esc X324 Format(X,A1,'`5B22;1H') X rewind(4) X write(4) Num_games,month_top, X . month_username,month_name,Month_Score X write(4) username,name,score,Games X Close (4) X Return XC XC X XC X50 type 51,Esc,Esc,Esc X51 Format(X,A1,'<',A1,'`5B2J',A1,'`5B1;1HPlease Wait ...') X Call Sleep(4) X Goto 1 XC XC XC X999 type 1000 X1000 Format(X,'Can''t Find Asteroids.Acn Creating New File') X Open(unit=4,file='Image_dir:Asteroids.Acn',form='UNFORMATTED', X .`09recordtype='FIXED',Status='New',Recl=1024,IoStat=ErrNum) X num_games = 0 X Do I = 1,12 X Do J = 1,12`20 X month_username(J,I) = ' ' X`09 month_name(J,I) = ' ' X`09 enddo X`09 month_Score(i) = 0 X enddo X Month_top = 0 X write(4) Num_games,month_top, X .`09`09month_username,month_name,Month_Score X write(4) Username,name,score,Games X close(4) X goto 1 X End $ CALL UNPACK ASTEROIDT.FOR;1 1345539874 $ create 'f' X$ FORTRAN ASTEROIDL X$ FORTRAN ASTEROIDT X$ PASCAL ASTEROIDS X$ LINK /NODEBUG /NOTRACE ASTEROIDS, ASTEROIDT, ASTEROIDL, UTIL/LIB X$ DELETE *.OBJ;*/NOCONFIRM X$ EXIT $ CALL UNPACK BUILD.COM;1 1126577192 $ v=f$verify(v) $ EXIT