
- •Языки и системы программирования Алгоритмы
- •Языки программирования
- •Область применения языков программирования
- •Сложность и эффективность языков программирования
- •Трансляторы
- •Характеристика с/п Pascal abc
- •Используемые в с/п Pascal abc «горячие клавиши»
- •Структура программы на Паскале
- •Сообщения об ошибках. Отладка программы.
- •Система подсказок.
- •Команды вывода данных на экран
- •Константы
- •Переменные
- •Арифметические выражения. Приоритет арифметических операций
- •Стандартные арифметические функции
- •Процедуры инкремента и декремента
- •Примеры решения линейных задач
- •Ввод данных с клавиатуры
- •Примеры решения диалоговых задач
- •Линейные задачи для самостоятельной работы
- •Лаб. 1. Линеаризовать выражение:
- •Лаб. 2. Линейные диалоговые задачи (на одно действие)
- •Лаб. 3. Диалоговые задачи на несколько действий
- •Ветвление
- •Логические выражения
- •Вложенное ветвление
- •Лаб. 4. Задачи на ветвление:
- •Лаб. 5. Задачи на ветвление с вычислениями:
- •Выбор варианта
- •Лаб. 6. Задачи на выбор варианта:
- •Как выбрать цикл?
- •Экстренные события в теле цикла
- •Лаб. 7. Числовые задачи с циклом For
- •Лаб. 8. Сюжетные задачи с циклом For
- •Лаб. 9. Задачи с условными циклами
- •Библиотека crt
- •Библиотека sounds
- •Лаб. 10. Задачи с использованием циклов и библиотек crt и sounds
- •Порядковые типы данных
- •Перечислимый тип данных
- •Символьный тип данных
- •Ограниченный (интервальный) тип данных
- •Лаб. 11. Задачи со строками
- •Массивы
- •Решение задач с массивами
- •Поиск минимального (максимального) элемента массива
- •Сортировка массива.
- •Двумерные и многомерные массивы
- •Лаб. 12. Задачи с одномерными массивами
- •Лаб. 13. Задачи с двумерными массивами
- •Множества
- •Файлы данных
- •Записи и базы данных
- •Библиотека GraphAbc
- •Действия с графическим окном:
- •Точечная графика
- •Графические примитивы
- •Текст в графическом окне
- •Использование готовых точечных рисунков
- •Вспомогательные алгоритмы
- •Рекурсия
- •Событийное программирование
- •Использование таймеров
- •Использование сторонней библиотеки ukeyb
Использование сторонней библиотеки ukeyb
Для плавного управления клавиатурой при создании игры недостаточно средств модуля CRT или использования событий клавиатуры. Можно использовать стороннюю библиотеку UKEYB. Она несовместима с CRT, поэтому при её подключении CRT нужно исключить из списка модулей, и все подпрограммы из CRT заменить аналогами из UKEYB.
UKEYB содержит такие функции для работы с клавиатурой:
Функция ispressed(key:integer):boolean; проверяет, нажата ли клавиша, заданная параметром.
Функция is_any_key:boolean; проверяет, нажата ли хоть какая-нибудь клавиша.
Функция arrow_dir:byte; проверяет, куда нажаты клавиши-стрелки. (0-не нажаты, 1-8 - от вертикали по часовой стрелке)
При вызове ispressed удобно вместо кода клавиши использовать перечисленные ниже константы:
F1_key=112; F2_key=113; F3_key=114; F4_key=115; F5_key=116; F6_key=117; F7_key=118; F8_key=119; F9_key=120; F10_key=121; F11_key=122; F12_key=123; |
pgup_key=33; pgdn_key=34; caps_key=20; Lctrl_key=162; Rctrl_key=163; Lalt_key=164; Ralt_key=165; Lshift_key=160; Rshift_key=161; |
esc_key=27; tab_key=9; space_key=32; enter_key=13; up_key=38; down_key=40; left_key=37; right_key=39; |
ins_key=45;del_key=46; home_key=36; end_key=35;
|
A_key=65; B_key=66; C_key=67; D_key=68; E_key=69; F_key=70; G_key=71; H_key=72; I_key=73; J_key=74; K_key=75; L_key=76; M_key=77; N_key=78; O_key=79; P_key=80; Q_key=81; R_key=82; S_key=83; T_key=84; U_key=85; V_key=86; W_key=87; X_key=88; Y_key=89; Z_key=90; |
Библиотека UKEYB содержит также средства для работы с мышью:
Функция mousebutton возвращает 0, если кнопки мыши не нажаты, 1 – левая, 2 – правая кнопки мыши и 4 – нажато колёсико.
Функция SetMouseCursorOff убирает курсор мыши из окна, а SetMouseCursorOn восстанавливает его.
Функции MouseX и MouseY дают координаты левой верхней точки курсора.
В
program
krugok;
uses
graphabc,ukeyb; begin
randomize;
setmousecursoroff;
lockdrawing;
setbrushcolor(clred);
repeat
clearwindow(clblack);
circle(mousex,mousey,20);
redraw;
if
mousebutton=1 then
begin
setbrushcolor(random(clwhite));
sleep(50);
end;
until
is_any_key;
end.
1 Однако, работы в этом направлении (искусственный интеллект) ведутся.