|
'
' PEER.BAS
' 1/7/94
'
K=9 ! square size 5 < K < 9
'
Print " PEER - (C) 1/7/94, by PKF "
Dim T(K-1,K-1)
D=16*10+8
E=16*5+8
C=16*2
For A=0 To K
Line A*C+D,E,A*C+D,K*C+E
Next A
For B=0 To K
Line D,B*C+E,K*C+D,B*C+E
Next B
N=1
X%=Rnd(K)
X%=Random(K)
Y%=Rnd(K)
Y%=Random(K)
T(X%,Y%)=N
Print At(X%*4+23,Y%*2+7);" 1"
For N=2 To K^2
D$=""
If X%+3-1
If T(X%-3,Y%)=0
D$=D$+"3"
Else
D$=D$+"0"
Endif
Else
D$=D$+"0"
Endif
If Y%-3>-1
If T(X%,Y%-3)=0
D$=D$+"4"
Else
D$=D$+"0"
Endif
Else
D$=D$+"0"
Endif
If X%+2-1
If T(X%+2,Y%-2)=0
D$=D$+"6"
Else
D$=D$+"0"
Endif
Else
D$=D$+"0"
Endif
If X%-2>-1 And Y%+2-1 And Y%-2>-1
If T(X%-2,Y%-2)=0
D$=D$+"8"
Else
D$=D$+"0"
Endif
Else
D$=D$+"0"
Endif
If D$="00000000"
Print At(1,3);" Game over after ";N-1;" moves. "
O=1
N=K^2
Else
Repeat
W=Random(8)+1
E$=Str$(W)
Until Instr(D$,E$)
If W=1
X%=X%+3
Endif
If W=2
Y%=Y%+3
Endif
If W=3
X%=X%-3
Endif
If W=4
Y%=Y%-3
Endif
If W=5
X%=X%+2
Y%=Y%+2
Endif
If W=6
X%=X%+2
Y%=Y%-2
Endif
If W=7
X%=X%-2
Y%=Y%+2
Endif
If W=8
X%=X%-2
Y%=Y%-2
Endif
T(X%,Y%)=N
If N<10
A$=" "
Else
A$=""
Endif
Print At(X%*4+23,Y%*2+7);A$+Str$(N)
Endif
Next N
If O=0
Alert 3,"Square solved!|Do you wanna save it?",0,"Ok|Cancel",Z
If Z=1
Fileselect "\*.SCH","",G$
If Len(G$)
Open "o",#1,G$
For A=0 To K-1
For B=0 To K-1
Print #1,T(A,B)
Next B
Next A
Close
Endif
Endif
Endif
Print At(1,5);"Another game (Y/n)?"
Z=Inp(2)
If Chr$(Z)<>"n" And Chr$(Z)<>"N"
Run
Endif
End
|