Files
basic-computer-games/89_Tic-Tac-Toe/pascal/tictactoe1.pas
Martin Thoma e64fb6795c MAINT: Apply pre-commit
Remove byte-order-marker pre-commit check as there would be
many adjustments necessary
2022-03-05 09:29:23 +01:00

104 lines
2.1 KiB
ObjectPascal

program tictactoe1;
var
a, b, c, d, e: integer;
p, q, r, s: integer;
procedure computerMoves(m: integer);
begin
write('COMPUTER MOVES ');
writeln(m);
end;
function readYourMove() : integer;
var number: integer;
begin
write('YOUR MOVE?');
readln(number);
readYourMove := number;
end;
function move(number: integer): integer;
begin
move := number - 8 * trunc((number - 1) / 8);
end;
function padLeft(m: string; n: integer): string;
var tmp: string;
begin
tmp := '';
repeat
tmp := tmp + ' ';
n := n - 1;
until n = 0;
tmp := tmp + m;
padLeft := tmp;
end;
begin
writeln(padLeft('TIC TAC TOE', 30));
writeln(padLeft('CREATIVE COMPUTING MORRISTOWN, NEW JERSEY', 15));
writeln('');
writeln('');
writeln('');
writeln('THE GAME BOARD IS NUMBERED:');
writeln('');
writeln('1 2 3');
writeln('8 9 4');
writeln('7 6 5');
while(true) do
begin
writeln('');
writeln('');
a := 9;
computerMoves(a);
p := readYourMove();
b := move(p + 1);
computerMoves(b);
q := readYourMove();
if (q = move(b + 4)) then
begin
c := move(b + 2);
computerMoves(c);
r := readYourMove();
if (r = move(c + 4)) then
begin
if (p mod 2 <> 0) then
begin
d := move(c + 3);
computerMoves(d);
s := readYourMove();
if (s = move(d + 4)) then
begin
e := move(d + 6);
computerMoves(e);
writeln('THE GAME IS A DRAW.');
end
else
begin
e := move(d + 4);
computerMoves(e);
writeln('AND WINS ********');
end
end
else
begin
d := move(c + 7);
computerMoves(d);
writeln('AND WINS ********');
end
end
else
begin
d := move(c + 4);
computerMoves(d);
writeln('AND WINS ********');
end
end
else
begin
c := move(b + 4);
computerMoves(c);
writeln('AND WINS ********');
end;
end;
end.