GFA Basic LOVEPOPA's UNIVERSE
of FREE Atari source listings !!
PEER.BAS

'
' 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

- MAIL TO ME -

Web design by PKF - 2001 -
Hosted by www.Geocities.ws

1