![]() |
![]() |
Chuchello |
![]()
Сообщение
#1
|
Гость ![]() |
Решил освоить паскаль, а для этого прикупил книгу за авторством Лукина-"ТР 7.0 для начинающих", и вот там задание создать игру "Торпедная атака".Програма показалась не совсем сложной даже для меня, но вот возникла проблема: при выстреле торпеды всё идеёт нормально, потом результаты анализируются и, когда должна пойти вторая попытка торпеда сама вылетает. Я предпологаю, что это из-за буфера, в котором остаётся нажатой клавиша пробовал вставлять строку для очистки , не помогает, а вот сама программа:
program torped_atack; uses crt,graph; var schet,torped,device,mode,x,y,x1,y1:integer; s,a,kl:char;name:string; procedure risunok;forward; procedure analiz; begin torped:=torped+1; if torped=5 then halt; risunok; end; procedure nepopal; begin schet:=schet+0; analiz; end; procedure popal; begin schet:=schet+1; analiz; end; pROCEDURE ATAKA; BEGIN x1:=400; y1:=360; repeat setcolor(7); line(x,240,y,240); line(x-20,220,y-40,240); line(x+60,220,y,240); line(x-20,220,x+60,220); rectangle(310,x1,330,y1); setfillstyle(1,7); floodfill(x+47,230,7); floodfill(315,x1-39,7); delay(2000); setcolor(9); line(x,240,y,240); line(x-20,220,y-40,240); line(x+60,220,y,240); line(x-20,220,x+60,220); setcolor(1); rectangle(310,x1,330,y1); setfillstyle(1,7); floodfill(x+47,230,7); floodfill(315,x1-39,7); y:=y+1; x:=x+1; x1:=x1-1; y1:=y1-1; until y1=240; if (y1+100<=y) and (y1+100>=y-40) then popal else nepopal; END; procedure clearboofer; begin while keypressed do kl:=readkey; ataka; end; PROCEDURE KORABL; label i2; BEGIN x:=1; y:=40; repeat setcolor(7); line(x,240,y,240); line(x-20,220,y-40,240); line(x+60,220,y,240); line(x-20,220,x+60,220); setfillstyle(1,7); floodfill(x+47,230,7); delay(2000); setcolor(9); line(x,240,y,240); line(x-20,220,y-40,240); line(x+60,220,y,240); line(x-20,220,x+60,220); setfillstyle(1,7); floodfill(x+47,230,7); y:=y+1; x:=x+1; if keypressed then begin kl:=readkey; if kl='x' then ataka end; until y1=240; end; procedure risunok; begin device:=0; initgraph(device,mode,'d:bpbgi'); line(1,240,640,240); setfillstyle(1,9); floodfill(1,1,15); setfillstyle(1,1); floodfill(400,400,15); line(300,480,300,400); line(340,480,340,400); line(300,400,340,400); setfillstyle(1,0); floodfill(301,430,15); korabl; end; procedure nachalo; label i1; begin schet:=0; writeln('Enter your name'); readln(name); writeln('Control:S-start game'); writeln('Space-atack in game'); i1: s:=readkey; if s='s' then risunok else goto i1; end; begin torped:=1; nachalo; end. |
![]() ![]() |
![]() |
Текстовая версия | 28.07.2025 12:04 |