В заключительной главе этой книги я хочу рассказать о проектах на VBA, созданных уже не мной, а студентами факультета прикладной математики Тверского госуниверситета, которым я читал курс "Офисное программирование".
В качестве одного из семестровых заданий я предложил каждому из студентов написать игру на VBA. Я ставил два условия. В ходе написания игры студенты должны продемонстрировать свое умение "программировать в классах". Это означало, что вначале должны быть созданы классы объектов, например, классы: "игрок", "доска", "карта". Затем, оперируя объектами этих классов, следовало написать реализацию игры. Второе условие касалось содержания игры. Игра должна быть ориентированной, прежде всего, на школьников и требовать от них некоторых умственных усилий, то есть относится к классу "развивающих" игр.
Результатом этой работы был сборник из 21 игры с открытыми проектами, доступными для изучения.
Каждая игра представляет собой "документ-обложку". Так я называю документы Office 2000, которые содержат программный проект на VBA и, по сути, ничего более. Так что документ Office 2000 играет роль обложки, под которой находится программный проект. Сам проект использует только средства VBA и не обращается к объектам Office 2000. Запуск игры обычно осуществляется обработчиком события Open данного документа или по нажатию кнопки Start, встроенной в документ. Поскольку для таких документов специфика конкретного приложения Office 2000 не учитывается, то игру можно разместить с одинаковым успехом под обложкой любого из приложений Office 2000 - Word, Excel, Power Point. Большей частью студенты размещали игры под обложкой документов Word, что позволяло на первой странице документа, помимо кнопки Start, запускающей игру, помещать описание правил игры.
В работе над играми студенты использовали мои книги [1], [2]. В первой из них, посвященной языку VBA, большой раздел посвящен теме "программирования в классах". В ней рассматриваются вопросы создания классов, динамические классы, обертывающие классы, семейства классов с наследованием интерфейсом и полиморфизмом. Все эти вопросы, так или иначе, нашли отражение в программных проектах, реализующих те или иные игры. Во второй из указанных книг я приводил реализацию известной игры для младших школьников "Волк, коза и капуста", что было некоторой отправной точкой для разработки собственной игры. Эта игра также вошла в сборник игр, о котором я рассказываю.
Нужно отметить, что большинство игр, созданных студентами, превзошли созданный мной образец. Приведу краткое описание игр, вошедших в сборник. Первым делом, расскажу об игре "Подкидной дурак", созданной Александром Соловьевым. Эта игра была создана еще два года назад, когда я впервые прочитал курс по Офисному программированию, и была первым опытом создания игр в рамках этого курса. Для реализации стратегии игры компьютера в ней использовались серьезные математические методы, в частности, метод ветвей и границ. Помимо применения классов VBA та часть игры, которая связана с поиском подходящего хода, была написана на Visual C++ и подсоединена к проекту на VBA через аппарат DLL. Хотя компьютер играет честно, "не подсматривая" в карты противника, выиграть у него совсем не просто. Игра сделана вполне профессионально и, полагаю, справедливо, представленная на конкурс Office Extensions, она выиграла первый приз. Вот как выглядит интерфейс этой игры:
(рис 12.1) Интерфейс игры "Подкидной дурак"Все остальные игры сборника создавались в течение двух месяцев. Игра "Lines", автором которой является Александр Галушко, и игра "Тетрис", созданная Александром Кузнецовым и Андреем Грязновым представляют вариации на тему хорошо известных игр. В игре "Lines" неплохо реализован алгоритм поиска кратчайшего пути из точки в точку на доске, занятой фигурами. Ее интерфейс с разнообразными фигурками мне нравится больше, чем классический вариант этой игры, где используются только разноцветные шарики. Игра "Тетрис" имеет скромный интерфейс, но вполне достаточный для тех, кто любит эту знаменитую игру. На рисунках 12.2 и 12.3 можно видеть, как выглядят эти игры:

(рис 12.3) Игра "Lines"(рис 12.2) Интерфейс игры "Тетрис" Прекрасным логическим упражнением является игра "Master Mind", созданная Томашем Бречко. Она является графическим вариантом известной игры, называемой в просторечии "Быки и коровы". Поскольку можно менять длину задуманной комбинации, изменяя тем самым сложность игры, то игра подходит для школьников разного возраста. Вот как выглядит ее интерфейс:
(рис 12.4) Интерфейс игры "Master Mind"Игра "Мозаика", автором которой является Алексей Вальяно, представлена в двух вариантах. Более сложный представляет вариацию игры "Кубик Рубика" на плоскости. Простой - вариация игры "Puzzle", где требуется собрать картинку из отдельных кусочков. Картинку можно задавать любую, годится любой bmp-файл. С программистской точки зрения игра интересна тем, что здесь решается задача, часто требуемая на практике, когда требуется разрезать bmp-файл на части.
Ряд игр сборника относятся к так называемым головоломкам, где нужно решить задачу за минимальное количество ходов. Среди них хочется отметить игру "Выборы в России", авторами которой являются Людмила Никонова и Анна Ананьева. В игре использованы фотографии участников президентских выборов. При желании фотографии игроков можно заменить. Вот как выглядит интерфейс этой игры:
(рис 12.5) Игра "Выборы Президента"Не буду рассказывать обо всех играх, поскольку надеюсь, что многие из читателей сумеют на практике посмотреть, как эти игры работают.
Многим читателям этой книги могут быть интересны не столько сами игры, а то, как они реализованы. Поскольку код проектов открыт, то программисты имеют возможность познакомиться с готовыми решениями.
Помимо указанных выше причин считаю, что сборник имеет ценность не только с учебной точки зрения, но и как готовый продукт. Я убежден, что доля подобных игровых дисков весьма мала в сравнении с красиво сделанными "стрелялками". В доме, где есть школьники, такой набор игр весьма полезен для развития их логических способностей.
Конечно, этот сборник не является коммерческим продуктом, и я не гарантирую хорошее описание или отсутствие ошибок, которые могут возникать в ходе игры. Но все игры, вошедшие в сборник, прошли предварительное тестирование. Игры на диске представлены "россыпью".
В 1998 году, работая над книгой "VBA и Office 97", я предложил использовать в ее названии введенный в книге новый термин "Офисное программирование". Последующие мои книги, посвященные важному направлению современного программирования, выходили с этим же подзаголовком. Эта книга уже четвертая в этой серии. Сам термин "Офисное программирование" прижился и теперь широко используется в различных контекстах, а не только в названиях моих книг.
Завершая, видимо, работу над книгами этой серии, хотелось бы высказать свою точку зрения на перспективы развития данного направления. В чем я вижу достоинства этого направления? Коротко перечислю то, что я уже неоднократно говорил в своих статьях и книгах:
Не все из этих возможностей в полной мере используются сегодня на практике. В первом пункте я говорил о возможности создания системы документов, командой, состоящей из людей разных специальностей. Думаю, в реальной жизни такой способ работы до сих пор почти не применяется. Сегодня практически нет команд, в которых пользователи и программисты работали бы совместно. Если говорить об обучении, то сегодня даже в лучших обучающих центрах, учат, как пользоваться готовым программным продуктом, а не тому, как динамически настраивать программный продукт, чтобы он в каждый момент соответствовал изменяющимся потребностям пользователя. Пользователя учат приспосабливаться к продукту, а не приспосабливать продукт к потребностям пользователя.
Как и в какую сторону развивается офисное программирование? Прежде всего, в сторону интернет. Лозунг дня - документы теперь создаются в сети и для работы в сети. То, что в свое время формат Html стал родным форматом документов среды Office, было поистине революционным достижением в этом направлении. Действительно, исчезла разница в подготовке документа для его просмотра на локальном компьютере или в сети. Но сегодня возможностей работы в сети со статическими документами явно недостаточно. Документы, предназначенные для совместной работы, должны быть интерактивными, взаимодействовать с базой данных.
Хочется отметить важную роль, которую сыграли компоненты OWC в развитии интерактивности Web-документов. Дело даже не только в том, что теперь Web-страницы могут обладать функциональностью Excel, и не в том, что эти компоненты можно программно настраивать под потребности пользователя. Хотя все это крайне важно само по себе, но более важен применяемый подход, основанный на использовании COM-объектов, располагаемых на Web-страницах. Такие объекты с нужной функциональностью можно создавать самому, придавая требуемую интерактивность Web-документу. Должен заметить, что, по моему мнению, компоненты OWC, а главное, возможности программной работы с ними еще не оценены в полной мере. Они заслуживают более широкого применения.
Несколько слов о Web-программировании. Начав сравнительно недавно заниматься созданием Web-приложений, я для себя понял, что между офисным программированием и Web-программированием нет большой разницы. Для меня Web-узел это обычный документ такой же как, например, рабочая книга Excel со своими страницами. И программная настройка этого документа для придания ему нужной интерактивности ведется такими же приемами, как и для других офисных документов. И здесь используется объектная модель документа и встроенный язык программирования. Поэтому для меня Web-программирование является частью офисного программирования.
Кстати о термине "Web-программирование". Существует ли такой термин? Если нет, то его следует, как мне кажется, ввести.
На этом ставлю точку. Жду писем по адресу:
Vladimir.Billig@tversu.ru
В заключительной главе этой книги я хочу рассказать о проектах на VBA, созданных уже не мной, а студентами факультета прикладной математики Тверского госуниверситета, которым я читал курс "Офисное программирование".
В качестве одного из семестровых заданий я предложил каждому из студентов написать игру на VBA. Я ставил два условия. В ходе написания игры студенты должны продемонстрировать свое умение "программировать в классах". Это означало, что вначале должны быть созданы классы объектов, например, классы: "игрок", "доска", "карта". Затем, оперируя объектами этих классов, следовало написать реализацию игры. Второе условие касалось содержания игры. Игра должна быть ориентированной, прежде всего, на школьников и требовать от них некоторых умственных усилий, то есть относится к классу "развивающих" игр.
Результатом этой работы был сборник из 21 игры с открытыми проектами, доступными для изучения.
Каждая игра представляет собой "документ-обложку". Так я называю документы Office 2000, которые содержат программный проект на VBA и, по сути, ничего более. Так что документ Office 2000 играет роль обложки, под которой находится программный проект. Сам проект использует только средства VBA и не обращается к объектам Office 2000. Запуск игры обычно осуществляется обработчиком события Open данного документа или по нажатию кнопки Start, встроенной в документ. Поскольку для таких документов специфика конкретного приложения Office 2000 не учитывается, то игру можно разместить с одинаковым успехом под обложкой любого из приложений Office 2000 - Word, Excel, Power Point. Большей частью студенты размещали игры под обложкой документов Word, что позволяло на первой странице документа, помимо кнопки Start, запускающей игру, помещать описание правил игры.
В работе над играми студенты использовали мои книги [1], [2]. В первой из них, посвященной языку VBA, большой раздел посвящен теме "программирования в классах". В ней рассматриваются вопросы создания классов, динамические классы, обертывающие классы, семейства классов с наследованием интерфейсом и полиморфизмом. Все эти вопросы, так или иначе, нашли отражение в программных проектах, реализующих те или иные игры. Во второй из указанных книг я приводил реализацию известной игры для младших школьников "Волк, коза и капуста", что было некоторой отправной точкой для разработки собственной игры. Эта игра также вошла в сборник игр, о котором я рассказываю.
Нужно отметить, что большинство игр, созданных студентами, превзошли созданный мной образец. Приведу краткое описание игр, вошедших в сборник. Первым делом, расскажу об игре "Подкидной дурак", созданной Александром Соловьевым. Эта игра была создана еще два года назад, когда я впервые прочитал курс по Офисному программированию, и была первым опытом создания игр в рамках этого курса. Для реализации стратегии игры компьютера в ней использовались серьезные математические методы, в частности, метод ветвей и границ. Помимо применения классов VBA та часть игры, которая связана с поиском подходящего хода, была написана на Visual C++ и подсоединена к проекту на VBA через аппарат DLL. Хотя компьютер играет честно, "не подсматривая" в карты противника, выиграть у него совсем не просто. Игра сделана вполне профессионально и, полагаю, справедливо, представленная на конкурс Office Extensions, она выиграла первый приз. Вот как выглядит интерфейс этой игры:
(рис 12.1) Интерфейс игры "Подкидной дурак"Все остальные игры сборника создавались в течение двух месяцев. Игра "Lines", автором которой является Александр Галушко, и игра "Тетрис", созданная Александром Кузнецовым и Андреем Грязновым представляют вариации на тему хорошо известных игр. В игре "Lines" неплохо реализован алгоритм поиска кратчайшего пути из точки в точку на доске, занятой фигурами. Ее интерфейс с разнообразными фигурками мне нравится больше, чем классический вариант этой игры, где используются только разноцветные шарики. Игра "Тетрис" имеет скромный интерфейс, но вполне достаточный для тех, кто любит эту знаменитую игру. На рисунках 12.2 и 12.3 можно видеть, как выглядят эти игры:

