Lbl ME
Menu("MINESWEEPER V1.0 ","PLAY",PL,"CONTROLS",IF,"ABOUT",AB)
Lbl AB
ClrHome
Output(1,1,"MINESWEEPER V1.0 BY BIL-JOODUSSTUDIOS "
Pause
ClrHome
Goto ME
Lbl IF
ClrHome
Output(1,1,"CONTROLS 1/3HOW TO PLA TO CREATE A BOARD USE THE ARROW KEYS TO CHANGE THE SIZE PRESS 2nd TO SWITCH BETWEEN EDITING SIZE AND MINES WHEN EDITING MINES USE LEFT AND RIGHT TO ADD AND SUBTRACT MINES HOLD TO ADD OR SUBTRACT FASTER "
Pause
Output(1,1,"CONTROLS 2/3TO PLAY THE GAME PRESS ENTER TO START AND USE THE ARROW KEYS TO MOVE IT'S KINDA SLOW YOUR POSITION IS PORTRAYED BY A 'X' PRESS ENTER TO UNCOVER A TILE IF YOU LAND ON A MINE YOU LOSE. TIME IS UP TOP FOR TIMING YOUR ROUND "
Pause
Output(1,1,"CONTROLS 3/3MINSWEEPER'S RULES THE GRID IS MADE OF TILES AND UNDER SOME ARE MINES YOU MUST NOT UNCOVER THEM HOW? WHEN YOU UNCOVER A NUMBER (OR SPACE) APPEARS THAT TELLS YOU HOW MANY MINES ARE AROUD IT "
Pause
ClrHome
Goto ME
Lbl PL
ClrHome
5→M
5→A
12→B
1→Q
1→U
Repeat K=105
Output(A-1,B," "
Output(A+1,B," "
Output(A-1,1," "
Output(1,B-1," * "
Output(1,1,"*"
Output(A,B-1," * "
Output(A,1,"*"
Output(A+1,1," "
getKey→K
Q*(K≠21)+((K=21)*not(Q))→Q
B+((K=26)-(K=24))*Q→B
B-((B=25)-(B=1))*Q→B
A+((K=34)-(K=25))*Q→A
A-((A=9)-(A=1))*Q→A
Output(10,1,M
Output(10,2+(M≥10)+(M≥100),"/"
iPart((A*B)*(2/3))→N
Output(10,4+(N≥10)+(N≥100)+(M≥10)+(M≥100)," "
Output(10,3+(M≥10)+(M≥100),N
iPart(M*(1-((M>N)*.1)))→M
M+((K=26)-(K=24))*U*not(Q)→M
M-((M>N))*U*not(Q)→M
M+((M≤0))*U*not(Q)→M
iPart(U+((10-U)/2))*((K=26) or (K=24))*not(Q)→U
iPart(U*.7)→U
U+(U=0)→U
End
ClrHome
Output(1,1,"GENERATING FIELD"
randM(A+2,B+2)*0→[A]
For(θ,1,A+2,1
For(Z,1,B+2,1
10→[A](θ,Z)
End
End
ClrHome
Output(1,1,"GENERATING MINES"
Output(4,1,M
Output(3,1,sub("---",1,1+(M≥10)+(M≥100)
0→U
Lbl 0
While U<M
randInt(2,A+1)→V
randInt(2,B+1)→W
Output(2,1,U
For(θ,1,([A](V,W)=11)
Goto 0
End
11→[A](V,W)
U+1→U
End
ClrHome
" 12345678 .."→Str1
For(θ,2,A+1,1
For(Z,2,B+1,1
Output(θ,Z,"."
End
End
checkTmr(0)→Q
A*B-M→T
1→C
1→D
Lbl 00
Output(1,24," "
Output(1,24+(T≤99)+(T≤9),T
Repeat K=105
iPart((checkTmr(0)-Q)/60)→P
Output(1,1,P
Output(1,2+(P≥10)+(P≥100)+(P≥1000),":"
Output(1,3+(P≥10)+(P≥100)+(P≥1000)+(((checkTmr(0)-Q)-(P*60))≤9),(checkTmr(0)-Q)-(P*60)
Output(1,3+(P≥10)+(P≥100)+(P≥1000)+(((checkTmr(0)-Q)-(P*60))>9)*5,sub(" 0",1+(((checkTmr(0)-Q)-(P*60))≤9),1
Output(C+1,D+1,"X"
getKey→K
Output(C+1,D+1,sub(Str1,[A](C+1,D+1)+1,1)
C+(K=34)-(K=25)→C
C+(C=0)-(C=A+1)→C
D+(K=26)-(K=24)→D
D+(D=0)-(D=B+1)→D
End
For(θ,1,([A](C+1,D+1)=11)
Output(1,8,"GAME OVER"
" 123456789.X"→Str1
For(Y,2,A+1,1
For(Z,2,B+1,1
Output(Y,Z,sub(Str1,[A](Y,Z)+1,1)
End
End
Pause
Stop
End
For(S,1,([A](C+1,D+1)=10)
0→O
For(Z,C,C+2,1
For(Y,D,D+2,1
O+([A](Z,Y)=11)→O
End
End
O→[A](C+1,D+1)
T-1→T
For(θ,1,(T=0),1
Output(C+1,D+1,sub(Str1,[A](C+1,D+1)+1,1)
Output(1,8,"YOU WIN"
Pause
Stop
End
End
Goto 00