Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Написание игр _ Моя первая игрушка

Автор: trminator 11.04.2003 21:51

Вот... раскопал, когда чистил свой хард от мусора. Писал когда учился программировать. Детство, да и только!
=================================
PROGRAM igra;
USES graph,CRT;
VAR Device,Mode,torped,podbit,x,y,a,b:integer;
   imya,tor,pod:string;
   kl,otv:char;
   Procedure RISUNOK;forward;
   Procedure NACHALO;forward;
{=============================================================}

PROCEDURE ZAVERSH;
  BEGIN SetColor(Red);
  case podbit of
       0    :OutTextXY(200,200,'Very Bad');
       1,2  :OutTextXY(200,200,'Not Very Good...');
       9,10 :OutTextXY(200,200,'Excellent!!!');
       else  OutTextXY(200,200,'Good!');
  end;
  ReadLn;
  ClearDevice;
  OutTextXY(200,200,'Game Over!');
  ReadLn;
  CloseGraph;
  halt;
  END;
{=============================================================}

PROCEDURE POPAL;
  BEGIN SetColor(white);
        OutTextXY(200,100,'Hurra!');
        torped:=torped-1;
        podbit:=podbit+1;
        ReadLn;
         if torped<1 then ZAVERSH else risunok;
  END;
{=============================================================}

PROCEDURE NE_POPAL;
  BEGIN SetColor(white);
        OutTextXY(200,100,':-(');
        torped:=torped-1;
        readLn;
         if torped<1 then ZAVERSH else risunok;
        ReadLn;
  END;
{=============================================================}

PROCEDURE ATAKA;
  BEGIN y:=480;
         repeat
               SetColor(white);
               Ellipse(x,200,0,360,30,10);{korabl'}
               setColor(black);
               Ellipse(x,200,0,360,30,10);
               x:=x+3;
               SetColor(white);
               line(0,200,640,200);
               SetFillStyle(1,LightBlue);
               FloodFill(x+2,198,White);
               Ellipse(420,y,0,360,5,10);{torpeda}
               Delay(5);
               SetColor(black);
               Ellipse(420,y,0,360,5,10);
               SetFillStyle(1,blue);
               FloodFill(416,y+4,white);
               FloodFill(x+2,202,white);
               y:=y-3;
         until y<200;
         if(x>400) and (x<440) then popal else ne_popal;
  END;
{=============================================================}

PROCEDURE KORABL;
 BEGIN
REPEAT
  x:=40;
  repeat
          SetColor(white);
          Ellipse(x,200,0,360,30,10);
          randomize;
          a:=random(15);
          Delay (a);
          setColor(black);
          Ellipse(x,200,0,360,30,10);
          x:=x+1;
          SetColor(white);
          line(0,200,640,200);
          SetFillStyle(1,LightBlue);
          FloodFill(x+2,198,White);
          SetFillStyle(1,blue);
          FloodFill(x+2,202,white);
             If KeyPressed then begin
                         kl:=ReadKey;
                         if kl=' 'then ataka;
             end{if};
  until x>600;
  x:=600;
  repeat
          SetColor(white);
          Ellipse(x,200,0,360,30,10);
          Delay (a);
          setColor(black);
          Ellipse(x,200,0,360,30,10);
          x:=x-1;
          SetColor(white);
          line(0,200,600,200);
             If KeyPressed then begin
                         kl:=ReadKey;
                         if kl=' 'then ataka;
             End{if};
  until x<20;
UNTIL 3<2;
  END;
{============================================================}

PROCEDURE RISUNOK;
  BEGIN  ClearDevice;
         Line(0,200,640,200);
         Circle(450,50,30);
         SetFillStyle(1,Yellow);
         FloodFill(450,50,white);
         SetFillStyle(1,Lightblue);
         FloodFill(10,10,white);
         SetFillStyle(1,Blue);
         FloodFill(630,470,white);
         SetTextStyle(4,0,4);
         OutTextXY(10,10,imya);
         Str(Torped,tor);
         Str(Podbit,pod);
         OutTextXY(10,40,'Rockets:');
         OutTextXY(120,40,tor);
         OutTextXY(10,70,'Kills:');
         OutTextXY(100,70,pod);
         rectangle(410,470,430,480);
         KORABL;
  END;
{===========================================================}

PROCEDURE NACHALO;
  BEGIN  ClearDevice;
         SetColor(White);
         Torped:=10;
         Podbit:=0;
         Write('Enter your name : ');
         ReadLn(imya);
         RISUNOK;
  END;
{===========================================================}

BEGIN
    Device:=0;
    InitGraph(Device,Mode,'');
    DirectVideo:=false;
    NACHALO;
END.

ЗЫ: Простите что без единого комментария

Автор: AlaRic 12.04.2003 21:27

Отличная игра!

Автор: Slam 12.04.2003 23:15

Да, интересная штука. Только постоянное обновление экраны стоит убрать...

Автор: Abram(ekaterinburg) 30.08.2004 17:09

Классео, что я нашел ету игру. А то я сам дуб в паскале....надеюсь смогу сам переделать ее))))

Автор: FreeMan 30.08.2004 17:38

Класс, похожа на мою первую, хм в графыческом интерфейсе. rolleyes.gif

Автор: GoodWind 3.09.2004 3:32

Мда..я тоже такое когда-то писал, только у меня "самолет" летал и с него надо было бомбить "бункер". :p8:

Автор: Бродяжник 3.09.2004 13:37

Что ли и себе чего выложить... это, правда, уже не совсем первая, первые не сохранились...
Это скриншот


Эскизы прикрепленных изображений
Прикрепленное изображение

Автор: Бродяжник 3.09.2004 13:38

А это оно самое


Прикрепленные файлы
Прикрепленный файл  Labir.zip ( 21.18 килобайт ) Кол-во скачиваний: 427

Автор: Cros 9.09.2004 1:00

Молодца что смог её дописать ..... я горжусь тобой :D :D :D

Автор: EXE 7.12.2004 20:02

Просто, но со вкусом... и ПОСТОЯННЫМ ОБНОВЛЕНИЕМ ЭКРАНА :fire: .
Может стоило бы с помощью видеостраниц писать? или с динамическими переменными? А?

Если чё съюзаю - покажу!