home *** CD-ROM | disk | FTP | other *** search
AMOS Source Code | 1990-08-11 | 2.6 KB | 117 lines |
- Screen Close 0
- Screen Open 0,320,256,32,Lowres
- Flash Off
- Curs Off
- Palette $0,$FFF,$EEE,$DDD,$CCC,$CAA,$A77,$952,$741,$550,$380,$2A1,$1B1,$1F5,$1F4,$2F2,$4F0,$4F2,$4F4,$4E4,$6E3,$8E2,$AE1,$EE1,$FF1,$399,$14F,$2F,$C,$B,$A,$9
- Paper 0
- Cls
- Dim A(32,32)
- Repeat
- Input "Default landscape ruggedness (0-9) :";RUG
- Until RUG>0 or RUG<9
- For F=1 To 32
- For N=1 To 32
- A(F,N)=(32-F)-N*2+(Rnd(RUG))
- Next N
- Next F
- Global X,Y,MR,R,S,STX,STY,DEV,A()
- Do
- Cls
- Pen 9
- Centre "MAIN MENU"
- Print
- Print
- Pen 5
- Print " 1) Load landscape"
- Pen 6
- Print " 2) Save landscape"
- Pen 7
- Print " 3) Edit landscape"
- Pen 8
- Print " 4) View landscape"
- Repeat
- A$=Inkey$
- Until Val(A$)>=1 and Val(A$)<=4
- A=Val(A$)
- If A=3 Then ED
- If A=4 Then Cls : SCAPE
- Loop
- Procedure ED
- Cls
- For F=1 To 32
- For N=1 To 30
- Locate F-1,N-1
- Paper 31-A(N,F)
- If A(F,N)>31 Then Paper 1
- Print " ";
- Next N
- Next F
- X=0 : Y=0
- Do
- Locate Y,X
- Print "#"
- Repeat
- A$=Inkey$
- OX=X : OY=Y
- If A$="8" and X>0 Then X=X-1
- If A$="2" and X<29 Then X=X+1
- If A$="4" and Y>0 Then Y=Y-1
- If A$="6" and Y<31 Then Y=Y+1
- If A$="9" and A(X+1,Y+1)<30 Then A(X+1,Y+1)=A(X+1,Y+1)+1 : Paper A(X+1,Y+1)
- If A$="3" and A(X+1,Y+1)>0 Then A(X+1,Y+1)=A(X+1,Y+1)-1 : Paper A(X+1,Y+1)
- If A$="(" Then A(X+1,Y+1)=0
- If A$=")" Then A(X+1,Y+1)=8
- If A$="/" Then A(X+1,Y+1)=16
- If A$="*" Then A(X+1,Y+1)=24
- If A$="q" Then Paper 0 : Pop Proc
- Until A$<>""
- Locate Y,X
- Paper 31-A(X+1,Y+1) : Print " "
- Locate OY,OX
- Paper 31-A(OX+1,OY+1) : Print " "
- Loop
- End
- End Proc
- Procedure SCAPE
- X=2
- Y=2
- MR=100
- R=MR
- S=100
- STX=10
- STY=5
- DEV=-7
- Do
- CONSTRUCT
- Repeat
- A$=Inkey$
- FLAG=0
- If A$="2" and X<21 Then X=X+1 : FLAG=1
- If A$="8" and X>1 Then X=X-1 : FLAG=1
- If A$="4" and Y>1 Then Y=Y-1 : FLAG=1
- If A$="6" and Y<21 Then Y=Y+1 : FLAG=1
- If A$="q" Then Pop Proc
- MR=100 : R=MR : S=100
- Until FLAG=1
- Cls
- Loop
- End Proc
- Procedure CONSTRUCT
- Bell
- For XX=X To X+10
- For YY=Y To Y+10
- R=R+STX
- Ink 31-A(XX,YY)
- If A(XX,YY)>30 Then Ink 1
- If A(XX,YY)<1 Then Ink 31
- Plot R,S-(A(XX,YY)*3)
- MM=A(XX,YY+1)
- Draw R,S-(A(XX,YY)*3) To R+STX,S-(MM*3)
- MM=A(XX+1,YY)
- Draw R,S-(A(XX,YY)*3) To R+DEV,S-(MM*3)+STY
- Next YY
- MR=MR+DEV
- R=MR
- S=S+STY
- Next XX
- End Proc