• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 151
  • Last Modified:

tictactoe

can you give me an example program code of tictactoe using pascal?
0
maria1
Asked:
maria1
  • 5
  • 3
  • 2
  • +3
1 Solution
 
shlomoyCommented:
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
 
shlomoyCommented:
0
 
maria1Author Commented:
i would like to know if this only a procedure. and if it is, can u provide me the whole program?
0
Get your problem seen by more experts

Be seen. Boost your question’s priority for more expert views and faster solutions

 
shlomoyCommented:
this is the whole program
0
 
FuzzyLogicCommented:
... Which reminds me that I made once 4x4x4 tictactoe
if you are interested (but most of the code is playing with graphics)

Fuzzy
0
 
scrapdogCommented:
I am working on a 4x4x4 tictactoe for Delphi right now (1 player).  Didn't even start with the graphics yet.
0
 
shlomoyCommented:
maria1, are you satisfied?

0
 
albertleeCommented:
Will somebody be so kind as to explain what is tictactoe to me? Thanks.
0
 
scrapdogCommented:
it is a 3x3 board...one player is X, the other is O...players take turn making their marks in the squares...first one with three in a row wins...hopefully this is not a trick question =)
0
 
ozoCommented:
a.k.a. noughts-and-crosses
0
 
albertleeCommented:
Thank you, scrapdog.
0
 
albertleeCommented:
Thank you, scrapdog.
0
 
shlomoyCommented:
maria1?
0

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

  • 5
  • 3
  • 2
  • +3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now