Мерцание курсора - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

Всем здраствуйте, помогите мне,пожалуйста. Написать программу движения символа в консольном окне. Движе-ние символа управляется клавишами-стрелками. При этом пользователю не видно движения курсора. Курсор как бы находится в левом верхнем углу окна.Заранее благодарен.Исходник ниже

Решение задачи: «Мерцание курсора»

textual
Листинг программы
uses crt;
var
  x, y, ox, oy: Integer;
  c: Char;
begin
  ClrScr; x:=1; y:=1;
  GotoXY(x,y); Write(#4); GotoXY(x,y); 
  repeat
    c:=ReadKey;
    if c=#0 then begin
      ox:=x; oy:=y;
      case ReadKey of
      #38,#72: if y>1  then Dec(y);
      #39,#77: if (x<79) or (x=79) and (y<>25) then Inc(x);
      #40,#80: if (y<24) or (y=24) and (x<>80) then Inc(y);
      #37,#75: if x>1  then Dec(x);
      end;
      if (x<>ox) or (y<>oy) then begin
        GotoXY(ox,oy); Write(' ');
        GotoXY(x,y);   Write(#4); GotoXY(x,y);
      end;
    end;
  until c=#27;
end.

Объяснение кода листинга программы

  1. В начале кода подключается библиотека crt.
  2. Объявляются переменные x, y, ox, oy типа Integer и одна переменная c типа Char.
  3. Выполняется очистка экрана с помощью функции ClrScr.
  4. Устанавливаются начальные значения переменных x и y.
  5. С помощью функций GotoXY и Write выводится символ #4 на экран.
  6. Запускается цикл повторения, который будет выполняться до тех пор, пока не будет нажата клавиша #27.
  7. Внутри цикла считывается символ клавиши с помощью функции ReadKey.
  8. Проверяется значение считанной клавиши. Если это #0, то сохраняются текущие значения переменных x и y.
  9. Если считанная клавиша — #38 или #72, то уменьшается значение переменной y.
  10. Если считанная клавиша — #39, #77, то увеличивается значение переменной x, при условии, что x меньше 79 и y не равно 25.
  11. Если считанная клавиша — #40, #80, то уменьшается значение переменной y.
  12. Если считанная клавиша — #37, #75, то увеличивается значение переменной x.
  13. Если считанная клавиша — #38, #72, то выводится на экран символ ' ' и перемещается обратно к точке, где были сохранены предыдущие значения переменных x и y.
  14. Если считанная клавиша — #39, #77, то выводится на экран символ #4 и перемещается к точке, где были сохранены предыдущие значения переменных x и y.
  15. Если считанная клавиша — #40, #80, то выводится на экран символ #4 и перемещается к точке, где были сохранены предыдущие значения переменных x и y.
  16. Если считанная клавиша — #37, #75, то выводится на экран символ #4 и перемещается к точке, где были сохранены предыдущие значения переменных x и y.
  17. После выхода из цикла, выполняется очистка экрана с помощью функции ClrScr.
  18. Конец программы.

Оцени полезность:

11   голосов , оценка 3.909 из 5
Похожие ответы