Главная    Почта    Новости    Каталог    Одноклассники    Погода    Работа    Игры     Рефераты     Карты
  
по Казнету new!
по каталогу
в рефератах

Арканоид на Паскале

имая левую кнопку мыши ставить(рисовать) кубики;
     3) после построения уровня нажать правую кнопку мыши;
     4) после появления меню номеров уровней выбрать номер сохраняемого
        уровня (файла);
 
 
                          Спецификации подпрограмм:
 
      1. procedure text_na_ekran;
 
      Назначение: используется как справка и всегда показывается при
запуске;
 
      Входные данные:
      нет;
      Выходные данные:
      нет;
 
      2. function netu:boolean;
 
      Назначение: при нажатии левой кнопки мыши определяет, есть ли на этом
месте уже кубик или нет;
 
      Входные данные:
      нет;
      Выходные данные:
      True: рисуем кубик;
      False: на этом месте уже есть кубик, значит не рисуем;
 
      3. procedure stroika;
 
      Назначение: рисует кубик и записывает его координаты в файл;
 
      Входные данные: нет;
      Выходные данные: нет;
      4. procedure search_y;
 
      Назначение: ищет подходящие координаты для построения кубика;
 
      Входные данные: нет;
      Выходные данные: нет;
 
 
      5. procedure build_level;
 
      Назначение: строит этап, используя вышеописанные подпрограммы;
 
      Входные данные: нет;
      Выходные данные: нет;
 
 
                              Текст программы:
 
program markedit;
uses graph,crt,mymouse;
type t_kubik=-10..640;
     t_arr=array[1..494] of t_kubik;
var x,y:word;
    f,f_s:text;
    a:t_arr;
    i:1..494;
procedure initgr;
var grdriver,grmode:integer;
begin
     grdriver:=vga;
     grmode:=vgahi;
     initgraph(grdriver,grmode,'');
     if GraphResult <> grOk then halt;
end;
procedure text_na_ekran;
var f:text;
    a:char;
begin
     assign(f,'stroika.txt');
     reset(f);
 
     textmode(1);
     textbackground(3);
     textcolor(0);
     clrscr;
     while not eof(f) do
           begin
                while not(eof(f)) do
                      begin
                        read(f,a);
                        write(a);
                      end;
                writeln;
           end;
     while not(keypressed) do
           case readkey of
            ' ':exit;
           end;
     close(f);
end;
function netu:boolean;
var k:1..494;
begin
     for k:=1 to 494 do
         begin
              if a[k]=x then
                 if a[k+1]=y then
                    begin netu:=false; exit; end;
         end;
     netu:=true;
end;
procedure stroika;
var color:1..15;
    pattern:1..12;
begin
     if netu then
        begin
             writeln(f,x,' ',y);
             a[i]:=x;
             a[i+1]:=y;
             inc(i,2);
             color:=random(14)+1;
             pattern:=random(11)+1;
             setcolor(color);
             setfillstyle(pattern,color);
             bar3d(x,y,48+x,y-20,0,false);
        end;
end;
procedure search_y;
begin
     case y of
          22..42:  begin y:=42; stroika; end;
          43..63:  begin y:=63; stroika; end;
          64..84:  begin y:=84; stroika; end;
          85..105: begin y:=105; stroika; end;
          106..126:begin y:=126; stroika; end;
          127..147:begin y:=147; stroika; end;
          148..168:begin y:=168; stroika; end;
          169..189:begin y:=189; stroika; end;
          190..210:begin y:=210; stroika; end;
          211..231:begin y:=231; stroika; end;
          232..252:begin y:=252; stroika; end;
          263..273:begin y:=273; stroika; end;
          274..294:begin y:=294; stroika; end;
          295..315:begin y:=315; stroika; end;
          316..336:begin y:=336; stroika; end;
          337..357:begin y:=357; stroika; end;
          358..378:begin y:=378; stroika; end;
          379..399:begin y:=399; stroika; end;
          400..420:begin y:=420; stroika; end;
     end;
end;
procedure build_level;
<
Пред.1112131415След.
скачать работу

Арканоид на Паскале

 

Отправка СМС бесплатно

На правах рекламы


ZERO.kz
 
Модератор сайта RESURS.KZ