Witam. Mam do napisania grę Kółko i krzyŻyk w Turbo Pascalu. Napisałem coś ale nie wiem czy to jest dobrze. Moglibyście rzucić na to okiem i zobaczyć
Kod:
program abc;
uses crt;
var
wynik:boolean;
i,j,pom:integer;
tab:array[1..3,1..3] of char;
{tablica pomocnicza z wartosciami o i x}
tabpom:array[1..3,1..3] of byte;
begin
clrscr;
randomize;
wynik:=FALSE;
{uzupelnienie tablicy}
for j:=1 to 3 do
for i:=1 to 3 do
begin
tab[i,j]:='-';
tabpom[i,j]:=0;
end;
{wyswietlenie pustej tablicy}
for i:=1 to 3 do
begin
for j:=1 to 3 do
begin
write(tab[i,j]:3);
end;
writeln;
end;
while wynik=FALSE do
begin
pom:=0;
{pobieranie wspolrzednych 1 gracza}
writeln('podaj wspolrzedne');
readln(j);
readln(i);
{sprawdzanie wspolrzednych}
if tab[i,j]='-' then
begin
tab[i,j]:='x';
tabpom[i,j]:=1;
end
else
begin
writeln('podaj ponownie wspolrzedne');
readln(i);
readln(j);
tab[i,j]:='x';
tabpom[i,j]:=1;
end;
{wyswietlanie tablicy po ruchu}
for i:=1 to 3 do
begin
for j:=1 to 3 do
begin
write(tab[i,j]:3);
end;
writeln;
end;
{sprawdzanie czy gracz wygral}
for i:=1 to 3 do
begin
for j:=1 to 3 do
begin
if tabpom[i,j] = 0 then
pom:=pom+1;
if tabpom[i,1] + tabpom[i,2] + tabpom[i,3] = 3 then
begin
wynik:=TRUE;
end;
end;
if tabpom[1,j] + tabpom[2,j] + tabpom[3,j] = 3 then
begin
wynik:=TRUE
end;
end;
if tabpom[1,1] + tabpom[2,2] + tabpom[3,3] = 3 then
wynik:=TRUE;
if tabpom[1,3] + tabpom[2,2] + tabpom[3,1] = 3 then
wynik:=TRUE;
if wynik=TRUE then
writeln('wygraly x');
if pom = 0 then
begin
wynik:=TRUE;
writeln('remis');
end;
if wynik=FALSE then
begin
{pobieranie wspolrzednych 2 gracza}
writeln('podaj wspolrzedne');
j:=1+random(3);
i:=1+random(3);
{sprawdzanie wspolrzednych}
if tab[i,j]='-' then
begin
tab[i,j]:='o';
tabpom[i,j]:=4;
end
else
begin
if tab[i,j]='x' then
writeln('podaj ponownie wspolrzedne');
readln(i);
readln(j);
tab[i,j]:='o';
tabpom[i,j]:=4;
end;
{wyswietlanie tablicy po ruchu}
for i:=1 to 3 do
begin
for j:=1 to 3 do
begin
write(tab[i,j]:3);
end;
writeln;
end;
{sprawdzanie czy gracz wygral}
for i:=1 to 3 do
begin
for j:=1 to 3 do
begin
if tabpom[i,j] = 0 then
pom:=pom+1;
if tabpom[i,1] + tabpom[i,2] + tabpom[i,3] = 12 then
begin
wynik:=TRUE;
end;
end;
if tabpom[1,j] + tabpom[2,j] + tabpom[3,j] = 12 then
begin
wynik:=TRUE
end;
end;
if tabpom[1,1] + tabpom[2,2] + tabpom[3,3] = 12 then
wynik:=TRUE;
if tabpom[1,3] + tabpom[2,2] + tabpom[3,1] = 12 then
wynik:=TRUE;
if wynik=TRUE then
writeln('wygraly o');
if pom = 0 then
begin
wynik:=TRUE;
writeln('remis');
end;
end;
end;
end.