       Р О Б О Т Л А Н Д С К И Е  К О Н С Т Р У К Т О Р Ы

                                      А.А. Дуванов

                                      Под редакцией
                                      Ю.А. Первина

                                      (C) Роботландия, лето 1997

                                      Пособие   распространяется
                                      только в рамках  Роботлан-
                                      дских  Курсов  и  является
                                      объектом авторского права.

                    Глава 3. Веселые Картинки


    Содержание


    1. Взгляд со страницы Монитора
    2. Волшебные Картинки
       2.1. Решение задач
       2.2. Изменить задачу очень легко
       2.3. Анатомия "Волшебных Картинок"
       2.4. Устройство файла-меню
       2.5. Устройство файла-задачи
       2.6. Задача, которую придумал Вася.
       2.7. Графический конвертор
       2.8. Шарманщик
       2.9. Доработка Васиной задачи
    3. Веселые Картинки
       3.1. Решение задач
       3.2. Анатомия "Веселых Картинок"
       3.3. Новая задача
       3.4 Художник

1. Взгляд со страницы Монитора

   Вася. Я заглянул  на страницу "Картинки" и был потрясен оби-
лием кнопок. Кнопки  с документацией даже не поместились на эк-
ране  и  для них поставлена кнопка-переход на другую  страницу.
Наверно, "Картинки" очень сложное приложение?
┌──────────────────────────────────────────────────────────────┐
│┌────┐┌────┐┌────┐                      ┌────┐┌────┐┌────────┐│
││ С  ││ Р  ││ i  │    К А Р Т И Н К И   │  П ││ +  ││18:20:25││
│└────┘└────┘└────┘                      └────┘└────┘└────────┘│
├──────────────────────────────────────────────────────────────┤
│   ┌────┐                                        ┌────┐       │
│   │░░░░│                                        │░░░░│       │
│   └────┘                                        └────┘       │
│ Волшебные Картинки                        Веселые Картинки   │
│   ┌────┐                  ┌────┐                ┌────┐       │
│   │░░░░│                  │░░░░│                │░░░░│       │
│   └────┘                  └────┘                └────┘       │
│  Художник              Графконвертор           Шарманщик     │
│                                                              │
│   ┌────┐                                        ┌────┐       │
│   │░░░░│                                        │░░░░│       │
│   └────┘                                        └────┘       │
│ Генератор кубиков                               Микрон       │
│                                                              │
│                           ┌────┐                             │
│                           │░░░░│                             │
│                           └────┘                             │
│                        Документация...                       │
└──────────────────────────────────────────────────────────────┘
   Петя. Как раз  наоборот: это очень простая среда. Работать с
Картинками сможет даже дошколенок. Очень просто построить и свою
новую задачу. Это можно сделать буквально за пять минут.
   Вася. А почему так много кнопок?
   Петя. Задачи,  построенные  при помощи Картинок, можно осна-
щать по  желанию,  собственной графикой, видеоэффектами и музы-
кальными заставками,  а это требует соответствующих средств. Но
на первых порах без всего этого можно легко обойтись.
   Вася. Понятно. На экране три кнопки служат для вызова разных
редакторов: текстового (Микрон), графического (Художник) и  му-
зыкального (Шарманщик). А что это за кнопка "Графконвертор"?
   Петя. Графический конвертор - очень удобная штука. Эта прог-
рамма позволяет просматривать рисунки на диске, вырезать из них
фрагменты и переводить графические файлы из одного графического
формата в другие.
   Папа. Все тонкости мы будем разбирать по ходу дела, а сейчас
среди всех кнопок выделим две самых главных:
        ┌────┐                                    ┌────┐
        │░░░░│                                    │░░░░│
        └────┘                                    └────┘
  Волшебные Картинки                        Веселые Картинки

   Они служат  для вызова готовых  задач на экран и их решения.
Остальные кнопки - вспомогательные - они пригодятся тогда, ког-
да мы будем строить свои собственные задачи. Программы "Волшеб-
ные Картинки" и  "Веселые Картинки" очень похожи друг на друга,
но в первой из них задачи построены на  основе текстовой инфор-
мации, а во второй - на основе графической. Решение задач в них
сводится к построению правильной  цепочки  упорядоченных объек-
тов.
   Вася. Очень красивые слова, но не очень понятные.
   Папа.  Поясню  на примере совсем малышовой задачи из  первой
программы. На экран выводятся  10  карточек с числами от одного
до десяти.  Карточки  сначала расположены в порядке возрастания
чисел. Но вот нажата клавиша пробела, и карточки  на экране пе-
ремешиваются. Задача ученика - восстановить порядок, по очереди
отмечая на экране числа 1, 2, 3, ... 10.
   Петя. А вот похожий пример  из  второй  программы. На экране
опять карточки, но не с числами, а с рисунками. На  первой кар-
точке треугольник, на второй - четырехугольник и так далее. Тот
же счет,  но не числами,  а "углами фигур". Когда нажат пробел,
карточки перемешиваются, и ученик должен восстановить утерянный
порядок.
   Вася. Давайте порешаем задачи.
   Папа. Хорошая мысль. Начнем с Волшебных картинок.

2. Волшебные Картинки

2.1. Решение задач
   Вася. Я нажимаю кнопку "Волшебные картинки"  на экране Мони-
тора... Появилась  красивая заставка, нажимаю пробел. Теперь на
экране - меню с десятью задачами:
                   ┌─────────────────────────┐
                   │       Задачи            │
                   │                         │
                   │░░1.  Прямой счет      ░░│
                   │  2.  Обратный счет      │
                   │  3.  Счет по-английски  │
                   │  4.  Ноты               │
                   │  5.  Цвета радуги       │
                   │  6.  Дни недели         │
                   │  7.  Месяцы             │
                   │  8.  Планеты            │
                   │  9.  Части целого       │
                   │  10. Информация         │
                   │                         │
                   │     Ввод = Enter       │
                   └─────────────────────────┘
   Папа. На самом деле задач восемнадцать.  Обрати  внимание на
стрелку в служебной строке. Она подсказывает,  что список можно
прокручивать дальше.
   Вася. Стрелками клавиатуры?
   Папа. Да, мышь в этой программе не работает.
   Вася.  Нажимаю  стрелку  ВНИЗ, список прокручивается...  Да,
действительно, всего задач в нем 18:
                   ┌─────────────────────────┐
                   │       Задачи            │
                   │                         │
                   │  9.  Части целого       │
                   │  10. Информация         │
                   │  11. Линейные размеры   │
                   │  12. Заварка чая        │
                   │  13. Зоология           │
                   │  14. Найти порядок 1    │
                   │  15. Найти порядок 2    │
                   │  16. Найти порядок 3    │
                   │  17. Найти порядок 4    │
                   │░░18. Найти порядок 5  ░░│
                   │                         │
                   │     Ввод = Enter       │
                   └─────────────────────────┘

   Петя. Для выбора задачи нужно установить  на нее курсор-под-
светку и нажать клавишу выполнения.
   Папа. Предлагаю решить задачу про ноты.
   Вася. Это задача под  номером  4. Выполняю ввод... На экране
появились карточки с названиями семи нот, а в нижнем правом уг-
лу, не закрытом карточками, виден кусок какой-то картинки:
┌─────────────────────────────┬────────────────────────────────┐
│                             │                                │
│             Д О             │               РЕ               │
│                             │                                │
├─────────────────────────────┼────────────────────────────────┤
│                             │                                │
│             М И             │               Ф А              │
│                             │                                │
├─────────────────────────────┼────────────────────────────────┤
│                             │                                │
│           С О Л Ь           │               Л Я              │
│                             │                                │
├─────────────────────────────┼────────────────────────────────┤
│                             │░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│
│             С И             │░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│
│                             │░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│
└─────────────────────────────┴────────────────────────────────┘
   Папа. Эта и  есть часть "волшебной картинки". Она займет це-
ликом весь экран, когда мы решим задачу.
   Вася. Нажимаю  пробел... Теперь карточки на экране перепута-
лись:
┌─────────────────────────────┬────────────────────────────────┐
│┌───────────────────────────┐│░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│
││░░░░░░░░░░░ Д О ░░░░░░░░░░░││░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│
│└───────────────────────────┘│░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│
├─────────────────────────────┼────────────────────────────────┤
│                             │                                │
│             Л Я             │               Ф А              │
│                             │                                │
├─────────────────────────────┼────────────────────────────────┤
│                             │                                │
│             С И             │               М И              │
│                             │                                │
├─────────────────────────────┼────────────────────────────────┤
│                             │                                │
│           С О Л Ь           │               Р Е              │
│                             │                                │
└─────────────────────────────┴────────────────────────────────┘
   Петя. Карточки перемешались,  зато  теперь на экране одна из
них имеет голубой фон. Это - курсор. При помощи стрелок на кла-
виатуре курсор можно установить на любую ноту.
   Вася. Полагаю, что курсор сначала нужно поставить на карточ-
ку с нотой "до", после чего нажать на Enter.
   Петя. На Enter или  пробел.  Здесь эти две клавиши одинаково
служат для подтверждения выбора.
   Вася. Карточка с нотой  "испарилась",  и еще одна часть кар-
тинки стала видна на экране:
┌─────────────────────────────┬────────────────────────────────┐
│░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│
│░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│
│░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│
├─────────────────────────────┼────────────────────────────────┤
│┌───────────────────────────┐│                                │
││░░░░░░░░░░░ Л Я ░░░░░░░░░░░││               Ф А              │
│└───────────────────────────┘│                                │
├─────────────────────────────┼────────────────────────────────┤
│                             │                                │
│             С И             │               М И              │
│                             │                                │
├─────────────────────────────┼────────────────────────────────┤
│                             │                                │
│           С О Л Ь           │               Р Е              │
│                             │                                │
└─────────────────────────────┴────────────────────────────────┘
   Вася. Следующая нота - "ре", а я выберу  "ля". Программа по-
пискивает, но карточка остается на месте!
   Петя. Писк - это сигнал о неверном выборе! Он уменьшает твою
оценку за решение.
   Вася. Ну, больше я ошибаться  не  буду!  Отмечаю  по-порядку
