program gra_4;//odbijanie się piłeczki i od przeszkód uses crt,graph; var gd,dm:smallint; x,y,vx,vy,pl1y,pl2y,pl1x,o1,gr1,gr2,i,vo1:integer; znak:char; Procedure menu(); begin gd:=D8bit;//ilosć kolorów dm:=m800x600;//rozdzielczość initgraph(gd,dm,' '); //inicjacja karty graficznej x:=200; y:=100;vx:=10; vy:=10;pl1y:=100; pl2y:=100; o1:=100;vo1:=5;i:=1; rectangle(10,10,790,590);//prostokąt writeln(' gra ' ); writeln(' wyjscie - ESC'); gotoxy(5,7);write('*** WYNIK: ',gr1:3,' : ',gr2:3,' *** '); end; Procedure plan(); begin setcolor(red);setfillstyle(1,4); bar(1,1,800,10); //prawa bar (1,600,800,590); // bar(1,1,10,600); //lewa //bar(790,1,800,600); bar(200,400,300,500); //przeszkoda bar(500,o1,450,o1+50); bar(11,pl1y,26,pl1y+150); bar(775,pl2y,789,pl2y+150); setcolor(8); line(400,10,400,700); end; procedure pl1(); begin setfillstyle(1,0); bar(11,pl1y,26,pl1y+150); case znak of 'w': pl1y:=pl1y-10; 's': pl1y:=pl1y+10; 'a': pl1x:=pl1x-10; 'd': pl1x:=pl1x+10; end; gotoxy(5,7);write('*** WYNIK: ',gr1:3,' : ',gr2:3,' *** '); if pl1y<-140 then pl1y:=pl1y+15; if pl1y>590 then pl1y:=pl1y-15; if pl1x<10 then pl1x:=pl1x+15; if pl1x>390 then pl1y:=pl1x-15; end; procedure pl2(); begin setfillstyle(1,0); bar(775,pl2y,789,pl2y+150); pl2y:=y-80; end; procedure gol(); begin if x<10 then gr2:= gr2+1 else gr1:=gr1+1; x:=400; y:=50+random(500); vy:=10-random(20); end; procedure akcja(); begin setfillstyle(1,0); bar(100,o1,200,o1+150); o1:=100+random(400); end; begin menu(); plan(); repeat i:=i+1; setcolor(0); circle(x,y,15);//malowanie kulki if (x<10) or (x>790) then gol(); if (getpixel (x-16,y)=4) or (getpixel(x+16,y)=4) then vx:=-vx; if (getpixel (x,y-16)=4) or (getpixel(x,y+16)=4) then vy:=-vy; x:=x+vx;y:=y+vy; if keypressed then znak:=readkey(); if (i mod 10)=8 then akcja(); if (znak='w') or (znak='s') or(znak= 'a') or(znak='d')then pl1(); if (znak='Q') then gol(); pl2(); if znak <> char(27) then znak:='A'; setcolor(2);circle(x,y,15); plan();delay(20); until znak = char(27); end.