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

# tictactoe

can you give me an example program code of tictactoe using pascal?
0
maria1
• 5
• 3
• 2
• +3
1 Solution

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('');
player := 1;
end
else
begin
writeln('');
player := 2;
end;
repeat
writeln('');
writeln('What is the y-coordinate of your move, player ', player);
writeln('');
writeln('What is the x-coordinate of your move?');
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

Commented:
0

Author Commented:
i would like to know if this only a procedure. and if it is, can u provide me the whole program?
0

Commented:
this is the whole program
0

Commented:
... Which reminds me that I made once 4x4x4 tictactoe
if you are interested (but most of the code is playing with graphics)

Fuzzy
0

Commented:
I am working on a 4x4x4 tictactoe for Delphi right now (1 player).  Didn't even start with the graphics yet.
0

Commented:
maria1, are you satisfied?

0

Commented:
Will somebody be so kind as to explain what is tictactoe to me? Thanks.
0

Commented:
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

Commented:
a.k.a. noughts-and-crosses
0

Commented:
Thank you, scrapdog.
0

Commented:
Thank you, scrapdog.
0

Commented:
maria1?
0

## Featured Post

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