Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Case k 11 of //смотрит какой корабль ставить

Поиск

 0: case x 1 of //смотрит есть ли рядом с однопалубным кораблём другие корабли

1: if (b1[x1,y1]<>2) and

  (b1[x1+1,y1+1]<>2) and

  (b1[x1,y1+1]<>2) and

  (b1[x1,y1-1]<>2) and

  (b1[x1+1,y1-1]<>2) and

  (b1[x1+1,y1]<>2) then

    begin

     b1[x1,y1]:=2;

     riad:=true

    end

   else

       riad:=false;

2..10: if (b1[x1,y1]<>2) and

  (b1[x1+1,y1+1]<>2) and

  (b1[x1,y1+1]<>2) and

  (b1[x1-1,y1+1]<>2) and

  (b1[x1-1,y1]<>2)and

  (b1[x1-1,y1-1]<>2)and

  (b1[x1,y1-1]<>2) and

  (b1[x1+1,y1-1]<>2) and

  (b1[x1+1,y1]<>2) then begin

b1[x1,y1]:=2;

riad:=true

end

else

riad:= false;

end;

 1: case x 1 of //смотрит есть ли рядом с двупалубным кораблём другие корабли

1:if(b1[x1,y1]<>2) and

  (b1[x1+1,y1+1]<>2) and

  (b1[x1,y1+1]<>2) and

  (b1[x1,y1-1]<>2) and

  (b1[x1+1,y1-1]<>2) and

  (b1[x1+2,y1-1]<>2) and

  (b1[x1+2,y1+1]<>2) and

  (b1[x1+2,y1]<>2) and (x1+1<11)

   then

      for i:=0 to k11 do

       begin

        b1[x1+i,y1]:=2;

         riad:=true

       end

   else

     riad:=false;

2..10: if (b1[x1,y1]<>2) and

  (b1[x1+1,y1+1]<>2) and

  (b1[x1,y1+1]<>2) and

  (b1[x1-1,y1+1]<>2) and

  (b1[x1-1,y1]<>2)and

    (b1[x1-1,y1-1]<>2)and

  (b1[x1,y1-1]<>2) and

  (b1[x1+1,y1-1]<>2) and

  (b1[x1+2,y1-1]<>2) and

  (b1[x1+2,y1+1]<>2) and

  (b1[x1+2,y1]<>2) and (x1+1<11) then

for i:=0 to k11 do begin

b1[x1+i,y1]:=2;

riad:=true

end

else

riad:=false;

end;

2: case x 1 of                  //смотрит есть ли рядом с трехпалубным кораблём другие корабли

1: if (b1[x1,y1]<>2) and

  (b1[x1+1,y1+1]<>2) and

  (b1[x1,y1+1]<>2) and

  (b1[x1,y1-1]<>2) and

  (b1[x1+1,y1-1]<>2) and

  (b1[x1+2,y1-1]<>2) and

  (b1[x1+2,y1+1]<>2) and

  (b1[x1+3,y1-1]<>2) and

  (b1[x1+3,y1+1]<>2) and

  (b1[x1+3,y1]<>2) and (x1+2<11) then

for i:=0 to k11 do begin

b1[x1+i,y1]:=2;

 riad:=true

end

else

riad:=false;

2..10:

if (b1[x1,y1]<>2) and

  (b1[x1+1,y1+1]<>2) and

  (b1[x1,y1+1]<>2) and

  (b1[x1-1,y1+1]<>2) and

  (b1[x1-1,y1]<>2)and

  (b1[x1-1,y1-1]<>2)and

  (b1[x1,y1-1]<>2) and

  (b1[x1+1,y1-1]<>2) and

  (b1[x1+2,y1-1]<>2) and

  (b1[x1+2,y1+1]<>2) and

  (b1[x1+3,y1-1]<>2) and

  (b1[x1+3,y1+1]<>2) and

  (b1[x1+3,y1]<>2) and (x1+2<11) then

for i:=0 to k11 do begin

b1[x1+i,y1]:=2;

riad:=true

end

else

riad:=false

end;

3: if x 1+3<11 then //ставит четырехпалубный корабль

begin

for i:=0 to k11 do

b1[x1+i,y1]:=2;

riad:=true

  end

else

riad:=false;

 end;

if riad = true then begin //смотрит если корабль поставлен то уменьшает счетчик

if (k11=3) then

begin;

k11:=k11-1;

end;

if (k11=2) and (k33=0) then

begin

k11:=k11-1;

k33:=k33-1

end

Else

k33:=k33-1;

if (k11=1) and (k32=0) then

begin

k11:=k11-1;

k32:=k32-1

end

Else

k32:=k32-1;

if (k11=0) and (k31=0) then

begin

k11:=k11-1;

k31:=k31-1

end

Else

k 31:= k 31-1;

end;

End

Else                 //ставит корабль по горизонтали

begin

Case k 11 of          //смотрит какой корабль ставить

 0: case x 1 of         //смотрит есть ли рядом с однопалубным кораблём другие корабли

1: if (b1[x1,y1]<>2) and

  (b1[x1+1,y1+1]<>2) and

  (b1[x1,y1+1]<>2) and

  (b1[x1,y1-1]<>2) and

  (b1[x1+1,y1-1]<>2) and

  (b1[x1+1,y1]<>2) then

    begin

     b1[x1,y1]:=2;

     riad:=true

    end

   else

     riad:=false;

