Создание игры "Морской бой"

Автор работы: Пользователь скрыл имя, 26 Октября 2010 в 17:19, Не определен

Описание работы

Игрушка, созданная на языке Delphi

Файлы: 26 файлов

BMBACK.bmp

— 111.40 Кб (Скачать файл)

BMBMENU.jpg

— 12.91 Кб (Скачать файл)

morb.cnt

— 74 байт (Скачать файл)

morb.GID

— 10.57 Кб (Скачать файл)

morb.HLP

— 1.15 Мб (Скачать файл)

morb.ico

— 766 байт (Скачать файл)

Project1.cfg

— 434 байт (Скачать файл)

Project1.dof

— 2.24 Кб (Скачать файл)

Project1.dpr

— 419 байт (Скачать файл)

Project1.res

— 876 байт (Скачать файл)

Project1.~dpr

— 263 байт (Скачать файл)

Unit1.dcu

— 31.99 Кб (Скачать файл)

Unit1.ddp

— 51 байт (Скачать файл)

Unit1.dfm

— 5.70 Кб (Скачать файл)

Unit1.pas

— 35.84 Кб (Скачать файл)

Unit1.~ddp

— 51 байт (Скачать файл)

Unit1.~dfm

— 5.70 Кб (Скачать файл)

Unit1.~pas

— 35.86 Кб (Скачать файл)

Unit2.dcu

— 4.08 Кб (Скачать файл)

Unit2.ddp

— 51 байт (Скачать файл)

Unit2.dfm

— 29.88 Кб (Скачать файл)

Unit2.pas

— 798 байт (Скачать файл)

Unit2.~ddp

— 51 байт (Скачать файл)

Unit2.~dfm

— 29.72 Кб (Скачать файл)

Unit2.~pas

— 658 байт (Скачать файл)

Курсовая по Delphi.doc

— 487.00 Кб (Скачать файл)

end 
 
 

else            //ротация кораблей по вертикали

begin 

case k11 of   //смотрит какой корабль сейчас  надо расстанавливать

 0: begin if  (b1[x1,y1]<>2)  then

    b1[x1,y1]:=1; end;

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

    for i:=0 to 1 do  begin

    b1[x1,y1+i]:=1 end; end;

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

    for i:=0 to 2 do

    b1[x1,y1+i]:=1; end;

3: begin if  (b1[x1,y1]<>2) and (b1[x1,y1+1]<>2) and (b1[x1,y1+2]<>2) and (b1[x1,y1+3]<>2)  then

    for i:=0 to 3 do

    b1[x1,y1+i]:=1; end;

   end; 

For i:=1 to 10 do        //рисует  желтым цветом корабль(ещё не  поставленный)

  for j:=1 to 10 do

    begin

      if (b1[i,j]=1) then

        begin

          image1.Canvas.Brush.Color:=clyellow;

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

        end;

    end;

end;

end;

end 

else 

if rot=false then begin   //ставит корабль по  горизонтали 

case k11 of     //смотрит какой корабль ставить

0: case  x1 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  x1 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 x1 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 x1+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

    k31:=k31-1;

end;

end 

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

  begin

case k11 of              //смотрит какой корабль ставить

0: case  x1 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 x1 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

Информация о работе Создание игры "Морской бой"