program

Can you give me a sample program of tic tac toe-using pascal?
cherry6Asked:
Who is Participating?
 
shlomoyConnect With a Mentor Commented:
program tictactoe;                      {plays a tic-tac-toe}
        type
         boardtype = array[1..3, 1..3] of char;
        var
         board: boardtype;
         x, y, a, b, turn, player: integer;
        procedure writeboard (board: boardtype);
         var
          a, b: integer;
        begin
         for a := 1 to 3 do
          begin
           writeln('');
           for b := 1 to 3 do
            begin
             write(board[a, b], '  ');
            end;
          end;
        end;
        function checker (board: boardtype): integer;
         var
          a, b: integer;
        begin
         if (turn = 9) then
          checker := 1
         else
          begin
           for a := 1 to 3 do
            begin
             if ((board[a, 1] = board[a, 2]) and (board[a, 1] = board[a, 3]) and (board[a, 1] = 'X')) then
              begin
              checker := 2;
              end
             else if ((board[a, 1] = board[a, 2]) and (board[a, 1] = board[a, 3]) and (board[a, 1] = 'O')) then
              begin
              checker := 3;
              end
             else if ((board[1, a] = board[2, a]) and (board[1, a] = board[3, a]) and (board[1, a] = 'X')) then
              begin
              checker := 2;
              end
             else if ((board[1, a] = board[2, a]) and (board[1, a] = board[3, a]) and (board[1, a] = 'O')) then
              begin
              checker := 3;
              end
             else if ((board[1, 1] = 'X') and (board[1, 1] = board[2, 2]) and (board[1, 1] = board[3, 3])) then
              checker := 2
             else if ((board[1, 1] = 'O') and (board[1, 1] = board[2, 2]) and (board[1, 1] = board[3, 3])) then
              checker := 3
             else if ((board[1, 3] = 'X') and (board[1, 3] = board[2, 2]) and (board[1, 3] = board[3, 1])) then
              checker := 2
             else if ((board[1, 3] = 'O') and (board[1, 3] = board[2, 2]) and (board[1, 1] = board[3, 1])) then
              checker := 3
            end;
          end;
        end;
       begin
        for a := 1 to 3 do
         for b := 1 to 3 do
          board[a, b] := '*';
        turn := 0;
        repeat
         if (turn mod 2 = 0) then
          begin
           writeln('');
           writeln('Player 1, your turn.');
           player := 1;
          end
         else
          begin
           writeln('');
           writeln('Player2, your turn.');
           player := 2;
          end;
         repeat
          writeln('');
          writeln('What is the y-coordinate of your move, player ', player);
          readln(y);
          writeln('');
          writeln('What is the x-coordinate of your move?');
          readln(x);
         until ((board[y, x] <> 'X') and (board[y, x] <> 'O'));
         case player of
          1:
           begin
            board[y, x] := 'X';
           end;
          2:
           begin
            board[y, x] := 'O';
           end;
         end;
         writeboard(board);
         turn := turn + 1;
        until ((checker(board) = 1) or (checker(board) = 2) or (checker(board) = 3));
        case checker(board) of
         2:
          begin
           writeln('');
           writeln('Player 1 won.');
          end;
         1:
          begin
           writeln('');
           writeln('Draw.');
          end;
         3:
          begin
           writeln('');
           writeln('Player 2 won.');
          end;
        end;
       end.


       see: http://www.geocities.com/SiliconValley/Heights/4157/johntictactoe.html
0
 
My name is MudSystems EngineerCommented:
is this Q, a homework???
0
 
shlomoyCommented:
I hope it isn't.
Maybe it's an excerise in a selfstudy book...

0
 
shlomoyCommented:
Thanks.
0
All Courses

From novice to tech pro — start learning today.