карточки: "ре", "ми", "фа", "соль", "ля", "си". Теперь вся кар-
тинка на экране: на ней - музыкальная гамма, и изображение соп-
ровождается звучанием нарисованных семи нот. Как теперь продол-
жить программу?
   Петя. Нажми на пробел или любую другую клавишу.
   Вася. На экране появилось окно с оценкой моей работы:
                   ┌────────────────────────┐
                   │┌──────────────────────┐│
                   ││░░░░░░░░░░░░░░░░░░░░░░││
                   ││░░░░░░░░░░░░░░░░░░░░░░││
                   ││░░░░░░░░░░░░░░░░░░░░░░││
                   ││░░░░░░░░░░░░░░░░░░░░░░││
                   │└──────────────────────┘│
                   │  Присваивается звание: │
                   │     ТОВАРИЩ МАСТЕРА    │
                   │                        │
                   │  Продолжить - Enter    │
                   └────────────────────────┘

   Папа. Высшее звание  в этой программе - МАСТЕР. Его заслужи-
вает тот, кто выполнит задание без  ошибок. Утешительное звание
УЧЕНИК получает  новичок, допустивший много ошибок. Твое звание
как раз посредине.
   Вася. Но я допустил всего одну ошибку!
   Папа. Стремись к совершенству.
   Вася. Ладно. В следующий раз все  сделаю  как  надо,  задачи
ведь малышовые и для  меня  совсем простые. Нажимаю клавишу вы-
полнения. Окно со званием уходит с экрана, и на нем снова появ-
ляется меню задач.
   Петя. Не  все задачи так просты,  как ты рассчитываешь,  и я
совсем не уверен, что ты всюду получишь МАСТЕРА с первого раза.

   Вася принялся за дело и с  удивлением  обнаружил,  что  Петя
оказался прав.

   Задание 1. Решить задачи "Волшебных Картинок" под номерами 1
- 13.

   Папа. О задачах "Найти порядок" (в меню они значатся под но-
мерами 14 - 18), я хотел бы поговорить особо. Задания с первого
по тринадцатое помогают ученику запомнить порядок  расположения
элементов в известном ему множестве. А вот задания 14 -18 - уже
другие. Они не на запоминание,  а  на  поиск закономерностей. В
них не надо торопиться перемешивать карточки, сначала нужно до-
гадаться, почему они  расположены именно так, а не иначе, найти
правило, по которому карточки выстраиваются в цепочку.
   Петя. Давайте решим задачу "Найти порядок 1":
┌─────────────────────────────┬────────────────────────────────┐
│                             │                                │
│              Я              │               О Н              │
│                             │                                │
├─────────────────────────────┼────────────────────────────────┤
│                             │                                │
│            О Н И            │             Н А Ш И            │
│                             │                                │
├─────────────────────────────┼────────────────────────────────┤
│                             │                                │
│        Д Е Д У Ш К А        │     Р О Д С Т В Е Н Н И К И    │
│                             │                                │
└─────────────────────────────┴────────────────────────────────┘
   Вася. Я понял!  Каждое следующее слово на одну букву длиннее
предыдущего!
   Папа. А как  же цепочка "наши"  - "дедушка"? Дедушка  в  ней
длиннее на целых три буквы.
   Вася. Да... Это ошибка эксперимента!
   Папа. ???
   Вася.  Ну,  есть такой анекдот, в котором физик  доказывает,
что все нечетные числа - простые, то есть делятся только на се-
бя и на единицу. В самом  деле, говорит физик, ведь числа 1, 3,
5, 7 - простые. А как же, - спрашиваю его, - число 9? Ну, - от-
вечает физик, -  это  ошибка эксперимента, зато следующие числа
11, 13 - простые без всякого сомнения.
   Папа. Анекдот принимается, но как же быть с нашей задачей?
   Вася.  Каждое  следующее  слово длиннее предыдущего,  просто
длиннее, может быть, на одну букву, а может - на  несколько, но
длиннее.
   Петя. Но тогда  за словом "наши" можно поставить слово "род-
ственники", ведь оно длиннее его?
   Вася. Я же сказал КАЖДОЕ следующее  слово длиннее предыдуще-
го. Если после  слова  "наши" мы поставим слово "родственники",
то "дедушку" поставить будет просто некуда!
   Петя. Как так некуда, да хоть после слова  "я", ведь "дедуш-
ка" длиннее!
   Вася. Тогда для слова "он" в цепочке не найдется место.
   Петя. Все правильно,  ты молодец! Я просто проверял твои ло-
гические способности.

   Задание 2.  Решить  задачи "Волшебных Картинок" под номерами
14 - 18.

2.1. Изменить задачу очень легко

   Папа. "Волшебные  Картинки"  - открытая среда. Это означает,
что  мы  легко можем изменить существующие задачи или  добавить
свои новые.
   Вася. А как это делать?
   Папа. Изменить задачу совсем легко, надо просто знать ее имя
на диске. Сейчас я покажу, как это делается,  на примере первой
задачи с цепочкой 1-2-3-4-5-6-7-8-9-10. Продолжим ее до 20.
   Сначала в Мониторе на странице "Картинки"  нажимаем кнопку с
Микроном. Теперь в  Микрон загружаем меню с задачами. Этот файл
называется "abc.men".
   Вася. Для загрузки файла клавишей перехода (Esc) вызываю ме-
ню Микрона и выбираю в нем раздел "Каталог":
                           ┌─────────┐
                           │ Диктант │
                           │ Чтение  │
                           │ Запись  │
                           │░Каталог░│
                           │ Печать  │
                           └─────────┘
   Теперь в списке файлов выбираю нужный:
                      ┌───── *.* ────────────┐
                      │   ABC.TSK            │
                      │ █ ABC.MEN            │
                      │   ABC1.TSK           │
                      │   ABCC.TSK           │
                      │   ABCOL.TSK          │
                      │   ABCINF.TSK         │
                      │   ABCCLS.TSK         │
                      │   ABCNOT.TSK         │
                      │   ABCP.MEN           │
                      ├──────────────────────┤
                      │ Число файлов - 25    │
                      │ Выход        - Esc   │
                      │ Ввод файла   - Enter │
                      └──────────────────────┘

   И вот он на экране:
           ┌─────────────────────────────────────────┐
           │ 1. Прямой счет         | abc.tsk        │
           │ 2. Обратный счет       | abc1.tsk       │
           │ 3. Счет по-английски   | abcc.tsk       │
           │ 4. Ноты                | abcnot.tsk     │
           │ 5. Цвета радуги        | abccol.tsk     │
           │ 6. Дни недели          | abcweek.tsk    │
           │ 7. Месяцы              | abcm.tsk       │
           │ 8. Планеты             | abcplan.tsk    │
           │ 9. Части целого        | abcpart.tsk    │
           │ 10. Информация         | abcinf.tsk     │
           │ 11. Линейные размеры   | abcls.tsk      │
           │ 12. Заварка чая        | abcs.tsk       │
           │ 13. Зоология           | abczoo.tsk     │
           │ 14. Найди порядок 1    | abcstep1.tsk   │
           │ 15. Найди порядок 2    | abcstep2.tsk   │
           │ 16. Найди порядок 3    | abcstep3.tsk   │
           │ 17. Найди порядок 4    | abcstep4.tsk   │
           │ 18. Найди порядок 5    | abcstep5.tsk   │
           └─────────────────────────────────────────┘
   Папа. Файл  с  меню  "Волшебных  Картинок"  сейчас нам нужен
только для того, чтобы посмотреть в нем дисковое имя первой за-
дачи. Видим, что нужное имя - "abc.tsk".
   Петя. Раз уж файл с меню на экране, давайте скажем несколько
слов о том, как он устроен.
   Вася. Устройство настолько просто, что понятно даже без объ-
яснений. Для каждой задачи в  этом  файле  отводится  отдельная
строка. В первой части строки записывается текст, который появ-
ляется  экранном  меню "Волшебных Картинок", а во второй  части
записано имя файла на диске, в котором, вероятно,  эта задача и
описана. А между  текстом и именем файла - вертикальная черточ-
ка.
   Папа. Все правильно.  Давайте  теперь загрузим на экран файл
"abc.tsk" с описанием первой задачи.
   Вася. Опять вызываю меню Микрона, отмечаю  "Каталог" и выби-
раю в нем нужный файл. Вот что мы видим теперь на экране:
 ┌──────────────────────────────────────┐
 │Картинка digit.pic                    │
 │Эффект 7810                           │
 │Музыка sho.mus                        │
 │1 2 3 4 5 6 7 8 9 10                  │
 │                                      │
 └──────────────────────────────────────┘
   Папа. Пока не  обращай внимание на  первые три строки,  а  в
четвертой строке...
   Вася. Я вижу  числа, которые появляются на карточках в прог-
рамме.
   Петя. Заметь, что  они первоначально появляются в том же по-
рядке, в котором расположены в этом файле.
   Вася. Значит, чтобы увеличить число карточек, мне надо прос-
то дописать недостающие числа?
   Папа. Совершенно  верно.
   Вася. Но в строке уместилось только шестнадцать чисел:
 ┌──────────────────────────────────────┐
 │Картинка digit.pic                    │
 │Эффект 7810                           │
 │Музыка sho.mus                        │
 │1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16│
 │                                      │
 └──────────────────────────────────────┘
   Папа.  Ты  можешь продолжить цепочку в следующих строчках  -
это допускается.

  Вася. Вот что у меня получилось:
 ┌──────────────────────────────────────┐
 │Картинка digit.pic                    │
 │Эффект 7810                           │
 │Музыка sho.mus                        │
 │1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16│
 │17 18 19 20                           │
 └──────────────────────────────────────┘
   Папа. Отлично! Теперь запиши на  диск  измененный  файл  под
старым именем и запусти "Волшебные Картинки".
   Вася. Выбираю в  меню Микрона раздел "Запись", имя файла ме-
нять не надо - просто нажимаю клавишу выполнения. Теперь выхожу
из Микрона, запускаю "Волшебные Картинки" и  выбираю задачу под
номером один. Удивительно! Программа сама построила нужное чис-
ло карточек! Изменить задачу, действительно, легко.

