/* TicTacSpot v1.0 © 1993 PSR Software
   $VER: TicTacSpot v1.0 (09.10.93)
*/

TEMPDIR = 'T:'

Address Spot
Options Results

'IsMessages'
If RC>0 Then Do
   'RequestNotify PROMPT "Use only from message window"'
   Exit
   End

'SaveAscii TO "'TEMPDIR'TicTacSpot.temp" OVERWRITE NOHEADER NOORIGIN NOKLUDGES'

If ~Open('Inp',TEMPDIR'TicTacSpot.temp','r') Then Do
   'RequestNotify PROMPT "Cannot open temporary file:'TEMPDIR'TicTacSpot.temp"'
   Exit
   End

Do y=1 To 4
   Do x=1 To 3
      POS.x.y=' '
   End
End

Do Until Pos('* TicTacSpot',LINE)>0
   If Eof('Inp') Then Do
      'RequestNotify PROMPT "Message contains no TicTacSpot data!"'
      'RequestResponse PROMPT "Start new game?" GADGETS "_Yes|_No"'
      If RC=1 Then Do
        Call Close('Inp')
        Signal PlayMove
      End
      Exit
   End
   If Exists('Ram:Plop') then Exit
   LINE=ReadLn('Inp')
End

Call Readln('Inp')
LINE.1=Readln('Inp')
Call Readln('Inp')
Call Readln('Inp')
LINE.2=Readln('Inp')
Call Readln('Inp')
Call Readln('Inp')
LINE.3=Readln('Inp')

Call Close('Inp')

Do y=1 To 3
  Parse var LINE.y POS1' | 'POS2' | 'POS3
  POS1=Right(POS1,2)
  POS2=Left(POS2,2)
  POS3=Left(POS3,2)
  If POS1='/\' Then POS.1.y='o'
  If POS1='\/' Then POS.1.y='x'
  If POS2='/\' Then POS.2.y='o'
  If POS2='\/' Then POS.2.y='x'
  If POS3='/\' Then POS.3.y='o'
  If POS3='\/' Then POS.3.y='x'
End

PlayMove:

'RequestResponse TITLE "Piece" PROMPT "Are you O or X?" GADGETS " _O | _X "'
If RC=0 Then PIECE='x'
If RC=1 Then PIECE='o'

DONE=0

Do Until DONE=1
  BOARD=POS.1.1 || '|' || POS.2.1 || '|' || POS.3.1 || '0d'x  || POS.1.2 || '[' || POS.2.2 || ']' || POS.3.2 || '0d'x || POS.1.3 || '|' || POS.2.3 || '|' || POS.3.3
  'RequestResponse TITLE "Top Row" PROMPT "'board'" GADGETS "t_L|t_M|t_R|_Next|_Cancel"'
  If RC=0 Then Exit
  If RC=1 Then If POS.1.1=' ' Then Do
    DONE=1
    POS.1.1=PIECE
  End
  IF RC=2 Then If POS.2.1=' ' Then Do
    DONE=1
    POS.2.1=PIECE
  End
  If RC=3 Then If POS.3.1=' ' Then Do
    DONE=1
    POS.3.1=PIECE
  End
  If RC=4 Then Do Until DONE=1|RC=4
    'RequestResponse TITLE "Middle Row" PROMPT "'board'" GADGETS "m_L|m_M|m_R|_Next|_Cancel"'
    If RC=0 Then Exit
    If RC=1 Then If POS.1.2=' ' Then Do
      DONE=1
      POS.1.2=PIECE
    End
    If RC=2 Then If POS.2.2=' ' Then Do
      DONE=1
      POS.2.2=PIECE
    End
    If RC=3 Then If POS.3.2=' ' Then Do
      DONE=1
      POS.3.2=PIECE
    End
    If RC=4 Then Do Until DONE=1|RC=4
      'RequestResponse TITLE "Bottom Row" PROMPT "'board'" GADGETS "b_L|b_M|b_R|_Next|_Cancel"'
      If RC=0 Then Exit
      If RC=1 Then If POS.1.3=' ' Then Do
        DONE=1
        POS.1.3=PIECE
      End
      If RC=2 Then If POS.2.3=' ' Then Do
        DONE=1
        POS.2.3=PIECE
      End
      If RC=3 Then If POS.3.3=' ' Then Do
        DONE=1
        POS.3.3=PIECE
      End
    End
  End
End

Call Open('Oup',TEMPDIR'TicTacSpot.temp','w')