(рис 12.3) Игра "Lines"(рис 12.2) Интерфейс игры "Тетрис"Прекрасным логическим упражнением является игра "Master Mind", созданная Томашем Бречко. Она является графическим вариантом известной игры, называемой в просторечии "Быки и коровы". Поскольку можно менять длину задуманной комбинации, изменяя тем самым сложность игры, то игра подходит для школьников разного возраста. Вот как выглядит ее интерфейс:
(рис 12.4) Интерфейс игры "Master Mind"Игра "Мозаика", автором которой является Алексей Вальяно, представлена в двух вариантах. Более сложный представляет вариацию игры "Кубик Рубика" на плоскости. Простой - вариация игры "Puzzle", где требуется собрать картинку из отдельных кусочков. Картинку можно задавать любую, годится любой bmp-файл. С программистской точки зрения игра интересна тем, что здесь решается задача, часто требуемая на практике, когда требуется разрезать bmp-файл на части.
Ряд игр сборника относятся к так называемым головоломкам, где нужно решить задачу за минимальное количество ходов. Среди них хочется отметить игру "Выборы в России", авторами которой являются Людмила Никонова и Анна Ананьева. В игре использованы фотографии участников президентских выборов. При желании фотографии игроков можно заменить. Вот как выглядит интерфейс этой игры:
(рис 12.5) Игра "Выборы Президента"Не буду рассказывать обо всех играх, поскольку надеюсь, что многие из читателей сумеют на практике посмотреть, как эти игры работают.
Многим читателям этой книги могут быть интересны не столько сами игры, а то, как они реализованы. Поскольку код проектов открыт, то программисты имеют возможность познакомиться с готовыми решениями.
Помимо указанных выше причин считаю, что сборник имеет ценность не только с учебной точки зрения, но и как готовый продукт. Я убежден, что доля подобных игровых дисков весьма мала в сравнении с красиво сделанными "стрелялками". В доме, где есть школьники, такой набор игр весьма полезен для развития их логических способностей.
Конечно, этот сборник не является коммерческим продуктом, и я не гарантирую хорошее описание или отсутствие ошибок, которые могут возникать в ходе игры. Но все игры, вошедшие в сборник, прошли предварительное тестирование. Игры на диске представлены "россыпью".
В 1998 году, работая над книгой "VBA и Office 97", я предложил использовать в ее названии введенный в книге новый термин "Офисное программирование". Последующие мои книги, посвященные важному направлению современного программирования, выходили с этим же подзаголовком. Эта книга уже четвертая в этой серии. Сам термин "Офисное программирование" прижился и теперь широко используется в различных контекстах, а не только в названиях моих книг.
Завершая, видимо, работу над книгами этой серии, хотелось бы высказать свою точку зрения на перспективы развития данного направления. В чем я вижу достоинства этого направления? Коротко перечислю то, что я уже неоднократно говорил в своих статьях и книгах:
Не все из этих возможностей в полной мере используются сегодня на практике. В первом пункте я говорил о возможности создания системы документов, командой, состоящей из людей разных специальностей. Думаю, в реальной жизни такой способ работы до сих пор почти не применяется. Сегодня практически нет команд, в которых пользователи и программисты работали бы совместно. Если говорить об обучении, то сегодня даже в лучших обучающих центрах, учат, как пользоваться готовым программным продуктом, а не тому, как динамически настраивать программный продукт, чтобы он в каждый момент соответствовал изменяющимся потребностям пользователя. Пользователя учат приспосабливаться к продукту, а не приспосабливать продукт к потребностям пользователя.
Как и в какую сторону развивается офисное программирование? Прежде всего, в сторону интернет. Лозунг дня - документы теперь создаются в сети и для работы в сети. То, что в свое время формат Html стал родным форматом документов среды Office, было поистине революционным достижением в этом направлении. Действительно, исчезла разница в подготовке документа для его просмотра на локальном компьютере или в сети. Но сегодня возможностей работы в сети со статическими документами явно недостаточно. Документы, предназначенные для совместной работы, должны быть интерактивными, взаимодействовать с базой данных.
Хочется отметить важную роль, которую сыграли компоненты OWC в развитии интерактивности Web-документов. Дело даже не только в том, что теперь Web-страницы могут обладать функциональностью Excel, и не в том, что эти компоненты можно программно настраивать под потребности пользователя. Хотя все это крайне важно само по себе, но более важен применяемый подход, основанный на использовании COM-объектов, располагаемых на Web-страницах. Такие объекты с нужной функциональностью можно создавать самому, придавая требуемую интерактивность Web-документу. Должен заметить, что, по моему мнению, компоненты OWC, а главное, возможности программной работы с ними еще не оценены в полной мере. Они заслуживают более широкого применения.
Несколько слов о Web-программировании. Начав сравнительно недавно заниматься созданием Web-приложений, я для себя понял, что между офисным программированием и Web-программированием нет большой разницы. Для меня Web-узел это обычный документ такой же как, например, рабочая книга Excel со своими страницами. И программная настройка этого документа для придания ему нужной интерактивности ведется такими же приемами, как и для других офисных документов. И здесь используется объектная модель документа и встроенный язык программирования. Поэтому для меня Web-программирование является частью офисного программирования.
Кстати о термине "Web-программирование". Существует ли такой термин? Если нет, то его следует, как мне кажется, ввести.
На этом ставлю точку. Жду писем по адресу:
Vladimir.Billig@tversu.ru
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.