Администраторы группы

  • Аватар

Олимпиада по информатике. Готовимся побеждать!

Открытая группа активность: 1 мес., 4 нед. назад

Группа для тех, кто намеревается побеждать на районных и региональных олимпиадах по информатике.
Здесь можно будет найти олимпиадные задания, задачи повышенной сложности, обсудить оптимальные алгоритмы решений
Памятка для участников олимпиады

Сайт Информатикс – регистрирууемся, решаем, продвигаемся в рейтинге

Морской бой на Pascal (записей: 34)

← Форум группы   Все форумы
  • Аватар LukasTrickster - 3 мес., 3 нед. назад:

    Пожалуйста простым человеческим языком я ни грамма понять не могу я обычный ученик 10 класса а не вундеркинд из литературного

  • Аватар LukasTrickster - 3 мес., 3 нед. назад:

    prepod, 2 – но почему ? вроде всё так же работает

  • Аватар LukasTrickster - 3 мес., 3 нед. назад:
          Uses crt;
    
          Const
              Q=-128;
              E=128;
              O=10;
              P=3;
              H=2;
    
          Var
              x,y:shortint;
              z,u:Array [Q..E,Q..E] of shortint;
              KolI:shortint;
    
          Procedure ArrayFilling;
    
          var
              i,j:shortint;
    
          begin
    
            for i:=1 to O do
              for j:=1 to O do
                begin
    
                  z[i,j]:=0;
                  z[1,j]:=j;
                  z[i,1]:=i;
    
                  u[i,j]:=0;
                  u[1,j]:=j;
                  u[i,1]:=i;
    
                end;
    
          end;
    
          Procedure ArrayWriteI;
    
          var
              i,j:shortint;
    
          begin
    
            for i:=1 to O do
              for j:=1 to O do
                begin
    
                  gotoxy(i*P,j*H+1);
                  textcolor(15);
                  writeln(z[i,j]);
    
                end;
    
          end;
    
          Procedure ArrayWriteII;
    
          var
              i,j:shortint;
    
          begin
    
            for i:=1 to O do
              for j:=1 to O do
                begin
    
                  gotoxy(i*P+40,j*H+1);
                  textcolor(12);
                  writeln(u[i,j]);
    
                end;
    
          end;
    
          Procedure koll;
    
          begin
    
            kolI:=4;
    
          end;
    
          Procedure ReadingI;
    
          begin
    
            textcolor(15);
            writeln('Корабли');
            read(x,y);
            z[x,y]:=1;
            KolI:=4-1;
            clrscr;
    
          end;
    
          Begin
    
          ArrayFilling;
    
          koll;
    
          repeat
    
            ArrayWriteI;
    
            ArrayWriteII;
    
            ReadingI;
    
          until kolI=0;
    
          End.
    
  • Аватар root - 3 мес., 3 нед. назад:

    Пользуясь случаем попрошу препода объяснить, почему разработчики некоторых распространённых ЯП не следуют озвученному правилу.

    Например https://www.php.net/manual/en/function.closelog.php

  • Аватар CHEWBACCA - 3 мес., 3 нед. назад:

    Ну вот, уважаемый, то о чём я говорил как раз и послужило существованию бага, который я обнаружил: если ввести первый столбик и, к примеру, третью строчку, то корабль ставится там где не должен, а именно вне поля, то есть в том месте, где должны быть обозначения ячеек матрицы, то есть номер строки или столбика

  • Аватар root - 3 мес., 3 нед. назад:

    LukasTrickster, так не годится.
    Своими словами расскажи что понял (это важно, не только для контроля правильности интерпретации, но и потому что основа для дальнейших объяснений).
    И спроси что непонятно.

    И не стоит увлекаться пиитетом перед «вундеркиндами из литературного».
    Потому что идеальное «понимание» — совсем не то, что «понимание», предполагающее поверку практикой.
    Наблюдал я ситуацию, когда блондинка (НАСТОЯЩИЙ Мастер от филологии) столкнулась с ситуацией «понимания», с необходимым выходом на практику…

  • Аватар LukasTrickster - 3 мес., 3 нед. назад:

    CHEWBACCA, а вас не смутил код в 113 строчек гляньте на предыдущий код где 300 + строчек там такого нету и вот чего вы меня за недоделанный код какашками кидаетесь это же не полностью готовый продукт. Код я снова полностью перерабатываю устраняя ошибки и недочёты прошлого и да смотря на свой прошлый код думаю что надо сначала игру хоть как то сделать а вот потом уже идти и баги фиксить

  • Аватар LukasTrickster - 3 мес., 3 нед. назад:

    root, понял всё! Непонятного нет!

  • Аватар LukasTrickster - 3 мес., 3 нед. назад:
        Uses crt;
    
        Const
            Q=-128;
            E=128;
            O=10;
            P=3;
            H=2;
    
        Var
            x,y:shortint;
            z,u,n,m:Array [Q..E,Q..E] of shortint;
            KolI:shortint;
    
        Procedure ArrayFilling;
    
        var
            i,j:shortint;
    
        begin
    
          for i:=1 to O do
            for j:=1 to O do
              begin
    
                z[i,j]:=0;
    
                n[1,j]:=j;
                m[i,1]:=i;
    
                u[i,j]:=0;
    
              end;
    
        end;
    
        Procedure ArrayWriteI;
    
        var
            i,j:shortint;
    
        begin
        textcolor(11);
        writeln('                                Морской бой');
    
        textcolor(15);
        write('               Игрок №1');
        textcolor(12);
        writeln('                                Игрок №2');
    
          for i:=1 to O do
            begin
    
              textcolor(10);
              gotoxy(i*P+3,j*H+4);
              writeln(m[i,1]);
    
            end;
    
          for j:=1 to O do
            begin
    
              textcolor(10);
              gotoxy(i*P-27,j*H+4);
              writeln(n[1,j]);
    
            end;
    
          for i:=1 to O do
            for j:=1 to O do
              begin
    
                gotoxy(i*P+3,j*H+4);
                textcolor(15);
                writeln(z[i,j]);
    
              end;
    
        end;
    
        Procedure ArrayWriteII;
    
        var
            i,j:shortint;
    
        begin
    
          for i:=1 to O do
            begin
    
              textcolor(10);
              gotoxy(i*P+43,j*H+4);
              writeln(m[i,1]);
    
            end;
    
          for j:=1 to O do
            begin
    
              textcolor(10);
              gotoxy(i*P+13,j*H+4);
              writeln(n[1,j]);
    
            end;
    
          for i:=1 to O do
            for j:=1 to O do
              begin
    
                gotoxy(i*P+43,j*H+4);
                textcolor(12);
                writeln(u[i,j]);
    
              end;
    
        end;
    
        Procedure kol;
    
        begin
    
          kolI:=4;
    
        end;
    
        Procedure ReadingI;
    
        begin
    
          textcolor(15);
          writeln('Корабли');
          read(x,y);
          z[x,y]:=1;
          KolI:=KolI-1;
          clrscr;
    
        end;
    
        Procedure ReadingII;
    
        begin
    
          x:=random(1,O);
          y:=random(1,O);
          u[x,y]:=1;
          clrscr;
    
        end;
    
        Begin
    
        randomize;
    
        ArrayFilling;
    
        kol;
    
        repeat
    
          ArrayWriteI;
    
          ArrayWriteII;
    
          ReadingI;
    
          ReadingII;
    
        until kolI=0;
    
        End.
    
  • Аватар root - 3 мес., 3 нед. назад:

    LukasTrickster, могу предложить скучно-полезную лабораторную работу по теории информации.
    Для затравки можно взять любимый памфлет любимого преподом Альва.

    Ну и потом попробовать раскрутить 2-4 аналогичных квеста.
    Просто потому что для эпизода с Альвом можно не тратить время, а просто взять готовое решение.
    Ну и потому что единичное решение не даёт наработки достаточно устойчивого навыка.
    Готов? ☺

  • Аватар LukasTrickster - 3 мес., 3 нед. назад:

    Как я понял вы предлагаете мне изучить алгоритмы чтобы я тут не сидел и не тратил время в пустую на создание велосипеда ? Если да то этим я займусь после того как докончу игру Если нет то я снова вас не понял :roll:

  • Аватар root - 3 мес., 3 нед. назад:

    Нет. Имеется в виду наработка первичного опыта, на основании которого строятся (и, что куда интереснее, — проверяются) алгоритмы.

  • Аватар LukasTrickster - 3 мес., 3 нед. назад:

    Да думаю мне это крайне необходимо

  • Аватар LukasTrickster - 3 мес., 3 нед. назад:

    В разработке

        Uses crt;
    
        Const
            Q=-128;
            E=128;
            O=10;
            P=3;
            H=2;
    
        Var
            z,u,n,m:Array [Q..E,Q..E] of shortint;
            KolI,KolII:shortint;
    
        Procedure ArrayFilling;
    
        var
            i,j:shortint;
    
        begin
    
          for i:=1 to O do
            for j:=1 to O do
              begin
    
                z[i,j]:=0;
    
                n[1,j]:=j;
                m[i,1]:=i;
    
                u[i,j]:=0;
    
              end;
    
        end;
    
        Procedure ArrayWriteI;
    
        var
            i,j:shortint;
    
        begin
        textcolor(11);
        writeln('                                Морской бой');
    
        textcolor(15);
        write('               Игрок №1');
        textcolor(12);
        writeln('                                Игрок №2');
    
          for i:=1 to O do
            begin
    
              textcolor(10);
              gotoxy(i*P+3,j*H+4);
              writeln(m[i,1]);
    
            end;
    
          for j:=1 to O do
            begin
    
              textcolor(10);
              gotoxy(i*P-27,j*H+4);
              writeln(n[1,j]);
    
            end;
    
          for i:=1 to O do
            for j:=1 to O do
              begin
    
                gotoxy(i*P+3,j*H+4);
                textcolor(15);
                writeln(z[i,j]);
    
              end;
    
        end;
    
        Procedure ArrayWriteII;
    
        var
            i,j:shortint;
    
        begin
    
          for i:=1 to O do
            begin
    
              textcolor(10);
              gotoxy(i*P+43,j*H+4);
              writeln(m[i,1]);
    
            end;
    
          for j:=1 to O do
            begin
    
              textcolor(10);
              gotoxy(i*P+13,j*H+4);
              writeln(n[1,j]);
    
            end;
    
          for i:=1 to O do
            for j:=1 to O do
              begin
    
                gotoxy(i*P+43,j*H+4);
                textcolor(12);
                writeln(u[i,j]);
    
              end;
    
        end;
    
        Procedure kol;
    
        begin
    
          kolI:=4;
          kolII:=3;
    
        end;
    
        Procedure ProtectI_I;
    
        var
           x,y:shortint;
    
        begin
    
          if (z[x-1,y-1]=0) and (z[x,y-1]=0) and (z[x+1,y-1]=0) and (z[x-1,y]=0) and (z[x+1,y]=0) and (z[x-1,y+1]=0) and (z[x,y+1]=0) and (z[x+1,y+1]=0) and (z[x,y]=0) and (x>=1) and (x<=10) and (y>=1) and (y<=10)
    
            then 
    
            else
    
              begin
    
                repeat
    
                  clrscr;
                  ArrayWriteI;
                  ArrayWriteII;
                  textcolor(15);
                  writeln('Корабли однопалубные ',KolI,' шт');
                  writeln('0 из 1');
                  writeln('Так нельзя!');
                  read(x,y);
    
                until (z[x-1,y-1]=0) and (z[x,y-1]=0) and (z[x+1,y-1]=0) and (z[x-1,y]=0) and (z[x+1,y]=0) and (z[x-1,y+1]=0) and (z[x,y+1]=0) and (z[x+1,y+1]=0) and (z[x,y]=0)and (x>=1) and (x<=10) and (y>=1) and (y<=10);
    
              end;
    
        end;
    
        Procedure ReadingI_I;
    
        var
            x,y:shortint;
    
        begin
    
          ArrayWriteI;
          ArrayWriteII;
          textcolor(15);
          writeln('Корабли однопалубные ',KolI,' шт');
          writeln('0 из 1');
          read(x,y);
    
          if (z[x-1,y-1]=0) and (z[x,y-1]=0) and (z[x+1,y-1]=0) and (z[x-1,y]=0) and (z[x+1,y]=0) and (z[x-1,y+1]=0) and (z[x,y+1]=0) and (z[x+1,y+1]=0) and (z[x,y]=0) and (x>=1) and (x<=10) and (y>=1) and (y<=10)
    
            then 
    
            else
    
              begin
    
                repeat
    
                  clrscr;
                  ArrayWriteI;
                  ArrayWriteII;
                  textcolor(15);
                  writeln('Корабли однопалубные ',KolI,' шт');
                  writeln('0 из 1');
                  writeln('Так нельзя!');
                  read(x,y);
    
                until (z[x-1,y-1]=0) and (z[x,y-1]=0) and (z[x+1,y-1]=0) and (z[x-1,y]=0) and (z[x+1,y]=0) and (z[x-1,y+1]=0) and (z[x,y+1]=0) and (z[x+1,y+1]=0) and (z[x,y]=0)and (x>=1) and (x<=10) and (y>=1) and (y<=10);
    
              end;
    
          z[x,y]:=1;
          KolI:=KolI-1;
          clrscr;
    
        end;
    
        Procedure ReadingI_II;
    
        var
            x,y:shortint;
    
        begin
    
          x:=random(1,O);
          y:=random(1,O);
    
          if (u[x-1,y-1]=0) and (u[x,y-1]=0) and (u[x+1,y-1]=0) and (u[x-1,y]=0) and (u[x+1,y]=0) and (u[x-1,y+1]=0) and (u[x,y+1]=0) and (u[x+1,y+1]=0) and (u[x,y]=0)
    
            then 
    
            else
    
              begin
    
                repeat
    
                  x:=random(1,O);
                  y:=random(1,O);
    
                until (u[x-1,y-1]=0) and (u[x,y-1]=0) and (u[x+1,y-1]=0) and (u[x-1,y]=0) and (u[x+1,y]=0) and (u[x-1,y+1]=0) and (u[x,y+1]=0) and (u[x+1,y+1]=0) and (u[x,y]=0);
    
              end;
    
          u[x,y]:=1;
          clrscr;
    
        end;
    
        Procedure ReadingII_I;
    
        var
            x,y,x1,y1:shortint;
    
        begin
    
          ArrayWriteI;
          ArrayWriteII;
          textcolor(15);
          writeln('Корабли двухпалубные ',KolII,' шт');
          writeln('0 из 2');
          read(x,y);
          z[x,y]:=2;
          clrscr;
    
          ArrayWriteI;
          ArrayWriteII;
          textcolor(15);
          writeln('Корабли двухпалубные ',KolII,' шт');
          writeln('1 из 2');
          read(x1,y1);
    
          if (z[x,y]=z[x1,y1-1]) or (z[x,y]=z[x1-1,y1]) or (z[x,y]=z[x1+1,y1]) or (z[x,y]=z[x1,y1+1])
    
            then
    
            else
    
              begin
    
                repeat
    
                  clrscr;
                  ArrayWriteI;
                  ArrayWriteII;
                  textcolor(15);
                  writeln('Корабли двухпалубные ',KolII,' шт');
                  writeln('1 из 2');
                  writeln('Так нельзя!');
                  read(x1,y1);
    
                until (z[x,y]=z[x1,y1-1]) or (z[x,y]=z[x1-1,y1]) or (z[x,y]=z[x1+1,y1]) or (z[x,y]=z[x1,y1+1]);
    
              end;
    
          z[x1,y1]:=2;
          KolII:=KolII-1;
          clrscr;
    
        end;
    
        Procedure ReadingII_II;
    
        var
            x,y,x1,y1:shortint;
    
        begin
    
          x:=random(1,O);
          y:=random(1,O);
          u[x,y]:=2;
          x1:=random(1,O);
          y1:=random(1,O);
    
            if (u[x,y]=u[x1,y1-1]) or (u[x,y]=u[x1-1,y1]) or (u[x,y]=u[x1+1,y1]) or (u[x,y]=u[x1,y1+1])
    
              then
    
              else 
    
                begin
    
                  repeat
    
                    x1:=random(1,O);
                    y1:=random(1,O);
    
                  until (u[x,y]=u[x1,y1-1]) or (u[x,y]=u[x1-1,y1]) or (u[x,y]=u[x1+1,y1]) or (u[x,y]=u[x1,y1+1]);
    
                end;
    
          u[x1,y1]:=2;
          clrscr;
    
        end;
    
        Begin
    
        randomize;
    
        ArrayFilling;
    
        kol;
    
        repeat
    
          ReadingI_I;
    
          ReadingI_II;
    
        until kolI=0;
    
        repeat
    
          ReadingII_I;
    
          ReadingII_II;
    
        until kolII=0;
    
        End.
    
  • Аватар LukasTrickster - 3 мес., 3 нед. назад:

    В разработке

        Uses crt;
    
        Const
            Q=-128;
            E=128;
            O=10;
            P=3;
            H=2;
    
        Var
            z,u,n,m:Array [Q..E,Q..E] of shortint;
            KolI,KolII:shortint;
    
        Procedure ArrayFilling;
    
        var
            i,j:shortint;
    
        begin
    
          for i:=1 to O do
            for j:=1 to O do
              begin
    
                z[i,j]:=0;
    
                n[1,j]:=j;
                m[i,1]:=i;
    
                u[i,j]:=0;
    
              end;
    
        end;
    
        Procedure ArrayWriteI;
    
        var
            i,j:shortint;
    
        begin
        textcolor(11);
        writeln('                                Морской бой');
    
        textcolor(15);
        write('               Игрок №1');
        textcolor(12);
        writeln('                                Игрок №2');
    
          for i:=1 to O do
            begin
    
              textcolor(10);
              gotoxy(i*P+3,j*H+4);
              writeln(m[i,1]);
    
            end;
    
          for j:=1 to O do
            begin
    
              textcolor(10);
              gotoxy(i*P-27,j*H+4);
              writeln(n[1,j]);
    
            end;
    
          for i:=1 to O do
            for j:=1 to O do
              begin
    
                gotoxy(i*P+3,j*H+4);
                textcolor(15);
                writeln(z[i,j]);
    
              end;
    
        end;
    
        Procedure ArrayWriteII;
    
        var
            i,j:shortint;
    
        begin
    
          for i:=1 to O do
            begin
    
              textcolor(10);
              gotoxy(i*P+43,j*H+4);
              writeln(m[i,1]);
    
            end;
    
          for j:=1 to O do
            begin
    
              textcolor(10);
              gotoxy(i*P+13,j*H+4);
              writeln(n[1,j]);
    
            end;
    
          for i:=1 to O do
            for j:=1 to O do
              begin
    
                gotoxy(i*P+43,j*H+4);
                textcolor(12);
                writeln(u[i,j]);
    
              end;
    
        end;
    
        Procedure kol;
    
        begin
    
          kolI:=4;
          kolII:=3;
    
        end;
    
        Procedure ProtectI_I;
    
        var
           x,y:shortint;
    
        begin
    
          if (z[x-1,y-1]=0) and (z[x,y-1]=0) and (z[x+1,y-1]=0) and (z[x-1,y]=0) and (z[x+1,y]=0) and (z[x-1,y+1]=0) and (z[x,y+1]=0) and (z[x+1,y+1]=0) and (z[x,y]=0) and (x>=1) and (x<=10) and (y>=1) and (y<=10)
    
            then 
    
            else
    
              begin
    
                repeat
    
                  clrscr;
                  ArrayWriteI;
                  ArrayWriteII;
                  textcolor(15);
                  writeln('Корабли однопалубные ',KolI,' шт');
                  writeln('0 из 1');
                  writeln('Так нельзя!');
                  read(x,y);
    
                until (z[x-1,y-1]=0) and (z[x,y-1]=0) and (z[x+1,y-1]=0) and (z[x-1,y]=0) and (z[x+1,y]=0) and (z[x-1,y+1]=0) and (z[x,y+1]=0) and (z[x+1,y+1]=0) and (z[x,y]=0)and (x>=1) and (x<=10) and (y>=1) and (y<=10);
    
              end;
    
        end;
    
        Procedure ReadingI_I;
    
        var
            x,y:shortint;
    
        begin
    
          ArrayWriteI;
          ArrayWriteII;
          textcolor(15);
          writeln('Корабли однопалубные ',KolI,' шт');
          writeln('0 из 1');
          read(x,y);
    
          if (z[x-1,y-1]=0) and (z[x,y-1]=0) and (z[x+1,y-1]=0) and (z[x-1,y]=0) and (z[x+1,y]=0) and (z[x-1,y+1]=0) and (z[x,y+1]=0) and (z[x+1,y+1]=0) and (z[x,y]=0) and (x>=1) and (x<=10) and (y>=1) and (y<=10)
    
            then 
    
            else
    
              begin
    
                repeat
    
                  clrscr;
                  ArrayWriteI;
                  ArrayWriteII;
                  textcolor(15);
                  writeln('Корабли однопалубные ',KolI,' шт');
                  writeln('0 из 1');
                  writeln('Так нельзя!');
                  read(x,y);
    
                until (z[x-1,y-1]=0) and (z[x,y-1]=0) and (z[x+1,y-1]=0) and (z[x-1,y]=0) and (z[x+1,y]=0) and (z[x-1,y+1]=0) and (z[x,y+1]=0) and (z[x+1,y+1]=0) and (z[x,y]=0)and (x>=1) and (x<=10) and (y>=1) and (y<=10);
    
              end;
    
          z[x,y]:=1;
          KolI:=KolI-1;
          clrscr;
    
        end;
    
        Procedure ReadingI_II;
    
        var
            x,y:shortint;
    
        begin
    
          x:=random(1,O);
          y:=random(1,O);
    
          if (u[x-1,y-1]=0) and (u[x,y-1]=0) and (u[x+1,y-1]=0) and (u[x-1,y]=0) and (u[x+1,y]=0) and (u[x-1,y+1]=0) and (u[x,y+1]=0) and (u[x+1,y+1]=0) and (u[x,y]=0)
    
            then 
    
            else
    
              begin
    
                repeat
    
                  x:=random(1,O);
                  y:=random(1,O);
    
                until (u[x-1,y-1]=0) and (u[x,y-1]=0) and (u[x+1,y-1]=0) and (u[x-1,y]=0) and (u[x+1,y]=0) and (u[x-1,y+1]=0) and (u[x,y+1]=0) and (u[x+1,y+1]=0) and (u[x,y]=0);
    
              end;
    
          u[x,y]:=1;
          clrscr;
    
        end;
    
        Procedure ReadingII_I;
    
        var
            x,y,x1,y1:shortint;
    
        begin
    
          ArrayWriteI;
          ArrayWriteII;
          textcolor(15);
          writeln('Корабли двухпалубные ',KolII,' шт');
          writeln('0 из 2');
          read(x,y);
    
          if (z[x-1,y-1]=0) and (z[x,y-1]=0) and (z[x+1,y-1]=0) and (z[x-1,y]=0) and (z[x+1,y]=0) and (z[x-1,y+1]=0) and (z[x,y+1]=0) and (z[x+1,y+1]=0) and (z[x,y]=0) and (x>=1) and (x<=10) and (y>=1) and (y<=10)
    
            then 
    
            else
    
              begin
    
                repeat
    
                  clrscr;
                  ArrayWriteI;
                  ArrayWriteII;
                  textcolor(15);
                  writeln('Корабли двухпалубные ',KolII,' шт');
                  writeln('0 из 2');
                  writeln('Так нельзя!');
                  read(x,y);
    
                until (z[x-1,y-1]=0) and (z[x,y-1]=0) and (z[x+1,y-1]=0) and (z[x-1,y]=0) and (z[x+1,y]=0) and (z[x-1,y+1]=0) and (z[x,y+1]=0) and (z[x+1,y+1]=0) and (z[x,y]=0)and (x>=1) and (x<=10) and (y>=1) and (y<=10);
    
              end;
    
          z[x,y]:=2;
          clrscr;
    
          ArrayWriteI;
          ArrayWriteII;
          textcolor(15);
          writeln('Корабли двухпалубные ',KolII,' шт');
          writeln('1 из 2');
          read(x1,y1);
    
          if (z[x,y]=z[x1,y1-1]) and (x>=1) and (x<=10) and (y>=1) and (y<=10) and            (z[x,y]=z[x1-1,y1]) and (x>=1) and (x<=10) and (y>=1) and (y<=10)          or (z[x,y]=z[x1+1,y1]) and (x>=1) and (x<=10) and (y>=1) and (y<=10)          or (z[x,y]=z[x1,y1+1]) and (x>=1) and (x<=10) and (y>=1) and (y<=10)
    
            then
    
            else
    
              begin
    
                repeat
    
                  clrscr;
                  ArrayWriteI;
                  ArrayWriteII;
                  textcolor(15);
                  writeln('Корабли двухпалубные ',KolII,' шт');
                  writeln('1 из 2');
                  writeln('Так нельзя!');
                  read(x1,y1);
    
                until (z[x,y]=z[x1,y1-1]) and (z[x1-1,y1-1]=0) and (z[x1,y1-1]=0) and (z[x1+1,y1-1]=0) and (z[x1-1,y1]=0) and (z[x1+1,y1]=0) and (z[x1-1,y1+1]=0) and (z[x1,y1+1]=0) and (z[x1+1,y1+1]=0) and (z[x1,y1]=0) and (x1>=1) and (x1<=10) and (y1>=1) and (y1<=10) or (z[x,y]=z[x1-1,y1]) and (z[x1-1,y1-1]=0) and (z[x1,y1-1]=0) and (z[x1+1,y1-1]=0) and (z[x1-1,y1]=0) and (z[x1+1,y1]=0) and (z[x1-1,y1+1]=0) and (z[x1,y1+1]=0) and (z[x1+1,y1+1]=0) and (z[x1,y1]=0) and (x1>=1) and (x1<=10) and (y1>=1) and (y1<=10) or (z[x,y]=z[x1+1,y1]) and (z[x1-1,y1-1]=0) and (z[x1,y1-1]=0) and (z[x1+1,y1-1]=0) and (z[x1-1,y1]=0) and (z[x1+1,y1]=0) and (z[x1-1,y1+1]=0) and (z[x1,y1+1]=0) and (z[x1+1,y1+1]=0) and (z[x1,y1]=0) and (x1>=1) and (x1<=10) and (y1>=1) and (y1<=10) or (z[x,y]=z[x1,y1+1]) and (z[x1-1,y1-1]=0) and (z[x1,y1-1]=0) and (z[x1+1,y1-1]=0) and (z[x1-1,y1]=0) and (z[x1+1,y1]=0) and (z[x1-1,y1+1]=0) and (z[x1,y1+1]=0) and (z[x1+1,y1+1]=0) and (z[x1,y1]=0) and (x1>=1) and (x1<=10) and (y1>=1) and (y1<=10);
    
              end;
    
          z[x1,y1]:=2;
          KolII:=KolII-1;
          clrscr;
    
        end;
    
        Procedure ReadingII_II;
    
        var
            x,y,x1,y1:shortint;
    
        begin
    
          x:=random(1,O);
          y:=random(1,O);
          u[x,y]:=2;
          x1:=random(1,O);
          y1:=random(1,O);
    
            if (u[x,y]=u[x1,y1-1]) or (u[x,y]=u[x1-1,y1]) or (u[x,y]=u[x1+1,y1]) or (u[x,y]=u[x1,y1+1])
    
              then
    
              else 
    
                begin
    
                  repeat
    
                    x1:=random(1,O);
                    y1:=random(1,O);
    
                  until (u[x,y]=u[x1,y1-1]) or (u[x,y]=u[x1-1,y1]) or (u[x,y]=u[x1+1,y1]) or (u[x,y]=u[x1,y1+1]);
    
                end;
    
          u[x1,y1]:=2;
          clrscr;
    
        end;
    
        Begin
    
        randomize;
    
        ArrayFilling;
    
        kol;
    
        repeat
    
          ReadingI_I;
    
          ReadingI_II;
    
        until kolI=0;
    
        repeat
    
          ReadingII_I;
    
          ReadingII_II;
    
        until kolII=0;
    
        End.