diff --git a/src/bh/ttt.logo b/src/bh/ttt.logo index 6a3be211..a096f003 100644 --- a/src/bh/ttt.logo +++ b/src/bh/ttt.logo @@ -1,6 +1,48 @@ ;;; Tic-Tac-Toe Game written by Dr. Brian Harvey ;;; Adapted to PDP-10/ITS LLOGO by Alexey Slyusar +;; OVERALL ORCHESTRATION + +TO TTT +10 LOCAL 'ME +20 LOCAL 'YOU +30 LOCAL 'POSITION +40 DRAW.BOARD +50 INIT +60 IF ALREADY.WONP :ME [PRINT [I WIN!] STOP] +70 IF TIEDP [PRINT [TIE GAME!] STOP] +80 YOUPLAY GETMOVE +90 IF ALREADY.WONP :YOU [PRINT [YOU WIN!] STOP] +100 IF TIEDP [PRINT [TIE GAME!] STOP] +110 MEPLAY GETMOVE +END + +TO MAKE.TRIPLES +10 OP MAP "SUBSTITUTE.TRIPLE [123 456 789 147 258 369 159 357] +END + +TO SUBSTITUTE.TRIPLE :COMBINATION +10 OP MAP [ITEM ? :POSITION] :COMBINATION +END + +TO ALREADY.WONP :PLAYER +10 OP MEMBERP (WORD :PLAYER :PLAYER :PLAYER) (MAKE.TRIPLES) +END + +TO TIEDP +10 OP NOT REDUCE 'OR MAP.SE 'NUMBERP LISTARRAY 'POSITION +END + +TO YOUPLAY :SQUARE +10 DRAW :YOU :SQUARE +20 SETITEM :SQUARE :POSITION :YOU +END + +TO MEPLAY :SQUARE +10 DRAW :ME :SQUARE +20 SETITEM :SQUARE :POSITION :YOU +END + ;;COMPUTE PROGRAM'S MOVES TO PICKMOVE :TRIPLES