| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- Uses CRT;
- Var
- s1, s2 : string[50];
- c : char;
- len, position : byte;
- k : word;
- dir : integer;
- Begin
- dir := 0;
- k := 0;
- ClrScr;
- TextColor(7);
- GotoXY(5,8);
- Write('Введите строку ');
- Readln(s1);
- len := length(s1) +1;
- ClrScr;
- GotoXY(10,2);
- Write('Stand : ');
- GotoXY(10,4);
- Write('Slide :');
- GotoXY(30,10);
- Write('Result : ');
- GotoXY(30,2);
- Write(s1);
- Position := 15;
- c := #12;
- repeat
- if keypressed then begin
- c := readkey;
- repeat
- k := random(15);
- TextColor(k);
- until (k <> 8) and (k <> 0);
- if c = #0 then c := readkey;
- case c of
- #77 : begin
- if length(s2) < len -1 then Begin
- insert(s1[1],s2,Length(s2) + 1);
- delete(s1,1,1);
- GotoXY(20,2);
- ClrEOL;
- GotoXY(30 + (len-length(s1)-1), 2);
- Write(s1);
- GotoXY(29,4);
- ClrEOL;
- GotoXY(30,4);
- Write(s1);
- end;
- end;
- #75 : begin
- if length (s2) > 0 then begin
- insert(s2[length(s2)],s1,1);
- GotoXY(30 + len - length(s1)-1,2);
- ClrEOL;
- Write(s1);
- GotoXY(30,4);
- ClrEOL;
- Write(s1);
- Delete(s2,length(s2),1);
- end;
- end;
- end;
- end;
- GotoXY(1,12);
- ClrEOL;
- GotoXY(position,12);
- Write(s2);
- repeat
- k := random(1000);
- until k > 10;
- Delay (k);
- if position < 2 then dir := 1;
- if position + length(s2) > 79 then dir := 0;
- if dir = 0 then dec(position)
- else inc(position);
- until c = #27;
- TextColor(7);
- ClrScr;
- end.
|