home *** CD-ROM | disk | FTP | other *** search
/ Gold Fish 2 / goldfish_vol2_cd1.bin / files / comm / fido / spot / rexx / tictacspot.spot < prev    next >
Text File  |  1993-10-09  |  6KB  |  267 lines

  1. /* TicTacSpot v1.0 © 1993 PSR Software
  2.    $VER: TicTacSpot v1.0 (09.10.93)
  3. */
  4.  
  5. TEMPDIR = 'T:'
  6.  
  7. Address Spot
  8. Options Results
  9.  
  10. 'IsMessages'
  11. If RC>0 Then Do
  12.    'RequestNotify PROMPT "Use only from message window"'
  13.    Exit
  14.    End
  15.  
  16. 'SaveAscii TO "'TEMPDIR'TicTacSpot.temp" OVERWRITE NOHEADER NOORIGIN NOKLUDGES'
  17.  
  18. If ~Open('Inp',TEMPDIR'TicTacSpot.temp','r') Then Do
  19.    'RequestNotify PROMPT "Cannot open temporary file:'TEMPDIR'TicTacSpot.temp"'
  20.    Exit
  21.    End
  22.  
  23. Do y=1 To 4
  24.    Do x=1 To 3
  25.       POS.x.y=' '
  26.    End
  27. End
  28.  
  29. Do Until Pos('* TicTacSpot',LINE)>0
  30.    If Eof('Inp') Then Do
  31.       'RequestNotify PROMPT "Message contains no TicTacSpot data!"'
  32.       'RequestResponse PROMPT "Start new game?" GADGETS "_Yes|_No"'
  33.       If RC=1 Then Do
  34.         Call Close('Inp')
  35.         Signal PlayMove
  36.       End
  37.       Exit
  38.    End
  39.    If Exists('Ram:Plop') then Exit
  40.    LINE=ReadLn('Inp')
  41. End
  42.  
  43. Call Readln('Inp')
  44. LINE.1=Readln('Inp')
  45. Call Readln('Inp')
  46. Call Readln('Inp')
  47. LINE.2=Readln('Inp')
  48. Call Readln('Inp')
  49. Call Readln('Inp')
  50. LINE.3=Readln('Inp')
  51.  
  52. Call Close('Inp')
  53.  
  54. Do y=1 To 3
  55.   Parse var LINE.y POS1' | 'POS2' | 'POS3
  56.   POS1=Right(POS1,2)
  57.   POS2=Left(POS2,2)
  58.   POS3=Left(POS3,2)
  59.   If POS1='/\' Then POS.1.y='o'
  60.   If POS1='\/' Then POS.1.y='x'
  61.   If POS2='/\' Then POS.2.y='o'
  62.   If POS2='\/' Then POS.2.y='x'
  63.   If POS3='/\' Then POS.3.y='o'
  64.   If POS3='\/' Then POS.3.y='x'
  65. End
  66.  
  67. PlayMove:
  68.  
  69. 'RequestResponse TITLE "Piece" PROMPT "Are you O or X?" GADGETS " _O | _X "'
  70. If RC=0 Then PIECE='x'
  71. If RC=1 Then PIECE='o'
  72.  
  73. DONE=0
  74.  
  75. Do Until DONE=1
  76.   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
  77.   'RequestResponse TITLE "Top Row" PROMPT "'board'" GADGETS "t_L|t_M|t_R|_Next|_Cancel"'
  78.   If RC=0 Then Exit
  79.   If RC=1 Then If POS.1.1=' ' Then Do
  80.     DONE=1
  81.     POS.1.1=PIECE
  82.   End
  83.   IF RC=2 Then If POS.2.1=' ' Then Do
  84.     DONE=1
  85.     POS.2.1=PIECE
  86.   End
  87.   If RC=3 Then If POS.3.1=' ' Then Do
  88.     DONE=1
  89.     POS.3.1=PIECE
  90.   End
  91.   If RC=4 Then Do Until DONE=1|RC=4
  92.     'RequestResponse TITLE "Middle Row" PROMPT "'board'" GADGETS "m_L|m_M|m_R|_Next|_Cancel"'
  93.     If RC=0 Then Exit
  94.     If RC=1 Then If POS.1.2=' ' Then Do
  95.       DONE=1
  96.       POS.1.2=PIECE
  97.     End
  98.     If RC=2 Then If POS.2.2=' ' Then Do
  99.       DONE=1
  100.       POS.2.2=PIECE
  101.     End
  102.     If RC=3 Then If POS.3.2=' ' Then Do
  103.       DONE=1
  104.       POS.3.2=PIECE
  105.     End
  106.     If RC=4 Then Do Until DONE=1|RC=4
  107.       'RequestResponse TITLE "Bottom Row" PROMPT "'board'" GADGETS "b_L|b_M|b_R|_Next|_Cancel"'
  108.       If RC=0 Then Exit
  109.       If RC=1 Then If POS.1.3=' ' Then Do
  110.         DONE=1
  111.         POS.1.3=PIECE
  112.       End
  113.       If RC=2 Then If POS.2.3=' ' Then Do
  114.         DONE=1
  115.         POS.2.3=PIECE
  116.       End
  117.       If RC=3 Then If POS.3.3=' ' Then Do
  118.         DONE=1
  119.         POS.3.3=PIECE
  120.       End
  121.     End
  122.   End
  123. End
  124.  
  125. Call Open('Oup',TEMPDIR'TicTacSpot.temp','w')
  126.  
  127. LINE1=' >  '
  128. LINE2=' >  '
  129. LINE3=' >  '
  130. LINE4=' >  '
  131. LINE5=' >  '
  132. LINE6=' >  '
  133. If POS.1.1='x' Then Do
  134.   LINE1=LINE1||'\/ |'
  135.   LINE2=LINE2||'/\ |'
  136. End
  137. If POS.1.1='o' Then Do
  138.   LINE1=LINE1||'/\ |'
  139.   LINE2=LINE2||'\/ |'
  140. End
  141. If POS.1.1=' ' Then Do
  142.   LINE1=LINE1||'   |'
  143.   LINE2=LINE2||'   |'
  144. End
  145. If POS.2.1='x' Then Do
  146.   LINE1=LINE1||' \/ |'
  147.   LINE2=LINE2||' /\ |'
  148. End
  149. If POS.2.1='o' Then Do
  150.   LINE1=LINE1||' /\ |'
  151.   LINE2=LINE2||' \/ |'
  152. End
  153. If POS.2.1=' ' Then Do
  154.   LINE1=LINE1||'    |'
  155.   LINE2=LINE2||'    |'
  156. End
  157. If POS.3.1='x' Then Do
  158.   LINE1=LINE1||' \/'
  159.   LINE2=LINE2||' /\'
  160. End
  161. If POS.3.1='o' Then Do
  162.   LINE1=LINE1||' /\'
  163.   LINE2=LINE2||' \/'
  164. End
  165.  
  166. If POS.1.2='x' Then Do
  167.   LINE3=LINE3||'\/ |'
  168.   LINE4=LINE4||'/\ |'
  169. End
  170. If POS.1.2='o' Then Do
  171.   LINE3=LINE3||'/\ |'
  172.   LINE4=LINE4||'\/ |'
  173. End
  174. If POS.1.2=' ' Then Do
  175.   LINE3=LINE3||'   |'
  176.   LINE4=LINE4||'   |'
  177. End
  178. If POS.2.2='x' Then Do
  179.   LINE3=LINE3||' \/ |'
  180.   LINE4=LINE4||' /\ |'
  181. End
  182. If POS.2.2='o' Then Do
  183.   LINE3=LINE3||' /\ |'
  184.   LINE4=LINE4||' \/ |'
  185. End
  186. If POS.2.2=' ' Then Do
  187.   LINE3=LINE3||'    |'
  188.   LINE4=LINE4||'    |'
  189. End
  190. If POS.3.2='x' Then Do
  191.   LINE3=LINE3||' \/'
  192.   LINE4=LINE4||' /\'
  193. End
  194. If POS.3.2='o' Then Do
  195.   LINE3=LINE3||' /\'
  196.   LINE4=LINE4||' \/'
  197. End
  198. If POS.1.3='x' Then Do
  199.   LINE5=LINE5||'\/ |'
  200.   LINE6=LINE6||'/\ |'
  201. End
  202. If POS.1.3='o' Then Do
  203.   LINE5=LINE5||'/\ |'
  204.   LINE6=LINE6||'\/ |'
  205. End
  206. If POS.1.3=' ' Then Do
  207.   LINE5=LINE5||'   |'
  208.   LINE6=LINE6||'   |'
  209. End
  210. If POS.2.3='x' Then Do
  211.   LINE5=LINE5||' \/ |'
  212.   LINE6=LINE6||' /\ |'
  213. End
  214. If POS.2.3='o' Then Do
  215.   LINE5=LINE5||' /\ |'
  216.   LINE6=LINE6||' \/ |'
  217. End
  218. If POS.2.3=' ' Then Do
  219.   LINE5=LINE5||'    |'
  220.   LINE6=LINE6||'    |'
  221. End
  222. If POS.3.3='x' Then Do
  223.   LINE5=LINE5||' \/'
  224.   LINE6=LINE6||' /\'
  225. End
  226. If POS.3.3='o' Then Do
  227.   LINE5=LINE5||' /\'
  228.   LINE6=LINE6||' \/'
  229. End
  230.  
  231.   Call Writeln('Oup',' ')
  232.   Call Writeln('Oup',' > * TicTacSpot')
  233.   Call Writeln('Oup',' >')
  234.   Call Writeln('Oup',LINE1)
  235.   Call Writeln('Oup',LINE2)
  236.   Call Writeln('Oup',' > ----+----+----')
  237.   Call Writeln('Oup',LINE3)
  238.   Call Writeln('Oup',LINE4)
  239.   Call Writeln('Oup',' > ----+----+----')
  240.   Call Writeln('Oup',LINE5)
  241.   Call Writeln('Oup',LINE6)
  242.   Call Writeln('Oup',' ')  
  243.  
  244. Call Close('Oup')
  245.  
  246. 'GetFrom'
  247. FROM=Result
  248.  
  249. 'RequestResponse PROMPT "Edit message?" GADGETS "_Yes|_No"'
  250. If RC=1 Then 'Write TO "'FROM'" SUBJECT "TicTacSpot" FILE "'TEMPDIR'TicTacSpot.temp" NOGUI'
  251. If RC=0 Then 'Write TO "'FROM'" SUBJECT "TicTacSpot" FILE "'TEMPDIR'TicTacSpot.temp" NOEDIT NOGUI'
  252.  
  253. /*
  254.  > * TicTacSpot
  255.  >
  256.  >  \/ | /\ | \/
  257.  >  /\ | \/ | /\
  258.  > ----+----+----
  259.  >  \/ | /\ | \/
  260.  >  /\ | \/ | /\
  261.  > ----+----+----
  262.  >  \/ | /\ | \/
  263.  >  /\ | \/ | /\
  264.  
  265. */
  266.  
  267.