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

Автор работы: Пользователь скрыл имя, 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 Кб (Скачать файл)
"justify">     case m of

      1..8: case z of

                 0:  if   (b2[m,n]<>2) and

                           (b2[m+1,n+1]<>2) and

                           (b2[m,n+1]<>2) and

                           (b2[m-1,n+1]<>2) and

                           (b2[m-1,n]<>2)and

                           (b2[m-1,n-1]<>2)and

                           (b2[m,n-1]<>2) and

                           (b2[m+1,n-1]<>2) and 

                           (b2[m+2,n-1]<>2) and

                           (b2[m+2,n+1]<>2) and

                           (b2[m+2,n]<>2)  then begin

                          for i:=0 to 1 do

                             b2[m+i,n]:=2;

                             m2:=m2+1

                                            end;

                 1:     if  (b2[m,n]<>2) and

                           (b2[m-1,n-1]<>2) and

                           (b2[m-1,n]<>2) and

                           (b2[m-1,n+1]<>2) and

                           (b2[m,n-1]<>2)and

                           (b2[m+1,n+1]<>2)and

                           (b2[m+1,n]<>2) and

                           (b2[m+1,n-1]<>2) and 

                           (b2[m+1,n-2]<>2) and

                           (b2[m-1,n-2]<>2) and

                           (b2[m,n-2]<>2)  then

                              begin

                          for i:=0 to 1 do

                             b2[m,n-i]:=2;

                                m2:=m2+1

                              end

                  end; 

      9..10: case z of

                 0:    if  (b2[m,n]<>2) and

                           (b2[m-1,n-1]<>2) and

                           (b2[m-1,n]<>2) and

                           (b2[m-1,n+1]<>2) and

                           (b2[m,n-1]<>2)and

                           (b2[m+1,n+1]<>2)and

                           (b2[m+1,n]<>2) and

                           (b2[m+1,n-1]<>2) and 

                           (b2[m+1,n-2]<>2) and

                           (b2[m-1,n-2]<>2) and

                           (b2[m,n-2]<>2)  then

                              begin

                          for i:=0 to 1 do

                             b2[m,n-i]:=2;

                                m2:=m2+1

                              end;

                 1: if     (b2[m,n]<>2) and

                           (b2[m+1,n+1]<>2) and

                           (b2[m,n+1]<>2) and

                           (b2[m-1,n+1]<>2) and

                           (b2[m-1,n]<>2)and

                           (b2[m-1,n-1]<>2)and

                           (b2[m,n-1]<>2) and

                           (b2[m+1,n-1]<>2) and 

                           (b2[m-2,n-1]<>2) and

                           (b2[m-2,n+1]<>2) and

                           (b2[m-2,n]<>2)  then

                       begin

                          for i:=0 to 1 do

                             b2[m-i,n]:=2;

                               m2:=m2+1

                      end 

                  end 

      end 

end 

end; 

//подлодки

while m1<4 do begin

  m:=random(10)+1;

  n:=random(10)+1;

while m1<4 do begin

  m:=random(10)+1;

  n:=random(10)+1;

if  (b2[m,n]<>2) and

     (b2[m+1,n+1]<>2) and

     (b2[m,n+1]<>2) and

     (b2[m-1,n+1]<>2) and

     (b2[m-1,n]<>2)and

     (b2[m-1,n-1]<>2)and

     (b2[m,n-1]<>2) and

     (b2[m+1,n-1]<>2) and

     (b2[m+1,n]<>2)  then  begin 

      b2[m,n]:=2;

      m1:=m1+1;

end 

end;

end;

end; 

procedure TForm1.rastkor(Sender: TObject; Shift: TShiftState; X,

  Y: Integer);                     //расстановка кораблей на поле игрока

begin

image1.Canvas.Brush.Color:=clwhite;

y1:=(Y div 20)+1;

x1:=(X div 20)+1;

For i:=1 to 10 do

  for j:=1 to 10 do

    begin

      if (b1[i,j]<>2) and (b1[i,j]<>3) and (b1[i,j]<>4) then

        begin

          b1[i,j]:=0;

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

        end;

    end;

if rot=false then begin     //ротация кораблей по горизонтали 

case k11 of                 //смотрит какой корабль надо располагать

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

    for i:=0 to 0 do

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

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

    for i:=0 to 1 do  begin

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

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

    for i:=0 to 2 do

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

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

    for i:=0 to 3 do

    b1[x1+i,y1]:=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 
 
 

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

begin 

case k11 of

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

    for i:=0 to 0 do

    b1[x1,y1+i]:=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; 
 
 
 

procedure TForm1.nash(Sender: TObject; Button: TMouseButton;

  Shift: TShiftState; X, Y: Integer);     //процедура постановки корабля

begin

x1:=(X div 20)+1;

y1:=(Y div 20)+1;

if k11>=0 then begin    //смотрит поставлены все корабли или нет

if button=mbright then  begin   //производит ротацию  корабля по нажатии правой кн мыши

     if rot=true then

       rot:=false

     else

       rot:=true;

       begin

image1.Canvas.Brush.Color:=clwhite;

For i:=1 to 10 do                 //рисует в пустых клетках белые квадрвты

  for j:=1 to 10 do

    begin

      if b1[i,j]<>2 then

        begin

          b1[i,j]:=0;

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

        end;

    end;

if rot=false then 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+1,y1]<>2)then

    for i:=0 to 1 do  begin

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

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

    for i:=0 to 2 do

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

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

    for i:=0 to 3 do

   b1[x1+i,y1]:=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;

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