program X_O_program;
uses crt,sysutils;
type pozicii = (A1,A2,A3,B1,B2,B3,C1,C2,C3);
VAR
izbor,kraj,x_o:STRING;
igrac,brojac:byte;
pozicija:ARRAY[pozicii] of STRING;
pobednik:boolean;
x,y:byte;
PROCEDURE nacrtaj_tabla();
BEGIN
Writeln(' 1 2 3 ');
Writeln;
writeln('A | | | |');
writeln(' -------------');
writeln('B | | | |');
writeln(' -------------');
writeln('C | | | |');
writeln(' -------------');
END;
PROCEDURE popolni_tabla(izbor,x_o:STRING);
VAR x,y:byte;
BEGIN
case izbor of
'A1':BEGIN gotoxy(6,6) ; pozicija[A1]:=x_o ; END;
'A2':BEGIN gotoxy(10,6) ; pozicija[A2]:=x_o ; END;
'A3':BEGIN gotoxy(14,6) ; pozicija[A3]:=x_o ; END;
'B1':BEGIN gotoxy(6,8) ; pozicija[B1]:=x_o ; END;
'B2':BEGIN gotoxy(10,8) ; pozicija[B2]:=x_o ; END;
'B3':BEGIN gotoxy(14,8) ; pozicija[B3]:=x_o ; END;
'C1':BEGIN gotoxy(6,10) ; pozicija[C1]:=x_o ; END;
'C2':BEGIN gotoxy(10,10) ; pozicija[C2]:=x_o ; END;
'C3':BEGIN gotoxy(14,10) ; pozicija[C3]:=x_o ; END;
end;
writeln(x_o);
gotoxy(1,14);
end;
PROCEDURE proveri_pobednik();
VAR x,y:byte;
BEGIN
IF ((pozicija[A1]='X') AND (pozicija[A2]='X') AND (pozicija[A3]='X'))
THEN
BEGIN
Writeln('Igracot 1 [X] e POBEDNIK!!!');
pobednik:=True;
END
ELSE IF ((pozicija[B1]='X') AND (pozicija[B2]='X') AND (pozicija[B3]='X'))
THEN
BEGIN
Writeln('Igracot 1 [X] e POBEDNIK!!!');
pobednik:=True;
END
ELSE IF ((pozicija[C1]='X') AND (pozicija[C2]='X') AND (pozicija[C3]='X'))
THEN
BEGIN
Writeln('Igracot 1 [X] e POBEDNIK!!!');
pobednik:=True;
END
ELSE IF ((pozicija[A1]='X') AND (pozicija[B2]='X') AND (pozicija[C3]='X'))
THEN
BEGIN
Writeln('Igracot 1 [X] e POBEDNIK!!!');
pobednik:=True;
END
ELSE IF ((pozicija[A3]='X') AND (pozicija[B2]='X') AND (pozicija[C1]='X'))
THEN
BEGIN
Writeln('Igracot 1 [X] e POBEDNIK!!!');
pobednik:=True;
END
ELSE IF ((pozicija[A1]='X') AND (pozicija[B1]='X') AND (pozicija[C1]='X'))
THEN
BEGIN
Writeln('Igracot 1 [X] e POBEDNIK!!!');
pobednik:=True;
END
ELSE IF ((pozicija[A2]='X') AND (pozicija[B2]='X') AND (pozicija[C2]='X'))
THEN
BEGIN
Writeln('Igracot 1 [X] e POBEDNIK!!!');
pobednik:=True;
END
ELSE IF ((pozicija[A3]='X') AND (pozicija[B3]='X') AND (pozicija[C3]='X'))
THEN
BEGIN
Writeln('Igracot 1 [X] e POBEDNIK!!!');
pobednik:=True;
END
ELSE IF ((pozicija[A1]='O') AND (pozicija[A2]='O') AND (pozicija[A3]='O'))
THEN
BEGIN
Writeln('Igracot 2 [O] e POBEDNIK!!!');
pobednik:=True;
END
ELSE IF ((pozicija[B1]='O') AND (pozicija[B2]='O') AND (pozicija[B3]='O'))
THEN
BEGIN
Writeln('Igracot 2 [O] e POBEDNIK!!!');
pobednik:=True;
END
ELSE IF ((pozicija[C1]='O') AND (pozicija[C2]='O') AND (pozicija[C3]='O'))
THEN
BEGIN
Writeln('Igracot 2 [O] e POBEDNIK!!!');
pobednik:=True;
END
ELSE IF ((pozicija[A1]='O') AND (pozicija[B2]='O') AND (pozicija[C3]='O'))
THEN
BEGIN
Writeln('Igracot 2 [O] e POBEDNIK!!!');
pobednik:=True;
END
ELSE IF ((pozicija[A3]='O') AND (pozicija[B2]='O') AND (pozicija[C1]='O'))
THEN
BEGIN
Writeln('Igracot 2 [O] e POBEDNIK!!!');
pobednik:=True;
END
ELSE IF ((pozicija[A1]='O') AND (pozicija[B1]='O') AND (pozicija[C1]='O'))
THEN
BEGIN
Writeln('Igracot 2 [O] e POBEDNIK!!!');
pobednik:=True;
END
ELSE IF ((pozicija[A2]='O') AND (pozicija[B2]='O') AND (pozicija[C2]='O'))
THEN
BEGIN
Writeln('Igracot 2 [O] e POBEDNIK!!!');
pobednik:=True;
END
ELSE IF ((pozicija[A3]='O') AND (pozicija[B3]='O') AND (pozicija[C3]='O'))
THEN
BEGIN
Writeln('Igracot 2 [O] e POBEDNIK!!!');
pobednik:=True;
END;
end;
BEGIN
repeat
clrscr;
Writeln('Dobredojdovte,uzhivajte vo igranjeto!');
writeln;
writeln;
nacrtaj_tabla(); {Crtanje na polinja za igranje}
writeln;
writeln;
brojac:=0;
pobednik:=false;
repeat
pobednik:=false;
igrac:=brojac mod 2;
IF (igrac = 0)
THEN
BEGIN
write('Igracot 1 [X] bira pole:');
readln(izbor);
izbor:=UpperCase(izbor);
x_o := 'X';
popolni_tabla(izbor,x_o);
TextColor(green);
proveri_pobednik();
TextColor(white);
END
ELSE
BEGIN
write('Igracot 2 [O] bira pole:');
readln(izbor);
izbor:=UpperCase(izbor);
x_o := 'O';
popolni_tabla(izbor,x_o);
TextColor(green);
proveri_pobednik();
TextColor(white);
END;
IF (brojac=8) AND (pobednik=false)
THEN
BEGIN
gotoxy(1,14);
writeln;
writeln;
TextColor(yellow);
Writeln('Igrata e nereshena!!!');
TextColor(white);
END;
brojac:=brojac+1;
until pobednik OR (brojac=9);
writeln;
Write('Dali sakate da prodolzite so igrata [da/ne]:');
readln(kraj);
until (kraj='ne');
END.