javavi
 Guru
 Joined: 01/10/2023 Location: UkrainePosts: 545 |
| Posted: 07:28pm 07 Apr 2025 |
|
|
|
Maze-Clock 

MODE 1 Const X.Res=MM.HRES,Y.Res=MM.VRES Const Font.Addr=MM.Info(FONT ADDRESS 1)+4 Dim string CH$ LENGTH 1 Dim string ST$ LENGTH 8 Dim integer X.Dir=1,Y.Dir=1 Dim integer X.Pos=5,Y.Pos=15 Dim integer n,FC,BC Dim CM(15)=(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15) Colour Map CM(),CM() '================================================= Font 9 Print @(0,0); For n=1 To (X.Res\8)*(Y.Res\8) Print Chr$(50+Int(Rnd*3)); Next
Do If FC=0 Then FC=Int(Rnd*15)+1 TILE 0,0,CM(FC),0,80,40 If Cint(Rnd) Then CH$="1" Else CH$="0" EndIf ST$=Time$ PrintTime X.Pos,Y.Pos,ST$,CH$ Pause 250 PrintTime X.Pos,Y.Pos,ST$,"C" Inc X.Pos,X.Dir Inc Y.Pos,Y.Dir If X.Pos<0 Then X.Dir=1:FC=0 If X.Pos+64>80 Then X.Dir=-1:FC=0 If Y.Pos<0 Then Y.Dir=1:FC=0 If Y.Pos+11>60 Then Y.Dir=-1:FC=0 Loop While Inkey$="" End '-------------------------------------- Sub PrintTime(X,Y,TXT$,CH$) Local string T$ LENGTH 8 Local integer Ti,Xi,FA,FS,FD,FH,FW X=X*8:Y=Y*8 Print @(X,Y); For FH=0 To 10 XI=X For Ti=1 To Len(TXT$) FS=Asc(Mid$(TXT$,Ti,1))-32 FA=Font.Addr+FS*12+FH FD=PEEK(BYTE FA) T$=Bin$(FD,8) For FW=1 To 8 If CH$="C" Then If Mid$(T$,FW,1)="1" Then Print @(Xi,Y)Chr$(50+Int(Rnd*3)); Else If Mid$(T$,FW,1)="1" Then Print @(Xi,Y)CH$; EndIf Inc Xi,8 Next Next Inc Y,8 Print @(X,Y); Next End Sub '-------------------------------------- DefineFont 9 05300808 00000000 00000000 FFFFFFFF FFFFFFFF 08080808 08080808 80402010 08040201 01020408 10204080 End DefineFont |