LINE1=' >  '
LINE2=' >  '
LINE3=' >  '
LINE4=' >  '
LINE5=' >  '
LINE6=' >  '
If POS.1.1='x' Then Do
  LINE1=LINE1||'\/ |'
  LINE2=LINE2||'/\ |'
End
If POS.1.1='o' Then Do
  LINE1=LINE1||'/\ |'
  LINE2=LINE2||'\/ |'
End
If POS.1.1=' ' Then Do
  LINE1=LINE1||'   |'
  LINE2=LINE2||'   |'
End
If POS.2.1='x' Then Do
  LINE1=LINE1||' \/ |'
  LINE2=LINE2||' /\ |'
End
If POS.2.1='o' Then Do
  LINE1=LINE1||' /\ |'
  LINE2=LINE2||' \/ |'
End
If POS.2.1=' ' Then Do
  LINE1=LINE1||'    |'
  LINE2=LINE2||'    |'
End
If POS.3.1='x' Then Do
  LINE1=LINE1||' \/'
  LINE2=LINE2||' /\'
End
If POS.3.1='o' Then Do
  LINE1=LINE1||' /\'
  LINE2=LINE2||' \/'
End

If POS.1.2='x' Then Do
  LINE3=LINE3||'\/ |'
  LINE4=LINE4||'/\ |'
End
If POS.1.2='o' Then Do
  LINE3=LINE3||'/\ |'
  LINE4=LINE4||'\/ |'
End
If POS.1.2=' ' Then Do
  LINE3=LINE3||'   |'
  LINE4=LINE4||'   |'
End
If POS.2.2='x' Then Do
  LINE3=LINE3||' \/ |'
  LINE4=LINE4||' /\ |'
End
If POS.2.2='o' Then Do
  LINE3=LINE3||' /\ |'
  LINE4=LINE4||' \/ |'
End
If POS.2.2=' ' Then Do
  LINE3=LINE3||'    |'
  LINE4=LINE4||'    |'
End
If POS.3.2='x' Then Do
  LINE3=LINE3||' \/'
  LINE4=LINE4||' /\'
End
If POS.3.2='o' Then Do
  LINE3=LINE3||' /\'
  LINE4=LINE4||' \/'
End
If POS.1.3='x' Then Do
  LINE5=LINE5||'\/ |'
  LINE6=LINE6||'/\ |'
End
If POS.1.3='o' Then Do
  LINE5=LINE5||'/\ |'
  LINE6=LINE6||'\/ |'
End
If POS.1.3=' ' Then Do
  LINE5=LINE5||'   |'
  LINE6=LINE6||'   |'
End
If POS.2.3='x' Then Do
  LINE5=LINE5||' \/ |'
  LINE6=LINE6||' /\ |'
End
If POS.2.3='o' Then Do
  LINE5=LINE5||' /\ |'
  LINE6=LINE6||' \/ |'
End
If POS.2.3=' ' Then Do
  LINE5=LINE5||'    |'
  LINE6=LINE6||'    |'
End
If POS.3.3='x' Then Do
  LINE5=LINE5||' \/'
  LINE6=LINE6||' /\'
End
If POS.3.3='o' Then Do
  LINE5=LINE5||' /\'
  LINE6=LINE6||' \/'
End

  Call Writeln('Oup',' ')
  Call Writeln('Oup',' > * TicTacSpot')
  Call Writeln('Oup',' >')
  Call Writeln('Oup',LINE1)
  Call Writeln('Oup',LINE2)
  Call Writeln('Oup',' > ----+----+----')
  Call Writeln('Oup',LINE3)
  Call Writeln('Oup',LINE4)
  Call Writeln('Oup',' > ----+----+----')
  Call Writeln('Oup',LINE5)
  Call Writeln('Oup',LINE6)
  Call Writeln('Oup',' ')  

Call Close('Oup')

'GetFrom'
FROM=Result

'RequestResponse PROMPT "Edit message?" GADGETS "_Yes|_No"'
If RC=1 Then 'Write TO "'FROM'" SUBJECT "TicTacSpot" FILE "'TEMPDIR'TicTacSpot.temp" NOGUI'
If RC=0 Then 'Write TO "'FROM'" SUBJECT "TicTacSpot" FILE "'TEMPDIR'TicTacSpot.temp" NOEDIT NOGUI'

/*
 > * TicTacSpot
 >
 >  \/ | /\ | \/
 >  /\ | \/ | /\
 > ----+----+----
 >  \/ | /\ | \/
 >  /\ | \/ | /\
 > ----+----+----
 >  \/ | /\ | \/
 >  /\ | \/ | /\

*/

