Informatika gyűjtemény

NézetNyomtat

Pattogó labda

Egy egyszerű szimulációt készítünk el. Több kisebb lépésben haladunk a cél felé.

1. változat: Körök kirajzolása

program grafika01;
uses graph,crt;
var gd,gm: integer;
BEGIN
    detectgraph(gd,gm);
    initgraph(gd,gm,'');
        circle(50,50,10);
        circle(100,100,80);
        circle(200,300,150);
        circle(400,500,250);
    readln;
    closegraph;
END.

2. változat: Egy kör végigfut a képernyőn

program grafika02;
uses graph,crt;
var 
    gd,gm   : integer;
    cx,cy   : integer; {középpont koordinátái}
    i       : integer;
    vx,vy   : integer; {sebességvektor koordinátái}
BEGIN
    detectgraph(gd,gm);
    initgraph(gd,gm,'');
        cx := 20; cy := 20; vx := 2; vy := 3;
        circle(cx,cy,10);
        for i := 1 to 1000 do
        begin
            cx := cx + vx; cy := cy + vy;
            circle(cx,cy,10);
            delay(10);
        end;
    readln; 
    closegraph;
END.

3. változat: Egy kör végigfut a képernyőn animálva

program grafika03;
uses graph,crt;
var 
    gd,gm   : integer;
    cx,cy   : integer; {középpont koordinátái}
    i       : integer;
    vx,vy   : integer; {sebességvektor koordinátái}
BEGIN
    detectgraph(gd,gm);
    initgraph(gd,gm,'');
        cx := 20; cy := 20; vx := 2; vy := 3;
        circle(cx,cy,10);
        for i := 1 to 1000 do
        begin
            setcolor(black);circle(cx,cy,10);
            cx := cx + vx; cy := cy + vy;
            setcolor(white);circle(cx,cy,10);
            delay(10);
        end;
    readln; 
    closegraph;
END.

4. változat: Egy kör pattog egy téglalapban

program grafika04;
uses graph,crt;
var gd,gm   : integer;
    cx,cy   : integer; {középpont koordinátái}
    i       : integer;
    vx,vy   : integer; {sebességvektor koordinátái}
BEGIN
    detectgraph(gd,gm);
    initgraph(gd,gm,'');
    rectangle(9,9,401,301);
    cx := 20; cy := 20;
    vx := 2; vy := 3;
    circle(cx,cy,10);
    for i := 1 to 1000 do
    begin
        setcolor(black);circle(cx,cy,10);
        cx := cx + vx;
        cy := cy + vy;
        if cx >= 390 then
        begin
            cx := cx - vx;
            vx := -vx;
        end; {jobbra fal}
        if cx <= 20 then
        begin
            cx := cx - vx;
            vx := -vx;
        end; {balra fal}
        if cy >= 290 then
        begin
            cy := cy - vy;
            vy := -vy;
        end; {lent fal}
        if cy <= 20 then
        begin
            cy := cy - vy;
            vy := -vy;
        end; {fent fal}
        setcolor(white);circle(cx,cy,10);
        delay(10);
    end;
    readln; closegraph;
END.

5. változat: Egy kör pattog egy téglalapban, van kijárat

6. változat: Egy kör pattog egy téglalapban, van gravitáció