┌─────────────┬───────────────┬───────────────┬────────────────┐
│      1      │      2        │      3        │       4        │
├─────────────┼───────────────┼───────────────┼────────────────┤
│      5      │      6        │      7        │       8        │
├─────────────┼───────────────┼───────────────┼────────────────┤
│      9      │      10       │      11       │       12       │
├─────────────┼───────────────┼───────────────┼────────────────┤
│      13     │      14       │      15       │       16       │
├─────────────┼───────────────┼───────────────┼────────────────┤
│      17     │      18       │      19       │       20       │
└─────────────┴───────────────┴───────────────┴────────────────┘

2.2. Анатомия "Волшебных Картинок"

   Петя.  Я  хочу рассказать, как устроена среда "Картинок",  и
привести несколько схем для наглядности.
   Папа. Отличная идея!
   Петя. Каждая задача для этой программы  хранится в отдельном
текстовом файле с  расширением "tsk". Все эти файлы находятся в
том же  каталоге, что и  сама программа (она имеет дисковое имя
"abc.exe"):

C:\
└─ KURSROB       - Каталог пакета "Конструктор"
   └─ KURS
      └─ 1
         └─ ABC           - Каталог Картинок
            ├─ DOC        - Каталог документации
            │
            ├─ gs.bat     - Командный файл для запуска Графконвертора
            ├─ paint.bat  - Командный файл для запуска Художника
            ├─ sharm.bat  - Командный файл для запуска Шарманщика
            ├─ micron.bat - Командный файл для запуска Микрона
            │
            ├─ abc.exe    - Волшебные Картинки
            ├─ abc.pcx    ─┐
            ├─ abcz.pcx    │Вспомогательные файлы
            ├─ scr.pcx     │
            ├─ abc.lib    ─┘
            │
            ├─ abc.men    - Меню задач
            │
         ┌──┼──────────────────────────────────────────────┐
         │  ├─ abc.tsk     ─┐                              │
         │  ├─ abc1.tsk     │                              │
         │  ├─ ........     │ Задачи                       │
         │  ├─ abcstep5.tsk─┘                              │
         └──┼──────────────────────────────────────────────┘
            │
            ├─ abczoo.pic ──┐
            │  .........    │ Экранные заставки
            ├─ digit.pic  ──┘
            │
            ├─ bony.mus  ───┐
            │  ........     │ Музыкальные заставки
            ├─ sho.mus   ───┘
            │

   Вася. Кроме файлов с задачами в каталоге много всяких других
файлов.
   Петя. На самом деле, моя схема далеко не полна, но  все, что
на ней изображено, подписано.
   Группа файлов с расширением "bat" служат  для запуска редак-
торов и графического конвертора.
   Для работы программы "abc.exe" нужны вспомогательные файлы и
они на схеме выделены в отдельную группу.
   Файлы с расширением "pic" - это картинки, а файлы с расшире-
нием "mus" - музыкальные фрагменты. Эти файлы задаются в описа-
ниях задач.
   Вася. Я помню, как они указывались в первой задаче:
 ┌─────────────────────────────────┐
 │Картинка digit.pic   <───────────┼── Задание
 │Эффект 7810                      │   картинки-заставки.
 │Музыка sho.mus       <───────────┼── Задание
 │1 2 3 4 5 6 7 8 9 10             │   музыкального фрагмента.
 │                                 │
 └─────────────────────────────────┘
   Петя. Файл "abc.men"  тебе также знаком - это текстовый файл
с описанием меню задач.
   А теперь я покажу тебе другую схему. В ней отражается логика
работы программы "abc.exe":

              ┌───────────────────┐            Запускаемый файл
              │     Программа     │            abc.exe
              └─────────┬─────────┘
         ┌──────────────┴─────────────────┐    Текстовый файл
         │             Меню               │    abc.men
         └──────────────┬─────────────────┘
            ┌───────────┼───────────────┐
            │           │               │
       ┌────┴─────┐┌────┴─────┐   ┌─────┴────┐ Текстовые файлы
       │ Задача 1 ││ Задача 2 │...│ Задача n │ с расширением
       └──────────┘└──────────┘   └──────────┘ "tsk"

   На схеме показано, что при своей  работе программа "abc.exe"
использует меню,  которое разработчик задач описывает в тексто-
вом файле "abc.men". Когда  задача  в меню выбрана, ее описание
считывается из соответствующего текстового файла с  расширением
"tsk".
   Вася. Расширение "tsk" является обязательным?
   Петя. Нет, но удобно использовать одно  расширение для одних
и тех же объектов. Тогда эти объекты легко  отличить от других.
По крайней  мере,  мы  будем  и  дальше использовать расширение
"tsk" для файлов с описанием задач  "Волшебных Картинок". Скажу
больше: обозначение файла с меню как "abc.men" тоже не является
обязательным.
   Вася. С задачами понятно. Их дисковые имена программа читает
из файла-меню. А как она узнает имя файла,  содержащее само ме-
ню?
   Петя. Программу  "abc.exe" можно запускать с параметром, ко-
торый и должен быть именем файла-меню:

                       abc <имя файла-меню>

   Вася. Я смотрел в Мониторе паспорт кнопки с вызовом "Волшеб-
ных Картинок". Программа вызывается без параметра.
   Петя. Когда  программа вызывается без параметра, она автома-
тически  пытается  найти в своем каталоге файл с  фиксированным
именем "abc.men". Иными словами, запуск программы без параметра
равнозначен запуску
                       abc abc.men
   А вообще, в  Мониторе можно создать несколько кнопок для вы-
зовов программы "abc.exe" с  разными  файлами меню. В них могут
сгруппироваться задачи по определенным темам.
   Например, в Мониторе могут быть кнопки с вызовами:
            abc his.men - задачи по истории;
            abc eng.men - задачи по английскому языку;
            abc geo.men - задачи по географии.

   Папа. Я предлагаю еще раз посмотреть устройство файла-меню и
файла-задачи.

2.3. Устройство файла-меню
   Петя. Как правило,  за один сеанс работы с программой прихо-
дится решать не одну, а несколько задач. Программа автоматичес-
ки строит меню  выбора  на основе текстового файла-меню, подго-
товленного  в  текстовом редакторе. В этом файле каждая  строка
воспринимается как описание одной строки будущего меню на экра-
не программы.

 Меню, которое  появляется      Текстовый файл с описанием
на    экране     программы      строк меню (abc.men).
abc.exe.
┌─────────────────────────┐
│      Задачи             │░
│-------------------------│░  ┌─────────────────────────────────────┐
│░ 1. Прямой счет       ░ │░  │ 1. Прямой счет       | abc.tsk      │
│  2. Обратный счет       │░  │ 2. Обратный счет     | abc1.tsk     │
│  3. Счет по-английски   │░  │ 3. Счет по-английски | abcc.tsk     │
│  4. Ноты                │░  │ 4. Ноты              | abcnot.tsk   │
│  5. Цвета радуги        │░  │ 5. Цвета радуги      | abccol.tsk   │
│  6. Дни недели          │░  │ 6. Дни недели        | abcweek.tsk  │
│  7. Месяцы              │░  │ 7. Месяцы            | abcm.tsk     │
│  8. Планеты             │░  │ 8. Планеты           | abcplan.tsk  │
│  9. Части целого        │░  │ 9. Части целого      | abcpart.tsk  │
│  10. Информация         │░  │ 10. Информация       | abcinf.tsk   │
│-------------------------│░  │                                     │
│     Ввод = Enter       │░  │                                     │
└─────────────────────────┘░  │                                     │
 ░░░░░░░░░░░░░░░░░░░░░░░░░░░  │                                     │
                              │                                     │
│  11. Линейные размеры   │   │ 11. Линейные размеры | abcls.tsk    │
│  12. Заварка чая        │   │ 12. Заварка чая      | abcs.tsk     │
│  13. Зоология           │   │ 13. Зоология         | abczoo.tsk   │
│  14. Найди порядок 1    │   │ 14. Найди порядок 1  | abcstep1.tsk │
│  15. Найди порядок 2    │   │ 15. Найди порядок 2  | abcstep2.tsk │
│  16. Найди порядок 3    │   │ 16. Найди порядок 3  | abcstep3.tsk │
│  17. Найди порядок 4    │   │ 17. Найди порядок 4  | abcstep4.tsk │
│  18. Найди порядок 5    │   │ 18. Найди порядок 5  | abcstep5.tsk │
└─────────────────────────┘   └─────────────────────────────────────┘
    │
    └ Эта часть не видна на
      экране, но может  по-
      явиться при  прокрут-
      ке.

   Строки в файле-меню должны иметь следующую структуру:

         <элемент выбора> <разделитель> <имя файла>
     Здесь:
   <элемент выбора> - любой текст,  он  появляется  на экране в
                      меню выбора;
   <разделитель>    - символ "|";
   <имя файла>      - имя файла-описания задачи.

   Вася. Объяснил как лекцию прочитал, но я все понял!

2.4. Устройство файла-задачи

   Петя. Основное назначение файла с описанием задачи - указать
объекты в  том порядке, в  котором их нужно отмечать на экране.
Объекты записываются через  один  или несколько пробелов в одну
или несколько строчек. Каждый объект программа  помещает на от-
дельную карточку. Как  правило,  объектом является слово, но на
карточку можно  поместить  одно  или  даже  несколько небольших
предложений или,  вообще,  любой  набор символов, для программы
смысл текста неважен.
   Папа. Ты говоришь "любой набор символов"? А как  быть с про-
белами, ведь они отделяют объекты друг от друга?
   Петя. Очень просто. Если пробел должен входить в состав объ-
екта, то вместо  него в файле описания надо использовать символ
подчеркивания. Например, объекты

Наполнить_чайник_холодной_водой.
Согреть_маленький_заварной_чайник.     
Насыпать_заварки_в_маленький_заварной_чайник.
Налить_в_маленький_заварной_чайник_горячую_воду_и_настоять.
Пить_чай_маленькими_глотками.          

будут размещены на  5 разных карточках, при этом  символы  "_"
на экране автоматически заменятся на пробелы:

          ┌───────────────────────────────┐
          │  Наполнить чайник холодной    │
          │  водой.                       │
          └───────────────────────────────┘
          ┌───────────────────────────────┐
          │  Согреть маленький заварной   │
          │  чайник.                      │
          └───────────────────────────────┘
          ┌───────────────────────────────┐
          │  Насыпать заварки в  маленький│
          │  заварной чайник.             │
          └───────────────────────────────┘
          ┌───────────────────────────────┐
          │  Налить  в  маленький заварной│
          │чайник горячую воду и настоять.│
          └───────────────────────────────┘
          ┌───────────────────────────────┐
          │  Пить чай маленькими глотками.│
          │                               │
          └───────────────────────────────┘

   Кроме объектов, файл с описанием задачи  может содержать до-
