[Pascal] Spadająca piłka

0

Cześć chłopaki. :)

Jestem studentką socjologii, ale w moim planie znalazła się również Informatyka. Mam jednak szansę zostać zwolniona z zajęć Informatyki, jeżeli napiszę malutki programik w Pascalu. Trochę interesuję się informatyką i znam podstawy tego języka, ale nie potrafię tego programiku tak napisać, aby działał. :( Muszę to przygotować na poniedziałek (27 listopada) i nie wiem czy mi się uda. Może ktoś z Was mógłby mi pomóc?

Może opiszę, w czym rzecz:

Program ma przedstawiać piłkę (zobrazowaną jako gwiazdka - "*"). Piłka ta ma spadać z góry okna na dół, po czym ma się odbić trzy razy od dołu ekranu (za każdym razem odbija się coraz niżej). Po 3 odbiciu już się więcej nie odbija i zatrzymuje się na dole ekranu. Po chwili rusza w stronę lewej krawędzi okna (toczy się po dolnej krawędzi okna) i kiedy do niej doleci to znika.

Dla Was taki programik to pewnie 10 minut roboty, ale ja się w tym już gubię, a bardzo chciałbym być zwolniona z tych zajęć, gdyż dodatkowo pracuję i każda wolna godzina jest dla mnie na miarę złota.

Moglibyście pomóc mi w napisaniu tego programu? A może ktoś byłby tak uprzejmy i poświęcił chwile czasu na napisanie za mnie tego programu? Byłabym na prawdę wdzięczna!

Czekam na jakąkolwiek pomoc!

Pozdrawiam
Monika

0

nie mam kompilatora wiec napisze z palca,
to jest mniej więcej coś takiego

program spadajaca_pilka;
uses crt;
const x = 30; {mozna sobie zmieniac ta wartosc}
var i:integer;

procedure odbij_pileczke(y1,y2:integer);
begin
for i:=y2 downto y1 do begin
GOTOxy(x,i);                         
write('*');
delay(500);
clrscr;
end;

for i:=y1 to y2 do begin
GOTOxy(x,i);                         
write('*');
delay(500);
clrscr;
end;

end;

begin
for i:=1 to 20 do begin
GOTOxy(x,i);                         
write('*');
delay(500);
clrscr;
end;

odbij_pileczke(14,20);
odbij_pileczke(16,20);
odbij_pileczke(18,20);

delay(2000);

for i:=x downto 1 begin
GOTOxy(i,20);                         
write('*');
delay(500);
clrscr;
end;

end.
0

mały błąd się wkradł

for i:=x downto 1 begin

powinno byc

for i:=x downto 1 do begin
0

Jesteś pierwsza, która logicznie uzasadniła dlaczego chce gotowca. Doceniam to. Oto nagroda ;] Powodzenia w socjologii.

program Pilka;

uses Crt;

const
 X :Byte = 40; { wpolzedna startu pilki na osi x (kolumna) }
 Y :Byte = 25; { wpolzedna startu pilki na osi y (wiersz)  }

{ rysowanie pilki na ekranie }
procedure Rysuj(AX, AY :Byte);
begin
   ClrScr;         { czyszczenie       }
   GoToXY(AX, AY); { przejdz do punktu }
   Write('*');     { rysuj pilke       }
   Delay(100);     { predkosc animacji }
end;

procedure Grawitacja;
var i :Byte;
begin
 for i := 1 to Y do Rysuj(X, i); { opadanie }
end;

procedure Odbicie(JakWysoko :Byte);
var i :Byte;
begin
 for i := Y downto (Y-JakWysoko) do Rysuj(X, i); { podskok  }
 for i := (Y-JakWysoko) to Y do Rysuj(X, i);     { opadanie }
end;

procedure Kulanie;
var i :Byte;
begin
 for i := X downto 0 do Rysuj(i, Y); { na lewo }
end;

begin
 ClrScr; { czyszczenie ekranu }
 Grawitacja;
 Odbicie(12);
 Odbicie(6);
 Odbicie(3);
 Kulanie;
end.

Materiały pokrewne.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0