- 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.