Facebook
From zml, 9 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 791
  1. program gra_4;//odbijanie się piłeczki i od przeszkód
  2. uses crt,graph;
  3. var
  4. gd,dm:smallint;
  5. x,y,vx,vy,pl1y,pl2y,pl1x,o1,gr1,gr2,i,vo1:integer;
  6. znak:char;
  7.  
  8.  Procedure menu();
  9.  begin
  10.   gd:=D8bit;//ilosć kolorów
  11.   dm:=m800x600;//rozdzielczość
  12.   initgraph(gd,dm,' ');  //inicjacja karty graficznej
  13.  
  14.   x:=200; y:=100;vx:=10; vy:=10;pl1y:=100; pl2y:=100; o1:=100;vo1:=5;i:=1;
  15.   rectangle(10,10,790,590);//prostokąt
  16.   writeln(' gra ' );
  17.   writeln(' wyjscie - ESC');
  18.   gotoxy(5,7);write('*** WYNIK: ',gr1:3,' : ',gr2:3,' *** ');
  19.  end;
  20.  
  21.   Procedure plan();
  22.  begin
  23.   setcolor(red);setfillstyle(1,4);
  24. bar(1,1,800,10);  //prawa
  25.  bar (1,600,800,590);
  26.  // bar(1,1,10,600); //lewa
  27.   //bar(790,1,800,600);
  28.   bar(200,400,300,500);   //przeszkoda
  29.  bar(500,o1,450,o1+50);
  30.   bar(11,pl1y,26,pl1y+150);
  31.   bar(775,pl2y,789,pl2y+150);
  32.   setcolor(8);
  33.   line(400,10,400,700);
  34.    end;
  35.  
  36. procedure pl1();
  37. begin
  38. setfillstyle(1,0);
  39. bar(11,pl1y,26,pl1y+150);
  40. case znak of
  41. 'w': pl1y:=pl1y-10;
  42. 's': pl1y:=pl1y+10;
  43. 'a': pl1x:=pl1x-10;
  44. 'd': pl1x:=pl1x+10;
  45.   end;
  46.   gotoxy(5,7);write('*** WYNIK: ',gr1:3,' : ',gr2:3,' *** ');
  47. if pl1y<-140 then pl1y:=pl1y+15;
  48. if pl1y>590 then pl1y:=pl1y-15;
  49. if pl1x<10 then pl1x:=pl1x+15;
  50. if pl1x>390 then pl1y:=pl1x-15;
  51. end;
  52.  
  53. procedure pl2();
  54. begin
  55. setfillstyle(1,0);
  56. bar(775,pl2y,789,pl2y+150);
  57. pl2y:=y-80;
  58. end;
  59. procedure gol();
  60. begin
  61. if x<10 then gr2:= gr2+1   else gr1:=gr1+1;
  62. x:=400;
  63. y:=50+random(500); vy:=10-random(20);
  64. end;
  65.  
  66. procedure akcja();
  67. begin
  68. setfillstyle(1,0);
  69. bar(100,o1,200,o1+150);
  70. o1:=100+random(400);
  71. end;
  72.  
  73. begin
  74.  menu();
  75.  plan();
  76.  repeat
  77.  i:=i+1;
  78.  setcolor(0);
  79.  circle(x,y,15);//malowanie kulki
  80.  if (x<10) or (x>790) then gol();
  81.  if (getpixel (x-16,y)=4) or (getpixel(x+16,y)=4) then vx:=-vx;
  82.  if (getpixel (x,y-16)=4) or (getpixel(x,y+16)=4) then vy:=-vy;
  83.  x:=x+vx;y:=y+vy;
  84.    if keypressed then znak:=readkey();
  85.     if (i mod 10)=8 then akcja();
  86.  if (znak='w') or (znak='s') or(znak= 'a') or(znak='d')then pl1();
  87.  if (znak='Q') then gol();
  88.  pl2();
  89.  if znak <> char(27) then znak:='A';
  90.  setcolor(2);circle(x,y,15); plan();delay(20);
  91.  until znak = char(27);
  92. end.