Арканоид на Паскале
имая левую кнопку мыши ставить(рисовать) кубики;
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;
<
| | скачать работу |
Арканоид на Паскале |