2..10: if

  (b1[x1,y1]<>2) and

  (b1[x1+1,y1+1]<>2) and

  (b1[x1,y1+1]<>2) and

  (b1[x1-1,y1+1]<>2) and

  (b1[x1-1,y1]<>2)and

  (b1[x1-1,y1-1]<>2)and

  (b1[x1,y1-1]<>2) and

  (b1[x1+1,y1-1]<>2) and

  (b1[x1+1,y1]<>2) then begin

b1[x1,y1]:=2;

riad:=true

end

else

riad:= false;

end;

 1: case x 1 of                   //смотрит есть ли рядом с двупалубным кораблём другие корабли

1: if (b1[x1,y1]<>2) and

  (b1[x1,y1-1]<>2)and

  (b1[x1+1,y1+1]<>2)and

  (b1[x1+1,y1]<>2) and

  (b1[x1+1,y1-1]<>2) and

  (b1[x1+1,y1+2]<>2) and

  (b1[x1,y1+2]<>2) and (y1+1<11) then

for i:=0 to k11 do begin

b1[x1,y1+i]:=2;

riad:=true

end

else

riad:=false;

2..10:

if (b1[x1,y1]<>2) and

  (b1[x1-1,y1-1]<>2) and

  (b1[x1-1,y1]<>2) and

   (b1[x1-1,y1+1]<>2) and

  (b1[x1,y1-1]<>2)and

  (b1[x1+1,y1+1]<>2)and

  (b1[x1+1,y1]<>2) and

  (b1[x1+1,y1-1]<>2) and

  (b1[x1+1,y1+2]<>2) and

  (b1[x1-1,y1+2]<>2) and

  (b1[x1,y1+2]<>2) and (y1+1<11) then

for i:=0 to k11 do begin

b1[x1,y1+i]:=2;

riad:=true

end

else

riad:=false

end;

2: case x 1 of                 //смотрит есть ли рядом с двупалубным кораблём другие корабли

1:if (b1[x1,y1]<>2) and

  (b1[x1,y1-1]<>2)and

     (b1[x1+1,y1+1]<>2)and

  (b1[x1+1,y1]<>2) and

  (b1[x1+1,y1-1]<>2) and

  (b1[x1+1,y1+2]<>2) and

  (b1[x1+1,y1+3]<>2) and

  (b1[x1,y1+3]<>2) and (y1+2<11) then

for i:=0 to k11 do begin

b1[x1,y1+i]:=2;

riad:=true

end

else

riad:=false;

2..10:

if (b1[x1,y1]<>2) and

  (b1[x1-1,y1-1]<>2) and

  (b1[x1-1,y1]<>2) and

  (b1[x1-1,y1+1]<>2) and

  (b1[x1,y1-1]<>2)and

  (b1[x1+1,y1+1]<>2)and

  (b1[x1+1,y1]<>2) and

  (b1[x1+1,y1-1]<>2) and

  (b1[x1+1,y1+2]<>2) and

  (b1[x1-1,y1+2]<>2) and

  (b1[x1+1,y1+3]<>2) and

  (b1[x1-1,y1+3]<>2) and

  (b1[x1,y1+3]<>2) and (y1+2<11) then

for i:=0 to k11 do begin

b1[x1,y1+i]:=2;

riad:=true

end

else

riad:=false

end;                            //ставит 4палубный корабль

3: if y1+3<11 then

begin

for i:=0 to k11 do

b1[x1,y1+i]:=2;

riad:=true

  end

else

  riad:=false

end;

if riad = true then begin             //смотрит если корабль поставлен то уменьшает счетчик

if (k11=3) then

begin;

k11:=k11-1;

end;

if (k11=2) and (k33=0) then

begin

k11:=k11-1;

k33:=k33-1

end

Else

k33:=k33-1;

if (k11=1) and (k32=0) then

begin

k11:=k11-1;

k32:=k32-1

end

Else

k32:=k32-1;

if (k11=0) and (k31=0) then

begin

k11:=k11-1;

k31:=k31-1

end

Else

k31:=k31-1;

end;

end;

For i:=1 to 10 do        //закрашивает поставленные корабли Серым

for j:=1 to 10 do

begin

if b1[i,j]=2 then

   begin

     image1.Canvas.Brush.Color:=clgray;

     image1.Canvas.Rectangle(20*i-20,20*j-20,20*i,20*j);

   end;

end;

if k 11<0 then begin       //проверяет поставлены ли все корабли, если "да" то начинает игру с компьютером

label12.Height:=0;

label13.Height:=13;

label14.Height:=13;

label15.Height:=13;

label16.Height:=13;

label17.Height:=13;

label18.Height:=13;

label19.Height:=13;

label20.Height:=13;

label21.Height:=13;

label22.Height:=13;

label23.Height:=13;

label26.Height:=13;

image2.Height:=200;

image2.Width:=200;

for i:=1 to 10 do //ресует белую сетку поля компьютера

for j:=1 to 10 do begin

image2.Canvas.Brush.Color:=clwhite;

image2.Canvas.Rectangle(20*i-20,20*j-20,20*i,20*j) end

end;

end;

end;



Поделиться:


Последнее изменение этой страницы: 2021-05-12; просмотров: 48; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.133.153.110 (0.005 с.)