···
+
03 Turn PIC 9 VALUE ZEROS.
+
02 PlayerMove PIC 99 VALUE ZEROS.
+
88 ValidInput VALUE 1 THRU 9.
+
02 Won PIC 9 VALUE ZERO.
+
01 Board OCCURS 9 TIMES.
+
02 State PIC X VALUE "N".
+
02 Score PIC 9 VALUE ZEROS.
+
01 TMP2 PIC 99 VALUE 0.
+
01 TMP3 PIC 99 VALUE 0.
+
01 TMP4 PIC 99 VALUE 0.
+
01 BoardHasBlanks PIC 9 VALUE 0.
+
DISPLAY "Welcome to Trey's Dev Shed Tic Tac Toe Extravaganza!".
+
MOVE 2 TO Score OF Board(1).
+
MOVE 7 TO Score OF Board(2).
+
MOVE 6 TO Score OF Board(3).
+
MOVE 9 TO Score OF Board(4).
+
MOVE 5 TO Score OF Board(5).
+
MOVE 1 TO Score OF Board(6).
+
Move 4 TO Score OF Board(7).
+
MOVE 3 TO Score OF Board(8).
+
MOVE 8 TO Score OF Board(9).
+
PERFORM UNTIL Player1Win OR Player2Win OR Stalemate
+
PERFORM VARYING TMP FROM 1 BY 1 UNTIL TMP > 3
+
DISPLAY "----------------"
+
DISPLAY "|" WITH NO ADVANCING
+
PERFORM VARYING TMP2 FROM 1 BY 1 UNTIL TMP2 > 3
+
COMPUTE TMP3 = (TMP * 3) + TMP2 - 3
+
IF State OF Board(TMP3) = "N" THEN
+
DISPLAY " " TMP3 " |" WITH NO ADVANCING
+
DISPLAY " " State OF Board(TMP3) " |"
+
DISPLAY "---------------"
+
PERFORM UNTIL ValidInput
+
IF Turn OF Player1 = 1 THEN
+
DISPLAY "Player 1 " WITH NO ADVANCING
+
DISPLAY "Player 2 " WITH NO ADVANCING
+
DISPLAY "make your move [1-9]: " WITH NO ADVANCING
+
IF State OF Board(PlayerMove) EQUAL "N"
+
Move "X" TO State OF Board(PlayerMove)
+
MOVE 0 TO Turn OF Player1
+
MOVE 1 TO Turn OF PLayer2
+
MOVE "O" TO State OF Board(PlayerMove)
+
MOVE 1 TO Turn OF Player1
+
MOVE 0 TO Turn OF Player2
+
DISPLAY "Invalid Move, Please Try Again"
+
DISPLAY "Invalid Move, Please Try Again"
+
MOVE 0 TO BoardHasBlanks
+
PERFORM VARYING TMP FROM 1 BY 1 UNTIL TMP = 9 OR
+
Player1Win OR Player2Win
+
IF State of Board(TMP) = "N" THEN
+
MOVE 1 TO BoardHasBlanks
+
PERFORM VARYING TMP2 FROM 1 BY 1 UNTIL TMP2 = 9 OR
+
Player1Win OR Player2Win
+
PERFORM VARYING TMP3 FROM 1 BY 1 UNTIL TMP3 = 9 OR
+
Player1Win OR Player2Win
+
IF TMP NOT EQUAL TMP2 AND TMP NOT EQUAL TMP3 AND
+
TMP2 NOT EQUAL TMP3 THEN
+
ADD Score OF Board(TMP) TO Score OF Board(TMP2)
+
ADD Score OF Board(TMP3) To TMP4
+
IF State OF Board(TMP) EQUAL "X" AND State
+
OF Board(TMP2) EQUAL "X"
+
AND STATE OF BOARD(TMP3) EQUAL "X" THEN
+
IF State OF Board(TMP) EQUAL "O" AND State
+
OF Board(TMP2) EQUAL "O" AND STATE
+
OF BOARD(TMP3) EQUAL "O" THEN
+
IF BoardHasBlanks = 0 THEN
+
WHEN Player1Win DISPLAY "CONGRATS PLAYER 1 Has Won!"
+
WHEN Player2Win DISPLAY "CONGRATS PLAYER 2 Has Won!"
+
WHEN Stalemate DISPLAY "No one won!"