полнительные указания программе. Указания записываются в виде:

                 <ключевое слово> <параметр>

   Вот на этот  листочек  я переписал список возможных указаний
из программной документации:
┌────────────────────────────────────────────────────────────┐
│                         Комментарий                        │
│Ключевое слово - символ ";".                                │
│Параметр       - любой текст до конца строки.               │
│  Комментарий никак не влияет на работу программы и  служит │
│для записи пояснений.                                       │
│                                                            │
│                    "Волшебная" картинка                    │
│Ключевое слово - "Картинка:" (синонимы: "Картинка", "картин-│
│                 ка:", "картинка").                         │
│Параметр       - имя файла с полноэкранной картинкой в  фор-│
│                 матах PIC (Художник) или PCX.              │
│  Картинка "подкладывается" под карточки и появляется на эк-│
│ране полностью, когда задача решена.                        │
│                                                            │
│                                                            │
│                    Музыкальная заставка                    │
│Ключевое слово - "Музыка:"  (синонимы:  "Музыка", "музыка:",│
│                 "музыка").                                 │
│Параметр       - имя файла с музыкальным фрагментом в форма-│
│                 те MUS (Шарманщик).                        │
│  Музыкальный фрагмент включается тогда,  когда  экран "очи-│
│щен" от всех карточек, то есть,  служит сигналом  окончания │
│решения задачи.                                             │
│                                                            │
│           Видеоэффект убирания карточек с экрана           │
│Ключевое слово -  "Эффект:"  (синонимы: "Эффект", "эффект:",│
│                   "эффект").                               │
│Параметр - xyzt, Здесь:                                     │
│                     x - код эффекта;                       │
│                     y - "шаг";                             │
│                     z - "темп";                            │
│                     t - "ускорение".                       │
│  Задание видеоэффекта "оживляет"  работу программы. Исполь-│
│зуя специальную таблицу (она приводится ниже), можно выбрать│
│x (код эффекта) и экспериментально подобрать  значения y, z,│
│t.                                                          │
└────────────────────────────────────────────────────────────┘

                      Таблица видеоэффектов
┌─────┬──────────────┬────────────────────────────────────────┐
│Код  │  Возможные   │                                        │
│эф-  │  значения    │                Описание                │
│фекта│   "шага"     │                                        │
│     │              │                                        │
│  x  │    y         │                                        │
├─────┼──────────────┼────────────────────────────────────────┤
│  0  │   0          │Обычный  вывод фрагмента  на  экран  без│
│     │              │всяких эффектов.                        │
├┬────┼──────────────┼────────────────────────────────────────┤
││ 1  │ цифры 1-9    │Раскрытие фрагмента по горизонтали вниз.│
││    │ буквы a-z    │Шаг - ширина нарастания рисунка.        │
├┼────┼──────────────┼────────────────────────────────────────┤
││ 2  │ цифры 1-9    │Раскрытие   фрагмента   по   горизонтали│
││    │ буквы a-z    │вверх. Шаг - ширина нарастания рисунка. │
├┼────┼──────────────┼────────────────────────────────────────┤
││ 3  │ цифры 1-4    │Раскрытие фрагмента по вертикали вправо.│
││    │              │Шаг - ширина нарастания рисунка.        │
├┼────┼──────────────┼────────────────────────────────────────┤
││ 4  │ цифры 1-4    │Раскрытие фрагмента  по вертикали влево.│
││    │              │Шаг - ширина нарастания рисунка.        │
├┴────┼──────────────┼────────────────────────────────────────┤
│  5  │ цифры 1-4    │Раскрытие фрагмента внутрь прямоугольни-│
│     │              │ка. Шаг - ширина нарастания рисунка.    │
├─────┼──────────────┼────────────────────────────────────────┤
│  6  │ цифры 1-4    │Раскрытие фрагмента изнутри  прямоуголь-│
│     │              │ника. Шаг - ширина нарастания рисунка.  │
├┬────┼──────────────┼────────────────────────────────────────┤
││ 7  │ цифры 1-9    │Раскрытие  фрагмента  по  горизонтальным│
││    │ буквы a-z    │полоскам вверх. Шаг - размер полоски.   │
├┼────┼──────────────┼────────────────────────────────────────┤
││ 8  │ цифры 1-9    │Раскрытие  фрагмента  по  горизонтальным│
││    │ буквы a-z    │полоскам вниз. Шаг - размер полоски.    │
├┼────┼──────────────┼────────────────────────────────────────┤
││ 9  │ цифры 1-9    │Раскрытие фрагмента  по вертикальным по-│
││    │ буквы a-z    │лоскам вправо. Шаг - размер полоски.    │
├┼────┼──────────────┼────────────────────────────────────────┤
││ a  │ цифры 1-9    │Раскрытие фрагмента  по вертикальным по-│
││    │ буквы a-z    │лоскам влево. Шаг - размер полоски.     │
├┴────┼──────────────┼────────────────────────────────────────┤
│  b  │ цифры 1-9    │Как  1,  но  раскрытие  с  двух   сторон│
│     │ буквы a-z    │внутрь.                                 │
├─────┼──────────────┼────────────────────────────────────────┤
│  c  │ цифры 1-9    │Как 2, но раскрытие с двух сторон изнут-│
│     │ буквы a-z    │ри.                                     │
├─────┼──────────────┼────────────────────────────────────────┤
│  d  │ цифры 1-4    │Как  3,  но  раскрытие  с  двух   сторон│
│     │              │внутрь.                                 │
├─────┼──────────────┼────────────────────────────────────────┤
│  e  │ цифры 1-4    │Как 4, но раскрытие с двух сторон изнут-│
│     │              │ри.                                     │
├┬────┼──────────────┼────────────────────────────────────────┤
││ f  │ цифры 1-9    │Черезстрочное соединение  2 частей фраг-│
││    │ буквы a-z    │мента. Картинка  движется. Шаг -  ширина│
││    │              │строки.                                 │
├┼────┼──────────────┼────────────────────────────────────────┤
││ g  │ цифры 1-9    │Черезстрочное   соединение   из  2частей│
││    │ буквы a-z    │фрагмента.  Картинка  неподвижна. Шаг  -│
││    │              │ширина строки.                          │
├┴────┼──────────────┼────────────────────────────────────────┤
│  h  │ цифры 1-9    │Движение  с  наложением фрагмента  вниз.│
│     │ буквы a-z    │Шаг - величина перемещения.             │
├─────┼──────────────┼────────────────────────────────────────┤
│  i  │ цифры 1-9    │Движение  с  наложением фрагмента вверх.│
│     │ буквы a-z    │Шаг - величина перемещения.             │
├─────┼──────────────┼────────────────────────────────────────┤
│  j  │   1          │Движение с  наложением фрагмента вправо.│
│     │              │Шаг - величина перемещения.             │
├─────┼──────────────┼────────────────────────────────────────┤
│  k  │   1          │Движение с наложением  фрагмента  влево.│
│     │              │Шаг - величина перемещения.             │
├┬────┼──────────────┼────────────────────────────────────────┤
││ l  │   0          │Размазывание краев фрагмента вниз.      │
││    │              │                                        │
├┼────┼──────────────┼────────────────────────────────────────┤
││ m  │   0          │Размазывание краев фрагмента вверх.     │
││    │              │                                        │
├┴────┼──────────────┼────────────────────────────────────────┤
│  n  │   0          │Наложение  фрагмента на экран  способом │
│     │              │1 (AND).                                │
├─────┼──────────────┼────────────────────────────────────────┤
│  o  │   0          │Наложение  фрагмента на экран   способом│
│     │              │2 (OR).                                 │
├─────┼──────────────┼────────────────────────────────────────┤
│  p  │   0          │Наложение  фрагмента  на экран  способом│
│     │              │3 (XOR).                                │
├┬────┼──────────────┼────────────────────────────────────────┤
││ q  │ цифры 1-9    │Движение с вытеснением  фрагмента  вниз.│
││    │ буквы a-z    │Шаг - величина перемещения.             │
├┼────┼──────────────┼────────────────────────────────────────┤
││ r  │ цифры 1-9    │Движение с вытеснением  фрагмента вверх.│
││    │ буквы a-z    │Шаг - величина перемещения.             │
├┼────┼──────────────┼────────────────────────────────────────┤
││ s  │   1          │Движение с вытеснением фрагмента вправо.│
││    │              │Шаг - величина перемещения.             │
├┼────┼──────────────┼────────────────────────────────────────┤
││ t  │   1          │Движение с вытеснением  фрагмента влево.│
││    │              │Шаг - величина перемещения.             │
├┴────┼──────────────┼────────────────────────────────────────┤
│  u  │ цифры 1-9    │Раскрытие картинки по "шашечкам".       │
│     │ буквы a-z    │Шаг - размер "шашечки".                 │
└─────┴──────────────┴────────────────────────────────────────┘
   Поля "Темп" (z) и "ускорение" (t) в коде  эффекта могут быть
как цифрами, так и любыми латинскими буквами. "Темп"  - это за-
держка между "шагами" вывода  на  экран. "Ускорение" - это ско-
рость показа одного "шага".
   Когда для  кодирования используются латинские буквы, то сле-
дует считать  их как бы продолжением цифр после  9. Буква "a" -
это как бы цифра со значением 10, буква "b" - цифра со значени-
ем 11, и так далее.
   Вася. Ого-го!
   Петя. Пусть тебя не смущают этот листок и большущая таблица.
Ты, вообще, можешь  этим не пользоваться и задавать в описаниях
только последовательности объектов на карточках. Например,  для
работы первой задачи "Прямой счет" достаточно  написать в файле
"abc.tsk":
                  ┌──────────────────────┐
                  │ 1 2 3 4 5 6 7 8 9 10 │
                  └──────────────────────┘
   Вася. И это будет работать?
   Петя. Конечно!
   Вася. А какая картинка будет "подложена" под карточки?
   Петя. Если картинка не задана в описании, то программа авто-
матически использует "свою" картинку с именем "abc.pcx".
   Вася. А что на ней нарисовано?
   Петя. На ней  нарисован старинный замок.
   Вася. А как же музыка и эффекты?
   Петя. Вот музыки точно не будет и карточки  будут исчезать с
экрана без всяких "прибамбасов", но задача работать будет!
   Вася. А если я все же хочу использовать эти "прибамбасы"?
   Петя. Ну тогда разбирайся в таблице,  экспериментируй и пиши
описание вроде того, которое написано для первой задачи:
                  ┌──────────────────────┐
                  │ Картинка digit.pic   │
                  │ Эффект   7810        │
                  │ Музыка   sho.mus     │
                  │ 1 2 3 4 5 6 7 8 9 10 │
                  └──────────────────────┘

   Задача 3. Если в файле с описанием задачи  не задана картин-
ка, то  программа  автоматически  использует  файл  "abc.pcx" с
изображением старинного  замка. Можно ли изменить эту "автома-
тическую" картинку, не перерисовывая ее?

2.5. Задача, которую придумал Вася.

   Вася. Я придумал задачу для "Волшебных Картинок"!
   Папа. Рассказывай!
   Вася. Ну, ты же знаешь, мне трудно дается запоминание всяких
дат. Вот я и решил помочь себе при помощи нашей программы.
   Папа. Ты попал  в точку! Построить задачу, основанную на да-
тах, в "Волшебных Картинках" очень легко, ведь ее задания всег-
да основываются на каком-нибудь упорядоченном множестве элемен-
тов. А уж с датами - всегда полный порядок! Какие конкретно да-
ты ты хочешь использовать?
   Вася. Даты рождения русских писателей.
   Папа. Очень хорошо.
   Вася. Для своих задач я хочу создать на диске отдельное меню
и, соответственно,  поставить в Мониторе на странице "Картинок"
новую кнопку. Как мне сделать новое меню?
   Папа. Конечно, в Микроне.
   Вася. Вызываю его на экран, воспользовавшись соответствующей
кнопкой Монитора. Теперь  записываю в нем строку для моей зада-
чи:
┌───────────────────────────────────────────────────────────────────┐
│1Справка 2Запомнить символ 3Запомнить строку 4Искать 5Форматировать│
├───────────────────────────────────────────────────────────────────┤
│1. Русские писатели | kuk1.tsk                                     │
│█                                                                  │
│                                                                   │
│                                                                   │
│                                                                   │
│                                                                   │
│                                                                   │
│                                                                   │
├───────────────────────────────────────────────────────────────────┤
│рус  строк 1  строка 2  столбец 1           Микрон  (C) Роботландия│
└───────────────────────────────────────────────────────────────────┘
   Вася. Ничего, что мое меню будет состоять из одного "блюда"?
   Папа. Программа работать будет.
   Вася. Задача на диске будет иметь имя "kuk1.tsk". Это потому
что она моя и первая.
   Папа. Нет возражений. Теперь запиши этот файл на диск.
   Вася. Клавишей перехода вызываю меню Микрона,  выбираю в нем
раздел "Запись" и записываю имя "kuk.men" - так  на диске будет
называться мое меню.
┌───────────────────────────────────────────────────────────────────┐
│1Справка 2Запомнить символ 3Запомнить строку 4Искать 5Форматировать│
├───────────────────────────────────────────────────────────────────┤
│1. Русские писатели | kuk1.tsk                                     │
│                           ┌─────────┐                             │
│                           │ Диктант │                             │
│                           │ Чтение  │                             │
│                           │░Запись ░│                             │
│                      ┌────────────────────┐                       │
│                      │ Введите имя файла: │                       │
│                      │ kuk.men█           │                       │
│                      └────────────────────┘                       │
├───────────────────────────────────────────────────────────────────┤
│рус  строк 1  строка 2  столбец 1           Микрон  (C) Роботландия│
└───────────────────────────────────────────────────────────────────┘
   Вася. Теперь поставлю новую кнопку в Мониторе.
   Петя. Раз ты сейчас находишься  в  Микроне,  напиши  сначала
файл с задачей, а кнопку поставишь потом.
   Вася. Правда, так будет быстрее. А как мне  стереть с экрана
текст меню?
   Петя. Ты забыл, как работать с Микроном? Нажми клавишу F1.
   Вася. Клавиша F1,  конечно, не "очистит" Микрон, но зато вы-
зовет на экран меню для выбора раздела подсказки:
┌───────────────────────────────────────────────────────────────────┐
│1Справка 2Запомнить символ 3Запомнить строку 4Искать 5Форматировать│
├───────────────────────────────────────────────────────────────────┤
│1. Русские писатели | kuk1.tsk                                     │
│█                 ┌──────────────────────────┐                     │
│                  │  Перемещения курсора     │                     │
│                  │░ Вставки и удаления     ░│                     │
│                  │  Перемещения текста      │                     │
│                  │  Переключения алфавита   │                     │
│                  │  Дополнительные команды  │                     │
│                  │  Упражнения в Микроне    │                     │
│                  └──────────────────────────┘                     │
├───────────────────────────────────────────────────────────────────┤
│рус  строк 1  строка 2  столбец 1           Микрон  (C) Роботландия│
└───────────────────────────────────────────────────────────────────┘
   Я хочу удалить текст с экрана,  поэтому  мне  нужно  выбрать
раздел "Вставки и удаления":
┌───────────────────────────────────────────────────────────────────┐
│1Справка 2Запомнить символ 3Запомнить строку 4Искать 5Форматировать│
├───────────────────────────────────────────────────────────────────┤
│1. Русские писатели | kuk1.tsk                                     │
│            ┌───────────────────────────────────────────┐          │
│            │             Вставки и удаления            │          │
│            │Удалить символ под курсором          Delete│          │
│            │Удалить стpоку                 Shift+Delete│          │
│            │Вставить пpобел                      Insert│          │
│            │Вставить пустую стpоку         Shift+Insert│          │
│            │Стеpеть символ  слева от курсора         BS│          │
│            │Стеpеть слово слева от курсора     Shift+BS│          │
│            │Стеpеть слово спpава от курсора Shift+Enter│          │
│            │Стеpеть конец стpоки от курсора    Ctrl+End│          │
│            │Стеpеть весь текст        Ctrl+Shift+Delete│          │
│            │Выход из программы               Ctrl+Break│          │
│            └───────────────────────────────────────────┘          │
├───────────────────────────────────────────────────────────────────┤
│рус  строк 1  строка 2  столбец 1           Микрон  (C) Роботландия│
└───────────────────────────────────────────────────────────────────┘
   Вася. Да, теперь я  вспомнил:  весь текст с экрана стирается
сложным аккордом  Ctrl+Shift+Delete. Теперь я запишу свою зада-
чу:
┌───────────────────────────────────────────────────────────────────┐
│1Справка 2Запомнить символ 3Запомнить строку 4Искать 5Форматировать│
├───────────────────────────────────────────────────────────────────┤
│; Задача 1. Список русских  писателей                              │
│;           в порядке возрастания дат                              │
│;           рождения.                                              │
│Г.Р.Державин А.С.Пушкин М.Ю.Лермонтов                              │
│Н.В.Гоголь И.С.Тургенев Л.Н.Толстой                                │
│А.П.Чехов С.А.Есенин                                               │
├───────────────────────────────────────────────────────────────────┤
│рус  строк 1  строка 2  столбец 1           Микрон  (C) Роботландия│
└───────────────────────────────────────────────────────────────────┘
   Папа. Молодец, порядок у тебя указан правильный!
   Вася.  Теперь  я  запишу  этот  текст  на  диск  под  именем
"kuk1.tsk" и, нажав аккорд Ctrl+Break, выйду из Микрона.
   Петя.  Вот  теперь самое время поставить на экране  Монитора
новую кнопку.
   Вася. Вызываю на экран меню  операций  Монитора...
                     ┌────┬───────────────┐
                     │    │О П Е Р А Ц И И│
                     ├────┴───────────────┤
                     │ ░░  Добавить       │
                     │                    │
                     │ ░░  Удалить        │
                     │                    │
                     │ ░░  Изменить       │
                     │                    │
                     │ ░░  Конфигурация   │
                     └────────────────────┘

и выбираю в нем  раздел  "Добавить". Теперь надо заполнить пас-
порт кнопки:

┌───┬──────────────────────────────────────────────────────┬───┐
│   │                    Д О Б А В И Т Ь                   │ Ok│
├───┴──────────────────────────────────────────────────────┴───┤
│     ┌───┐   ┌───┬──────────────┐      ┌───┬────────────────┐ │
│     │░░░│   │░░░│Файлы программ│      │░░░│Файлы пиктограмм│ │
│     └───┘   └───┴──────────────┘      └───┴────────────────┘ │
│            ┌────────────────────────────┐               ┌──┐ │
│ Имя кнопки │Задачи Кука                 │     Клавиатура│к │ │
│            └────────────────────────────┘               └──┘ │
│            ┌───────────────────────────────────────────────┐ │
│ Программа  │.\KURS\1\ABC\abc kuk.men                       │ │
│            └───────────────────────────────────────────────┘ │
│            ┌───────────────────────────────────────────────┐ │
│ Пиктограмма│.\ICON\kuk.cut                                 │ │
│            └───────────────────────────────────────────────┘ │
│┌─────────┐ ┌───┬──────────────┐         ┌───┬──────────────┐ │
││         │ │Нет│Страница      │         │Нет│Параметры     │ │
││         │ └───┴──────────────┘         └───┴──────────────┘ │
││         │ ┌───┬──────────────┐         ┌───┬──────────────┐ │
│└─────────┘ │Нет│Команда DOS   │         │Нет│Ждать         │ │
│            └───┴──────────────┘         └───┴──────────────┘ │
└──────────────────────────────────────────────────────────────┘

   Вася проверил вызов своей задачи из Монитора и убедился, что
все работает нормально.

   Задание 3. Повторить все действия Васи по созданию новой за-
дачи для программы "Волшебные картинки".

2.6. Графический конвертор

   Вася. Хотелось бы для моей задачи использовать не "автомати-
ческую" картинку со старинным замком, а какую-нибудь другую.
   Петя. Ты можешь сделать двумя способами:
      - подобрать другую картинку;
      - нарисовать свою собственную.
   Вася. Рисовать надо в графическом редакторе Художник?
   Петя. Это  лучше  всего.  В Художнике получаются графические
файлы формата PIC. "Волшебные Картинки" понимают и файлы в фор-
мате PCX. Вообще говоря, можно рисовать картинки в любом редак-
торе, который позволяет получать PIC или  PCX  файлы,  но  если
этот редактор - не Художник, то перед рисованием  его надо нас-
троить на тот  режим экрана, в котором работают "Волшебные Кар-
тинки", то есть, на 16-цветную палитру и разрешение 640x350.
   Вася. Напомни мне, что такое формат графического файла.
   Петя. Картинки хранятся на диске в кодированном виде. Способ
кодирования называют форматом графического файла. Файлы  одного
формата имеют одинаковое расширение имени. Обычно по расширению
называют и  сам формат. У  всех файлов в формате PIC расширение
имени - "pic", а у всех файлов в формате PCX - "pcx". Существу-
ют и другие графические форматы, отличные от PIC и PCX.
   Вася. А что ты мне  скажешь  по-поводу  палитры и разрешения
экрана?
   Петя. Палитра -  это набор тех цветов, которые могут присут-
ствовать на экране в данном режиме.
   Экран не похож на обычный лист бумаги для рисования. Раскра-
шивать  на  нем можно только отдельные точки, расположенные  на
одинаковых расстоянии друг от друга:
            ┌──────────────────────────┐
            │ ■■■■■■■■■■■■■■■■■■■■■■■■ │
            │ ■■■■■■■■■■■■■■■■■■■■■■■■ │
            │ ■■■■■■■■■■■■■■■■■■■■■■■■ │
            │ ■■■■■■■■■■■■■■■■■■■■■■■■ │
            └──────────────────────────┘
   Число доступных для рисования точек  на  экране  и  называют
разрешением экрана.  Разрешение  обычно  записывают в виде двух
чисел через знак умножения. Первое число показывает сколько то-
чек умещается в одной строке, а второе - число строк на экране.
   Вася.  Значит, разрешение 640x350 означает, что на экране  в
этом режиме помещается 224 тысячи точек?
   Петя. Да. И надо сказать, что  это не так уж и много. Совре-
менные  дисплеи  могут работать в разрешении 1024x1024, т.е.  в
этом случае на экране умещается более  миллиона графических то-
чек или, как еще говорят, пикселов.
   Вася. Чем больше точек на экране, тем ведь лучше?
   Петя. Да, чем выше разрешение, тем  качественнее картинка, и
глаза устают гораздо  меньше.  Хотя на качество изображения еще
сильно влияет  частота,  с  которой дисплей перерисовывает свой
экран. Чем она выше, тем больше  монитор  компьютера  похож  на
обычную книгу.
   Вася. Давай вернемся к нашим  "баранам".  Сейчас  у меня нет
времени рисовать новую картинку. Как мне подобрать готовую?
   Петя. Удобно  воспользоваться программой ПИК - это роботлан-
дская "смотрелка" и "преобразовалка" графических файлов.
   Вася. Подозреваю, что в Мониторе для этой программы заготов-
лена кнопка с надписью "Графконвертор".
   Петя. Это точно! Вызывай его на экран.
┌──────────────────────────────────────────────────────────────┐
│┌───┐┌───┐┌────┐┌───┐┌─────┐┌────┐┌────┐                      │
││Роб││Нож││Диск││ - ││Принт││ ?  ││Stop│    П И К             │
│└───┘└───┘└────┘└───┘└─────┘└────┘└────┘                      │
├──────────────────────────────────────────────────────────────┤
│┌─────────────────────────┐ ┌────────────────────────────────┐│
││C:\KURSROB\KURS\1\ABC    │ │░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░││
│├─────────────────────┬───┤ │░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░││
││░abc.pcx░░░░░░░░░░░░░│  │ │░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░││
││ abcpz.pcx           ├───┤ │░░░░Изображение старинного░░░░░░││
││ abcz.pcx            │░░░│ │░░░░замка, уменьшенное в 2░░░░░░││
││ scr.pcx             │░░░│ │░░░░раза.                 ░░░░░░││
││ abcn.pic            │░░░│ │░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░││
││ abcp1.pic           │   │ │░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░││
││ abcp2.pic           │   │ │░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░││
││ abcp3.pic           │   │ │░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░││
││ abcp4.pic           ├───┤ │░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░││
││ abcp5.pic           │  │ │░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░││
│├─────┬─┬─────────────┴───┤ │░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░││
││a  b │c│ d  f  h         │ └────────────────────────────────┘│
│├─────┴─┴─────────────────┤                                   │
││▄PCX ▄PIC ▄CUT ▄SPR ▄KP  │ ┌────────────────────────────────┐│
││  по именам              │ │Файл:    abc.pcx                ││
││■ по расширениям         │ │Размер:  640x350                ││
│├─────────────────────────┤ │Палитра: нестандартная          ││
││abc.pcx       Файлов: 14 │ │Масштаб: 1:2                    ││
│└─────────────────────────┘ └────────────────────────────────┘│
└──────────────────────────────────────────────────────────────┘
   Вася. Программа выглядит  на экране как-то уж очень в багро-
вых тонах.
   Петя. Это потому, что картинка со старинным замком (она заг-
ружена сейчас на экран) имеет нестандартную палитру. Не обращай
пока на это внимание! Давай лучше  я  объясню  тебе  назначение
кнопок управления и разных областей экрана.
   В верхней полоске расположены кнопки основного меню. Их наз-
начение я привожу в виде короткого списка:
┌───┐
│Роб│   - информация о разработчиках
└───┘
┌───┐
│Нож│   - переход на дополнительную страницу
└───┘     (вырезание фрагментов)
┌────┐
│Диск│  - запись картинок
└────┘
┌───┐
│ - │   - удаление картинок с диска
└───┘
┌─────┐
│Принт│ - печать картинок
└─────┘
┌────┐
│ ?  │  - справочная система
└────┘
┌────┐
│Stop│  - выход из программы
└────┘
   Рабочая область справа на экране содержит каталог для выбора
картинок, а сами картинки отображаются в  небольшом окошке. Они
уменьшены  в  два раза. Посмотреть картинку в обычных  размерах
можно, нажав на клавишу Tab.
   Остальные области содержат разную информацию и настройки.
   Вася. Чтобы посмотреть  картинку, нужно просто отметить ее в
каталоге?
   Петя. Да и не забывай по клавишу Tab.
   Вася.  Пожалуй,   я   возьму   для   своей  задачу  картинку
"sity.pic":
┌──────────────────────────────────────────────────────────────┐
│┌───┐┌───┐┌────┐┌───┐┌─────┐┌────┐┌────┐                      │
││Роб││Нож││Диск││ - ││Принт││ ?  ││Stop│    П И К             │
│└───┘└───┘└────┘└───┘└─────┘└────┘└────┘                      │
├──────────────────────────────────────────────────────────────┤
│┌─────────────────────────┐ ┌────────────────────────────────┐│
││C:\KURSROB\KURS\1\ABC    │ │░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░││
│├─────────────────────┬───┤ │░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░││
││ abcp3.pic           │  │ │░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░││
││ abcp4.pic           ├───┤ │░░░░Изображение старинного░░░░░░││
││ abcp5.pic           │░░░│ │░░░░замка, уменьшенное в 2░░░░░░││
││ abcpl.pic           │░░░│ │░░░░раза.                 ░░░░░░││
││ abczoo.pic          │░░░│ │░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░││
││ digit.pic           │   │ │░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░││
││ ibm.pic             │   │ │░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░││
││░sity.pic░░░░░░░░░░░░│   │ │░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░││
││ ..                  ├───┤ │░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░││
││ DOC                 │  │ │░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░││
│├─────┬─┬─────────────┴───┤ │░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░││
││a  b │c│ d  f  h         │ └────────────────────────────────┘│
│├─────┴─┴─────────────────┤                                   │
││▄PCX ▄PIC ▄CUT ▄SPR ▄KP  │ ┌────────────────────────────────┐│
││  по именам              │ │Файл:    abc.pcx                ││
││■ по расширениям         │ │Размер:  640x350                ││
│├─────────────────────────┤ │Палитра: нестандартная          ││
││abc.pcx       Файлов: 14 │ │Масштаб: 1:2                    ││
│└─────────────────────────┘ └────────────────────────────────┘│
└──────────────────────────────────────────────────────────────┘
   Петя. Ну, тогда ты должен вернуться в Микрон и изменить свой
файл "kuk1.tsk".
   Вася. Теперь он будет выглядеть так:
        ┌──────────────────────────────────────────────┐
        │; Задача 1. Список русских  писателей         │
        │;           в порядке возрастания дат         │
        │;           рождения.                         │
        │Картинка: sity.pic                            │
        │Г.Р.Державин А.С.Пушкин М.Ю.Лермонтов         │
        │Н.В.Гоголь И.С.Тургенев Л.Н.Толстой           │
        │А.П.Чехов С.А.Есенин                          │
        └──────────────────────────────────────────────┘

2.8. Шарманщик
   Петя.  Можно  добавить  к картинке какой-нибудь  музыкальный
фрагмент.
   Вася. Предполагаю, что опять это можно  сделать двумя спосо-
бами:
      - выбрать из готовых;
      - написать свой собственный.
   Петя. Ты  прав: и то, и  другое можно сделать  в музыкальном
редакторе Шарманщик.
   Вася. Для начала я просто  подберу  мелодию  из уже готовых.
Вызываю на экран музыкальный редактор.
   Петя. Дисковое меню в Шарманщике вызывается клавишей перехо-
да. Надо  войти в раздел "Каталог"  и в открывшемся  меню музы-
кальных файлов выбрать нужный.
┌─────────────────────────────────────────────────────────────┐
│┌───┐                                                        │
││   │                                                        │
│└───┘                                                        │
│─────────────────────────────────────────────────────────────│
│─────────────────────────────────────────────────────────────│
│──────────────────────╦═════════╦────────────────────────────│
│──────────────────────╢ Чтение  ║░───────────────────────────│
│──────────────────────╢ Запись  ║░───────────────────────────│
│                      ║░Каталог░║░                           │
│              ╔═════════════════════╗                        │
│              ║ Введите имя файла:  ║░                       │
│              ║ *                   ║░                       │
│        ╔═════ C:\KURSROB\KURS\1\ABC ══════╗                 │
│        ║    .\      ..\        DOC\       ║░                │
│        ║    bony    cal        ele        ║░                │
│        ║    gamma   moi        nei        ║░                │
│        ╟──────────────────────────────────╢░                │
│        ║Выход - Esc     Ввод файла - Enter║░                │
│        ╚══════════════════════════════════╝░                │
│         ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░                │
├─────────────────────────────────────────────────────────────┤
│lat   Справка-F1 Выход-Ctrl+Break   Шарманщик (C) Роботландия│
└─────────────────────────────────────────────────────────────┘
   Вася. Но я не смогу определить мелодию по имени файла!
   Петя. Придется загружать музыкальные фрагменты в Шарманщик и
прослушивать. Или ты  найдешь то, что тебе понравится, или при-
дется набирать музыкальный фрагмент из альбома с нотами.

   Вася некоторое  время  прослушивал в Шарманщике разные музы-
кальные  файлы,   потом   остановил   свой   выбор  на  мелодии
"glinka1.mus".

   Вася. Вот теперь моя задача будет с музыкой:
        ┌──────────────────────────────────────────────┐
        │; Задача 1. Список русских  писателей         │
        │;           в порядке возрастания дат         │
        │;           рождения.                         │
        │Картинка: sity.pic                            │
        │Музыка:   glinka1.mus                         │
        │Г.Р.Державин А.С.Пушкин М.Ю.Лермонтов         │
        │Н.В.Гоголь И.С.Тургенев Л.Н.Толстой           │
        │А.П.Чехов С.А.Есенин                          │
        └──────────────────────────────────────────────┘

2.9. Доработка Васиной задачи

   Вася. Теперь я кажется "созрел" для  того,  чтобы  ввести  в
свою задачу какое-нибудь эффектное исчезание карточек с экрана.
Скучно, когда они стираются в одно  мгновение. Пусть постепенно
"растворяются" в воздухе.
   Петя. Надо  использовать команду "Эффект" в описании задачи.
Я думаю, что для твоих целей  годится эффект с кодом "u" из той
большой таблицы, которую я тебе показывал.  Надо подобрать дру-
гие компоненты для параметра xyzt.
   Вася. Значит, код эффекта для x мы выбрали "u". Остается по-
добрать значения величин y, z, t. Напомни, что означает величи-
на y?
   Петя. Эффект с  кодом "u" рисует на карточке подобие шахмат-
ной доски. Белые поля прозрачны с самого начала,  а темные пос-
тепенно заменяются картинкой.  Величина  y - задает размер шах-
матной клетки, а величины z и t отвечают за скорость "растворе-
ния" клетки, как ты говоришь, в воздухе.

   После небольших  экспериментов Петя и Вася подобрали значения
для всех  составляющих  параметра  видеоэффекта,  и теперь Васин
файл с описанием задачи стал выглядеть следующим образом:
        ┌──────────────────────────────────────────────┐
        │; Задача 1. Список русских писателей          │
        │;           в порядке возрастания дат         │
        │;           рождения.                         │
        │Картинка: sity.pic                            │
        │Музыка:   glinka1.mus                         │
        │Эффект:   u810                                │
        │Г.Р.Державин А.С.Пушкин М.Ю.Лермонтов         │
        │Н.В.Гоголь И.С.Тургенев Л.Н.Толстой           │
        │А.П.Чехов С.А.Есенин                          │
        └──────────────────────────────────────────────┘

   Задание 4. Продолжить Васино меню новыми  задачами из разных
областей знаний.

3. Веселые Картинки

   Вася. Мне кажется, настало время "Веселых Картинок".
   Папа.  Нет  возражений. Ты увидишь, что эта программа  очень
похожа на "Волшебные Картинки", но  ее  задачи  выстраивают  не
текстовые упорядоченные цепочки, а графические. Предлагаю  сна-
чала порешать готовые задачи, а потом придумать несколько своих
собственных.

3.1. Решение задач

   Вася. Запускаю программу и вижу на экране такое же меню, как
и в "Волшебных картинках", но, понятно, список задач здесь дру-
гой. Я выберу задачу про домино:

                   ┌─────────────────────────┐
                   │       Задачи            │
                   │                         │
                   │  1.  Многоугольники     │
                   │  2.  Времена года       │
                   │░░3.  Домино           ░░│
                   │  4.  Слон на поляне     │
                   │                         │
                   │      Ввод = Enter       │
                   └─────────────────────────┘

   Папа. Ты видишь, что, как и раньше, экран  состоит из карто-
чек, но на них - не слова, а картинки. Кстати, в этой программе
карточки роботландцы называют кубиками.

        ┌───────────┬───────────┬───────────┬───────────┐
        │   ┌───┐   │   ┌───┐   │   ┌───┐   │   ┌───┐   │
        │   │ ■ │   │   │■  │   │   │   │   │   │■ ■│   │
        │   │   │   │   │   │   │   │   │   │   │   │   │
        │   │   │   │   │  ■│   │   │   │   │   │■ ■│   │
        │   ├───┤   │   ├───┤   │   ├───┤   │   ├───┤   │
        │   │   │   │   │   │   │   │■ ■│   │   │■  │   │
        │   │   │   │   │ ■ │   │   │   │   │   │   │   │
        │   │   │   │   │   │   │   │■ ■│   │   │  ■│   │
        │   └───┘   │   └───┘   │   └───┘   │   └───┘   │
        ├───────────┼───────────┼───────────┼───────────┤
        │   ┌───┐   │   ┌───┐   │   ┌───┐   │   ┌───┐   │
        │   │■ ■│   │   │■ ■│   │   │■ ■│   │   │■ ■│   │
        │   │   │   │   │ ■ │   │   │ ■ │   │   │■ ■│   │
        │   │■ ■│   │   │■ ■│   │   │■ ■│   │   │■ ■│   │
        │   ├───┤   │   ├───┤   │   ├───┤   │   ├───┤   │
        │   │■ ■│   │   │■ ■│   │   │■ ■│   │   │■ ■│   │
        │   │   │   │   │   │   │   │■ ■│   │   │■ ■│   │
        │   │■ ■│   │   │■ ■│   │   │■ ■│   │   │■ ■│   │
        │   └───┘   │   └───┘   │   └───┘   │   └───┘   │
        └───────────┴───────────┴───────────┴───────────┘

   Вася. Да,  понятно. Косточки домино построены по возрастанию
общего числа точек на них. Это задача для первоклашек.
   Петя. А мог бы ты написать аналогичную задачу для "Волшебных
картинок"?
   Вася. Конечно!  Если исключить "прибамбасы", то задача имела
бы такое описание:
                  ┌──────────────────────────┐
                  │; Домино в текстовом виде │
                  │1 3 4 6 8 9 11 12         │
                  └──────────────────────────┘
   Папа. В отличие от цепочки задачи "Прямой счет", числа здесь
идут не подряд, но строго по возрастанию. Для юных учеников за-
дача полезная.

   Вася нажал на  пробел,  кубики с косточками домино перемеша-
лись на экране, и он приступил к решению.

   Задание 5. Решить все задачи "Веселых картинок".

3.2. Анатомия "Веселых Картинок"

   Вася.  Задача  решается просто. Только кубики не исчезают  с
экрана, а перемещаются на "свои" места.  А  как  с  "анатомией"
этой программы? Она отличается от "Волшебных Картинок"?
   Петя.   Очень   немного.   Программа  называется  на   диске
"abcp.exe" и  может запускаться с параметром. Параметром служит
имя файла-меню. Если параметр не задан, то на диске ищется меню
с именем "abcp.men". Другими словами, запуск  без параметра рав-
нозначен запуску
                          abcp abcp.men
А что касается самого меню задач, то оно устроено точно так же,
как и в "Волшебных Картинках".
   Вася. Значит, все  отличие состоит в устройстве файла с опи-
санием задачи?
   Петя. Верно. Во-первых, имена файлов с задачами имеют расши-
рение "ts", а не "tsk". Это принятое (но необязательное!) обоз-
начение позволяет сразу  отличить эти файлы по названию от дру-
гих файлов  на диске, в  том числе и от файлов-задач "Волшебных
Картинок". Ну  и,  конечно,  описание  задач  устроено  немного
по-другому. Давай загрузим в Микрон описание  задачи про домино
и посмотрим, как оно выглядит.
   Вася.  Сначала  я загружу в Микрон файл-меню "abcp.men"  для
того, чтобы посмотреть дисковое имя задачи:

               ┌─────────────────────────────────┐
               │1. Многоугольники    | abcp1.ts  │
               │2. Времена года      | abcp2.ts  │
               │3. Домино            | abcp3.ts  │
               │4. Слон на поляне    | abcp4.ts  │
               │5. Алгоритм перехода | abcp5.ts  │
               └─────────────────────────────────┘
   Вася. Дисковое имя задачи "Домино" - abcp3.ts. Теперь загру-
жаю в Микрон этот файл:
                ┌────────────────────────────────┐
                │Картинка: abcp3.pic             │
                │Эффект:   f422                  │
                │Музыка:   bony.mus              │
                │Кубики:   2 4 8                 │
                └────────────────────────────────┘
   Я вижу только одно новое ключевое слово - "Кубики".

   Петя. Главное отличие здесь  в  картинке. На ней должны быть
нарисованы как сами кубики, так и их содержимое.
   Вася. А как  же программа узнает, сколько кубиков на картин-
ке, и как они расположены по строкам и столбцам?
   Петя. Это как раз и записывается в строке "Кубики". Указание
"Кубики: 2 4 8" означает,  что картинка будет  разбита на 2 по-
лоски по 4 кубика в каждой  и все 8 кубиков участвуют в переме-
шивании.  В общем случае это указание имеет вид:

     Ключевое слово - "Кубики:" (синонимы: "Кубики",  "куби-
ки:", "кубики").
     Параметры:
<число строк> <число столбцов> <число перемешиваемых кубиков>

Пример: указание "кубики 2 4 7"  предполагает разбиение кар-
тинки на 2 строки и 4 столбца.
        ┌──────────┬──────────┬──────────┬──────────┐
        │          │          │          │          │
        │          │          │          │          │
        │          │          │          │          │
        ├──────────┼──────────┼──────────┼──────────┤
        │          │          │          │          │
        │          │          │          │          │
        │          │          │          │          │
        └──────────┴──────────┴──────────┴──────────┘
   Последний кубик не участвует в перемешивании, так как третий
параметр - 7, а число кубиков на экране - 8.
     Число строк и столбцов не может быть произвольным. Чис-
ло строк должно быть  делителем  числа 350, а число столбцов
должно быть делителем числа 80. Ниже приводится таблица, ко-
торую можно использовать для  подбора  подходящего разбиения
картинки.
                 ┌─────┬───────────────────┐
                 │     │  число столбцов   │
                 │число├───┬───┬───┬───┬───┤
                 │строк│ 2 │ 4 │ 5 │ 8 │10 │ В клетках
                 ├─────┼───┼───┼───┼───┼───┤ таблицы
                 │  2  │ 4 │ 8 │10 │16 │20 │ указано
                 ├─────┼───┼───┼───┼───┼───┤ общее число
                 │  5  │10 │20 │25 │40 │50 │ кубиков на
                 ├─────┼───┼───┼───┼───┼───┤ экране.
                 │  7  │14 │28 │35 │56 │70 │
                 ├─────┼───┼───┼───┼───┼───┤
                 │ 10  │20 │40 │50 │80 │100│
                 └─────┴───┴───┴───┴───┴───┘

   Вася. Мне кажется, что нарисовать картинку с точным располо-
жением всех кубиков невероятно сложно.
   Петя. Ты прав.  Но в пакете есть специальное средство: Гене-
ратор Кубиков. Эта программа делает заготовку для будущей кар-
тинки, расчерчивая ее на кубики нужным образом.
   Вася. А как запускать эту программу?
   Петя. В Мониторе, на странице Картинок  есть кнопка, которая
так и подписана "Генератор Кубиков".
   Вася. Попробую ее нажать. На экране появилось окно:
            ┌────┬─────────────────────────────┬────┐
            │    │       Ввод параметров       │ Ok │
            ├────┴─────────────────────────────┴────┤
            │ ┌────────────────────────────────────┐│
            │ │                                    ││
            │ └────────────────────────────────────┘│
            └───────────────────────────────────────┘
   Петя. Монитор  просит  тебя ввести параметры для запускаемой
программы.
   Вася. И что я должен написать?
   Петя. Нужно указать четыре параметра через пробелы:
<имя файла-картинки> <число строк> <число столбцов> <тип кубика>
  Здесь:
   <имя файла-картинки> - дисковое имя будущей картинки. Формат
картинки  определяется  по расширению: "pic" - для формата  PIC
"pcx" - для формата PCX.
   <число строк> - число строк на  экране, соответствует анало-
гичному параметру  в  указании "кубики" программы "Веселая Кар-
тинка".
   <число столбцов>  -  число столбцов на экране, соответствует
аналогичному параметру в указании  "кубики"  программы "Веселая
Картинка".
   <тип кубика> - число из диапазона 0-1, задает  вид кубика на
экране.
   Вася. А чем отличаются кубики с типом 0 и 1?
   Петя. Кубик  с типом 0 - "плоский", с  типом 1 - "объемный".
Обычно указывается тип 1, а для задач, в которых целая картинка
должна "разрезаться" на части, а потом при решении восстанавли-
ваться, указывается тип  0.  В "Веселых Картинок" последний тип
кубиков имеет задача "Слон на полянке".
   Вася. Хорошо, щелкаю мышкой по полю ввода и записываю в нем:
            ┌────┬─────────────────────────────┬────┐
            │    │       Ввод параметров       │ Ok │
            ├────┴─────────────────────────────┴────┤
            │ ┌────────────────────────────────────┐│
            │ │1.pic 2 4 1█                        ││
            │ └────────────────────────────────────┘│
            └───────────────────────────────────────┘
   Нажимаю клавишу выполнения  и  экранную кнопку Ok. На экране
промелькнула какая-то картинка, но я не успел ее рассмотреть.
   Петя. Эту картинку  (ты задал ей имя 1.pic) сделал Генератор
Кубиков. Ее  можно  посмотреть,  вызвав  Графконвертор. А можно
сразу запустить Художник,  вызвать в нем эту заготовку и начать
рисование.

3.3. Новая задача
   Вася. Я вызову Художник. У меня появилась идея для новой за-
дачи.
   Папа. Расскажи!
   Вася. На  моих  восьми  кубиках  будут нарисованы: черепаха,
ежик, гусь, человек, гепард, автомобиль, самолет и ракета.
   Папа. И по какому правилу выстроена твоя цепочка?
   Вася. В этом  и состоит "изюминка" задачи. Сначала нужно до-
гадаться, а уж потом перемешивать кубики.
   Петя. Я "раскусил" порядок в твоей цепочке: объекты располо-
жены по  возрастанию максимально возможной скорости их передви-
жения.
   Вася. Точно! Картинку  я нарисую потом, а сейчас напишу файл
с описанием задачи, он будет называться "kuk1.ts":
                ┌────────────────────────────────┐
                │; Объекты упорядочены по возрас-│
                │; танию максимально возможной   │
                │; скорости передвижения.        │
                │;                               │
                │Картинка: 1.pic                 │
                │Эффект:   u810                  │
                │Музыка:   glinka2.mus           │
                │Кубики:   2 4 8                 │
                └────────────────────────────────┘
   Видеоэффект я  перекопировал  из своей задачи для "Волшебных
Картинок", а в качестве музыкального фрагмента использовал файл
"glinka2.mus"  -  в нем звучит "Попутная песня" М.И.Глинки:  уж
очень она подходит для задачи про скорость.
   Петя. Теперь тебе надо  вписать  свою задачу в меню "Веселых
Картинок".
   Вася. Это легко сделать в Микроне:
               ┌─────────────────────────────────┐
               │1. Многоугольники    | abcp1.ts  │
               │2. Времена года      | abcp2.ts  │
               │3. Домино            | abcp3.ts  │
               │4. Слон на поляне    | abcp4.ts  │
               │5. Алгоритм перехода | abcp5.ts  │
               │6. Догадалка Кука    | kuk1.ts   │
               └─────────────────────────────────┘

3.4. Художник

   Папа. Теперь в задаче не хватает самого главного - картинки.
Придется засучивать рукава и вызывать Художник.
   Вася. Редактор, я конечно вызову, но из меня художник как из
гуся писатель...
   Папа. Ты можешь не  рисовать  сам, а подобрать персонажей из
готовой коллекции. Она состоит из файлов с расширением "spr". В
Художнике  такие  файлы-картинки называются  объектами. Объекты
Художника можно легко расставлять на экране поверх готового ри-
сунка.
   Вася. Вот это  мне подходит! Вызываю Художник. Выбираю в его
главном меню раздел "Файлы",  в  подменю - раздел "Картинка", в
новом подменю раздел "Каталог", а  в  каталоге  - файл "1.pic".
Готово! Картинка с пустыми кубиками на экране.
   Папа. Теперь проделай то же самое, но открой  каталог с объ-
ектами.
   Вася. В главном меню выбираю раздел  "Файлы",  в  подменю  -
раздел "Объекты", в новом подменю раздел "Каталог":
┌──────────────────────────────────────────────────────────────┐
│    Чтение и запись картинок, фрагментов и объектов на диск   │
├───────────┬─────┬────────────────────────────────────────────┤
│           │Файлы│     Режимы       Откатка       Очистка     │
├───┬───┬──┬┴─────┴───┬────────────────────────────────────────┤
│   │   │  │ Картинка │                                        │
├───┼───┤  │ Фрагмент │                                        │
│   │   │  │░Объект░░░│                                        │
├───┼───┤  └┬─────────┴─┐                                      │
│   │   │   │ Чтение    │                                      │
├───┼───┤   │ Запись    │                                      │
│   │   │   │░Каталог░░░│                                      │
├───┼───┤   └──┬────────┴ C:\KURSROB\KURS\1\ABC ───────┐       │
│   │   │      │    .\         ..\          DOC\       │       │
├───┴───┘      │   car         coc          ez         │       │
│              │   gep         gus          men        │       │
│              ├───────────────────────────────────────┤       │
│              │Выход - Esc         Ввод файла - Enter │       │
│┌───┐         └───────────────────────────────────────┘       │
││   ├─┐                                                       │
│└┬┬─┘ │                     ┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐ │
│ │└──┬┘                     ├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤ │
│ └───┘                      └─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘ │
├──────────────────────────────────────────────────────────────┤
│lat   Справка-F1 Выход-Ctrl+Break     Художник (C) Роботландия│
└──────────────────────────────────────────────────────────────┘

   Вася. Первым  в списке стоит файл  "car". Когда я  работал в
Графконверторе, то  видел  в этом файле изображение автомобиля.
Вот его-то я и выберу!
   Готово! Что  я вижу: с  экрана все пропало, кроме моих куби-
ков, и появился большой прямоугольный курсор.
   Папа. Этот курсор как  раз  размером с твоего гуся. Художник
предлагает выбрать место для наложения объекта.
   Вася. Автомобиль меня шестым в списке после гепарда, поэтому
я должен поставить его  на  шестой кубик. Подравниваю курсор по
центру этого кубика, нажимаю левую кнопку  мыши и... автомобиль
как на экране! Но курсор остался прежним.
   Папа. Художник  думает,  вдруг  ты захочешь поставить машину
еще где-нибудь на картинке.
   Вася. Но мне больше автомобилей не надо!
   Папа. Тогда нажми правую кнопку мыши или клавишу перехода на
клавиатуре.

   Вася продолжил свою  работу в Художнике, и вскоре все кубики
были заполнены. Когда  он снова вызвал "Веселые Картинки" и за-
пустил свою задачу, Васиной радости не было предела. Задача по-
лучилась красивой и работала как часы.

   Задание 5. Повторить Васину работу по созданию задачи "Дога-
далка Кука".

   Задание 6. Создать серию новых задач для "Веселых Картинок".

