Информационные технологии. 11 класс (Базовый уровень)
Создание любого оконного приложения осуществляется, как правило, в три этапа:
- Создание интерфейса приложения, т. е. средств взаимодействия пользователя с программой.
- Разработка сценария работы будущего приложения. На этом этапе определяют, какая информация будет выводиться на экран, какие события будут происходить при использовании различных компонентов, как приложение должно завершить работу, какие результаты и в каком виде сохранить и т. д.
- Разработка алгоритма решения поставленной задачи .
Большинство приложений в операционной системе Windows выглядят и ведут себя сходным образом. Компания Microsoft предложила рекомендации для разработки программного обеспечения, направленные на то, чтобы пользователь не тратил время на освоение нюансов пользовательского интерфейса новой программы, а сразу начал продуктивно ее использовать. Эти рекомендации основаны на психофизиологических особенностях человека и существенно облегчат жизнь будущим пользователям вашей программы.
Приведем некоторые рекомендации по разработке графического интерфейса оконных приложений (пример 5.1).
Пример 5.1. Рекомендации по созданию оконных приложений.
- В приложении рекомендуется разместить главное меню и инструментальную панель быстрых кнопок, дублирующих основные разделы меню.
- Желательно, чтобы объекты приложения обладали контекстными меню, появляющимися при нажатии правой клавишей мыши на объекте.
- Для объектов рекомендуется прописать подсказки, всплывающие при наведении указателя мыши на объект.
- Рекомендуется реализовать строку состояния, используемую для выдачи различной информации.
- При нажатии клавиши F1 должен загружаться файл справки.
- В программе желательно реализовать возможность настройки и сохранения настроек, чтобы при следующем сеансе работы их не пришлось устанавливать заново.
Мощным воздействием на психику человека является цвет, поэтому с ним нужно обращаться очень осторожно. Нужно стремиться использовать ограниченный набор цветов и уделять внимание их правильному сочетанию. Восприятие цвета у человека очень индивидуально, поэтому не стоит навязывать всем свое видение цвета. Желательно, чтобы основной цвет формы был нейтральным (например, у большинства приложений Microsoft это светло-серый цвет).
Как написать программу в блокноте
Блокнот — это простой текстовый редактор. С его помощью просматривают документы в формате .txt. Запустить Блокнот можно, нажав «Пуск». Выбрать «Программы» и «Стандартные». В нем можно печатать текст, создавать web-страницы и даже небольшие вирусы. А кто-нибудь задумывался о том, что в простом блокноте можно создать неплохую программку?

Статьи по теме:
- Как написать программу в блокноте
- Как создать файл блокнотом
- Как написать программу exe
Вам понадобится
- Персональный компьютер, установленный блокнот
Инструкция
Чтобы создать программу, надо запустить Блокнот. Далее вводите необходимые данные, пишите нужный текст. Он будет зависеть от того, что вы хотите создать. Если этот документ станет страничкой сайта, заполняете все в html-редакторе.
Введите, например, mspaint. Сохраните документ под любым именем. Нажимайте «Файл» и «Сохранить как…» Только надо выбрать правильно формат. В «Имя файла» пишите название, а вместо .txt вставляйте нужный вам формат (html, для нашего случая .bat.) Откройте созданный файл. В нем теперь может писать все, что угодно. Вместо «mspaint» Taskmgr-диспетчер задач и прочее, то есть, все зависит от того, какую программу хотите создать.
В Блокноте простой текст может стать программой, если правильно выбрать ему формат. Откройте блокнот и напишите следующий код программы:
a = inputbox (“Введите время для таймера”)
c=inputbox (“Введите сообщение для таймера”)
msgbox “Работает таймер”
Сохраните документ в формате .vbs. Все, можете запускать свою программку.
Написав текст для программы, самое главное сохранить в правильном формате, или расширении. Откройте Блокнот. Введите следующий текст программы:
set/p expr=»Enter expression:»
echo Answer: %answer%
Данный файл сохраните в расширении .bat или же .cmd. В командной строке можно ввести слово « help». Там вы увидите доступные команды. Чтобы узнать синтаксис, введите в строке “help/?”. Если недоступно какое-то расширение, откройте командную строку и применяйте такую команду, как [type con]. Для сохранения в консоли текста надо нажать такую комбинацию: “Enter и Ctr+Z”. Так что блокнот тоже может создавать программы, пусть не такие огромные и сложные. Обычно в Блокноте сохраняют программы, имеющие расширение *.bat * .cmd , * .vbs.
- как работать в блокнот
Совет полезен?
Статьи по теме:
- Как создать файл-приложение
- Как создать java скрипт
- Как создавать сайт в блокноте
Добавить комментарий к статье
Похожие советы
- Как создавать страницу через блокнот
- Как создать собственную программу
- Как написать командный файл
- Как запустить скрипт vbs
- Как запустить bat файлом программу
- Как создать программу на компьютер
- Как написать код для сайта
- Как создать сайт в блокноте
- Как написать программу на паскале
- Как научиться создавать программы
- Как составить программу на компьютере
- Как написать игру
- Как открыть блокнот
- Как сделать программу
- Как составить компьютерную программу
- Как заполнить блокнот
- Как создать файл в паскале
- Как создать программу exe
- Как написать компьютерную программу
- Как программировать на ассемблере
- Как писать в консоли
- Как научиться писать макросы
Как я сделал игру для Блокнота
Пока читал про необычные решения от инди-разработчиков, наткнулся на золото. Вот вам статья про игру в текстовом редакторе. Арт, анимация, сюжет — все как положено.
Я создал игру And yet it hurt (возможно, автор хотел сказать it hurts, но мог использовать такой вариант намеренно, — прим.).
Все началось в 2017 году с вопроса: «Реально ли сделать игру в Блокноте?» Тогда я только усмехнулся. Прошло три года. Обдумав, как все будет работать, и убедившись, что это реально, я решил сделать эту игру.
Обычно вы жмете на кнопку, и в игре что-то происходит. Жмете А, и Марио прыгает. Все завязано на получении информации и отклике. Игра получает входные данные и выводит свои.
В игре для Блокнота на входе будут изменения, которые вносит пользователь в файл, а на выходе изменения, которые вносит в файл сама игра. Для этого приложение отслеживает время последнего сохранения файла. Если оно изменилось, игра считывает содержимое файла и вносит в него новые данные.
Возникает проблема: Блокнот от Microsoft не проверяет, был ли файл изменен. Пришлось бы сохранять файл, закрывать и открывать его заново. Создать такую игру возможно, но звучит не очень весело. Пришлось искать альтернативу.
Могу понять ваше разочарование из-за того, что игра в итоге сделана не в самом обычном Блокноте. Мой тайтл можно запустить в нем — просто процесс немного замороченный. Я решил пожертвовать крутостью проекта, чтобы сделать игру более приятной.
Альтернатива
Пришлось искать другой текстовый редактор. Единственным требованием было — автоматическое обновление файла. Хотя чуть позже вы увидите, что я использовал еще одну фичу.
Сначала на ум пришли Notepad++ и Sublime Text. Но они совсем не похожи на Блокнот внешне, очарование проекта развеялось бы окончательно. Плюс, они спрашивают игрока, хотел бы он обновить файл. Это куда лучше, чем закрывать и открывать файл, но все равно отвлекает от геймплея. Я хотел, чтобы файл обновлялся автоматически. Тогда мне на глаза попался Notepad2. Он был почти идеален.
Редактор можно настроить, чтобы он был похож на MS Блокнот, а главное — он проверяет изменения, внесенные в файл. Но также как Notepad++ и Sublime Text, Notepad2 спрашивает игрока, нужно ли изменить файл. К счастью, у редактора открытый код, и я мог отполировать его до совершенства.

Notepad2 написан на C. Я немного знаком с этим языком, пусть меня и нельзя назвать экспертом. Опытный программист Javascript сможет прочитать и уловить общую суть кода, но понять исходный код Notepad2, чтобы внести необходимые изменения, оказалось не так просто.
Для начала я решил поискать текст из диалогового окна: «Файл был изменен внешней программой. Перезагрузить файл?». Это значение переменной, которая используется в качестве аргумента в функции диалогового окна. И я ее нашел.
if ((iFileWatchingMode == 2 && !bModified && iEncoding == iOriginalEncoding) || MsgBox(MBYESNO,IDS_FILECHANGENOTIFY) == IDYES)
Этот код проверяет, не изменилось ли содержимое файла. Если оно изменилось, открывается окно, и программа проверяет, выбрал ли пользователь ответ «Да». Мне нужно было лишь заменить кусок
MsgBox(MBYESNO,IDS_FILECHANGENOTIFY) == IDYES
на TRUE, и программа начала автоматически обновлять файл. Таким образом, я создал рендер на базе ASCII. Осталось создать подходящий движок.
Отрисовка
Игра создана с любовью: LÖVE — фреймворк с открытым исходным кодом для 2D-игр, написанных на Lua. Я много лет пользовался этой платформой и даже собрал туториал. Для этого проекта в основном использовался LÖVE-модуль файловой системы, потому что он предоставляет все необходимые возможности. Обычно с помощью LÖVE создают изображение, которое затем выводится на экран.
Мне нужно было почти то же самое: вывод ASCII-арта в текстовом файле. Я начал с домика и птички, причем птичка должна была лететь через файл. Взял арт, который нашел на ASCII Art, но в игре используются только оригинальные работы (за исключением шрифтов).


Загрузка арта — это просто чтение файла.
house = love.filesystem.read("art_house.txt") bird = love.filesystem.read("art_bird.txt")
Дом используется в качестве фона, поэтому я начал с прорисовки этого изображения на «экране». Экран в данном случае — это home.txt.
love.filesystem.write("home.txt", house)
Я хотел, чтобы с птичкой можно было работать в таком ключе:
local x, y = 20, 40 drawArt(bird, x, y)
х — номер столбца, y — номер строки. Поэтому разбил экран и птицу на списки строк.
-- Get the current canvas screen = love.filesystem.read("home.txt") -- Create a table. A table is like an array. screen_lines = <> -- The lua pattern (.-)\n says capture everything until the \n (newline). -- We add an \n to the end of the file so that it captures the last line as well. for line in (screen .. "\n"):gmatch("(.-)\n") do table.insert(screen_lines, line) end
С птицей сделал то же самое. Теперь код, описывающий птицу, должен был перекрывать код про дом. Вот, что мне было нужно:
- Найти строку, в которой должна быть отрисована птица.
- Вывести всю строку до x.
- Вывести оставшуюся часть строки, начиная с x + длина арта с птицей.
- Создать новую строку с первой частью, птицей и оставшейся частью.
- Повторить то же самое для всех остальных строк.
function drawArt(art, x, y) art_lines = getLines(art) -- In Lua, you can get the length of a table and string with # for i=1, #screen_lines do if i == y then for j=1 ,#art_lines do -- With string:sub(start, end) we can get part of a string local first_part = screen_lines[i]:sub(1, x - 1) local second_part = screen_lines[i] :sub(x + #art_lines[j], #screen_lines[i]) screen_lines[i] = first_part .. art_lines[i] .. second_part end end end end
Наверное, вы заметили, что птица представляет собой прямоугольник — в ее арте используются пробелы. Чтобы исправить ситуацию, я посчитал количество пробелов в начале каждой строки и добавил это число к координатам, чтобы отрисовывался только арт.
-- (%s) gets all the whitespace characters. local spaces = art_lines[j]:match("(%s*)") -- Remove the spaces from the line. art_lines[i] = art_lines[i]:sub(#spaces + 1, #art_lines[i]) local first_part = screen_lines[i]:sub(1, x + #spaces - 1) local second_part = screen_lines[i]:sub(x + #spaces + #art_lines[j], #screen_lines[i]) screen_lines[i] = first_part .. art_lines[i] .. second_part
Стало намного лучше:
Анимация
Я начал добавлять больше фишек, например, анимацию:
Все кадры расположены в одном файле и разделены тегом >. Тег определяется при чтении и позволяет задать последовательность кадров. Благодаря этому мы получаем классическую анимацию. Создаем таймер и отрисовываем кадры в соответствии с ним.
> _ _ 'v' > --v-- > _/v\_
Также я реализовал вывод печатаемого текста и отобразил отдельно экран, инвентарь и окно для ввода решения. Оставалась одна проблема. Как игра узнает, что был открыт файл? Это и есть вторая фича, о которой я говорил ранее.
В исходном коде Notepad2 я прописал, что файл должен сохраняться сразу после открытия. Затем игра проверяет, не изменилось ли время последнего сохранения. Так она узнает, что файл был открыт, и может его менять.
// At the end of the FileLoad function. // If the file is not new, and the file has not been reloaded, save it. if (!bNew && !bReload)
В итоге я получил фреймворк, в котором можно работать. Самое время создавать игру.
За девять дней разработки (судя по дате создания gif-файлов) я сделал это:
Если вы запускали игру, то знаете, что в ней нет печатаемого текста и анимации. На то было несколько причин:
- Я опасался, что порчу свой HDD/SSD постоянной перезаписью файла. Тестирование игры с этими функциями сделало из меня параноика. Не хочу, чтобы игроки испытывали это чувство.
- Вы не можете ничего делать во время анимации. Если вы попытаетесь выбрать ответ и напечатаете символ в окошке, вы не успеете сохраниться до того, как следующий кадр загрузится и удалит ваш символ. Так что поначалу анимации кажутся классными, но в итоге только мешают.
- Анимация — это здорово, но она не вписывается в стиль Блокнота. В текстовых файлах не должно быть анимации. По той же причине в игре нет музыки. Конечно, я мог сделать так, чтобы игра создавала аудио-файл, который вы открыли бы в медиаплеере. Но такие действия отвлекали бы от Блокнота. Я оставил несколько анимаций, чтобы показать, как круто они выглядят. Плюс, во время сражения врага лучше бить, когда он моргает, — хороший сигнал к действию.
Программа по умолчанию
Меня бесило, что пользователю приходилось перетаскивать файл в окно Notepad2 для запуска игры. При двойном щелчке по файлу, открывался Блокнот или другая программа по умолчанию для чтения .txt. Можно было прописать команду, которая меняла приложение для таких файлов на Notepad2, но лично мне не понравится, если какая-то игра проделает такой финт на моем компьютере.
Может, возвращать исходные настройки при закрытии игры? Это возможно, но возникнет проблема, если игра вылетит или неожиданно закроется.
Все решения казались недостаточно обоснованными, пока я не догадался, что вместо обычных .txt можно использовать файлы с другим «x». Если быть точным — Unicode-символ U+0445 (Cyrillic Small Letter Ha). Чтобы не запутаться, я назвал файл *.tXt. В итоге, все файлы игры были с разрешением *.tXt, и по дефолту открывались в Notepad2.
assoc .tXt=tXt ftype tXt=[directory]/.notepad/Notepad2.exe "%1"
Программу по умолчанию можно назначить только от имени администратора. Если вы открываете игру под другой учетной записью, будут использоваться txt-файлы. Если вы открываете файл в обычном Блокноте, игра сообщит, что нужно перетащить файл в открытое окно Блокнота. Либо запустить ее от имени администратора, чтобы она открылась по дабл-клику.
Мотивация
На самом деле всё было сделано три года назад. Что я делал все остальное время? Классический пример отсутствия мотивации.
Изначально сюжет был немного длиннее, чем сейчас. Твоих родителей убил дракон, ты должен пойти к кузнецу Фердану, чтобы он выковал меч. Задумывалось, что меч делается из трех материалов, которые нужно собрать. Это сильно увеличивало объем игры и отодвигало конец разработки. Игра получалась не очень-то развлекательной, и я забросил проект через два месяца.
Но я все время держал его в голове. Я отладил целый фреймворк, который позволял создать игру в Блокноте, а проект не двигался с мертвой точки. Нужно было доделать его. В 2019 году я не завершил почти ни одного проекта. Разочарование подтолкнуло меня к решению: закончить незаконченное в 2020-м.
И вот она. Я сократил сюжет, дал себе месяц на все (получилось на неделю дольше) и бросился в бой. Еще подал заявку на A MAZE. Awards, соответственно, дедлайн был назначен на 2 февраля. Так появилась мотивация.
Заключение
Я рад, что доделал игру. Удивительно, сколько времени проект просто собирал цифровую пыль, а в итоге хватило месяца. Игру не стоило делать настолько объемной, как я хотел сначала — такой нестандартный проект должен лишь показывать особенности, которые можно в нем реализовать.
Что дальше? Игра в Paint? Игра в Калькуляторе? Вряд ли я их сделаю. Но мне нравится думать об играх, которые используют нетрадиционные платформы.
- Блог компании Playgendary
- Ненормальное программирование
- Разработка игр
- Дизайн игр
- Игры и игровые консоли
Как написать программу самому
Писать программы — важное умение для каждого. Программы используются в любых целях: повседневные находят себе место в автоматизации ежедневных процессов, бизнес используются для упрощения работы начальства и сотрудников компаний.
Новичков часто интересует вопрос — с чего начать. Ведь задача написать программу представляет собой не простой процесс, к которому нужно отнестись ответственно и потратить на него немало сил.
Определение идеи
Чтобы написать программу, которая работает, нужно хорошо продумать, что она должна делать и как. Для этого следует разобраться с целями, которые она должна решать, а затем разобраться с будущим функционалом. Для этого лучше записать ответы на следующие вопросы:
- Что должна делать написанная программа.
- Чем будет полезна.
- Как может помочь пользователям, чем упростит работу.
- Чем отличается от конкурентов, похожих программ.
- Где можно написать программу.
- На какой платформе написать прогу.
После ответа на эти вопросы должна сформироваться чёткая картинка того, как будет выглядеть продукт и что он будет делать.
Выбор языка программирования
В первую очередь решается, где можно написать программу. Языков огромное множество, и каждый из них индивидуален, отвечает разным запросам пользователей. Какой-то — полегче, другой — сложнее, третий — функциональнее. Среди профессиональных программистов уже давно гуляют разговоры о том, где лучше писать программы, перечисляя преимущества и недостатки каждого из возможных вариантов.
C (Си)
Си — это классика, которую должен знать каждый программист, но подходит он для написания далеко не каждой программы. Как правило, его используют, чтобы написать низкоуровневые программы. Если изучить Си, можно свободно начать писать на Си++.
Новым пользователям, которые хотят заняться написанием одной программы и бросить программирование, Си совсем не подойдёт. Его сложно изучить из-за того, как мало по нему материалов в сети и учебниках, а пользователей, которые пишут на нём — немного, поэтому знатоков в языке ещё нужно поискать. Но если мир программирования затянет пользователей — его изучение рекомендуется.
C++
Один из популярных языков среди программистов. Написать на нём можно всё — от простой программки до сложного продукта со множеством функций. Материалов по изучению языка предостаточно в свободном доступе — в интернете, учебниках по программированию, на форумах многие обсуждают куски кода и рассказывают о том, что придумали. Несмотря на то, что сначала он может показаться сложным, в дальнейшем, когда пользователь научится полностью им управлять, это принесёт немало преимуществ.
Python
Классика, которая навсегда останется любимой среди программистов. Язык — основа, которую изучают как любители, так и профессионалы. Как и Си++, Python подойдёт для того, чтобы писать программы на простом уровне, отвечающие за базовые функции или для более сложных продуктов.
Python, сколько бы ни спорили пользователи интернета, остаётся первым в списке рекомендаций, когда спрашивают: «С какого языка начать программировать». Он — прост в использовании, а обучающих курсов, учебников, материалов — более, чем достаточно, чтобы каждый нашёл то, что поможет ему изучить язык лучше.
Java
Такая же классика, как и Python, рекомендуемая к изучению. Это — улучшенная версия C++, с большим функционалом. С помощью Java происходит написание программ для игр, бизнеса, менее масштабных целей. Запускается на Операционных системах любого типа, что делает его любимым, помогает использовать и проверять везде.
Для каждого понадобится установить специальный текстовый редактор, желательно — вместе с компилятором. В отличие от написания в блокноте, специальные редакторы выделяют функции цветами и выделяют их по уровням, чтобы было удобнее ориентироваться.
Изучение языка
После выбора, на каком языке писать, необходимо потратить время на его обучение. И здесь речь не о паре дней, а о неделях за учебниками и обучающими ресурсами. Для обучения также лучше использовать куски кода от людей, которые делятся ими на форумах. Чем больше пользователь изучит и потратит времени, тем лучше будет понимать принципы работы и сможет реализовать любую идею.
Для изучения могут быть использованы:
- Учебники.
- Курсы.
- Открытые Интернет-ресурсы.
- Форумы для программистов.
Написание программы
После долгого изучения стоит приступить к работе над самим продуктом. Первым делом, стоит написать мини-программу, которая будет показывать функционал, интерфейс продукта, который создатель видит в финале. В дальнейшем эта программа — прототип, изменится ещё не один раз, из-за невозможности реализации некоторых функций.
Для того, чтобы упростить написание, также необходимо использовать немаловажную функцию комментирования. По умолчанию комментарий начинается с символов «//», но может отличаться в зависимости от выбранного языка. Комментарии — строчки, которые не учитываются при компиляции кода, программисты используют их, чтобы отметить, что делает функция или строка. Комментарии упростят работу, когда строчек будет более 500 или 1 000, и поиск чего-то станет сложнее.
Стоит приготовиться к тому, что написание кода — нелёгкое дело. Для него понадобится много нервов, удаления лишних строчек, исправления того, в чём пользователь был уверен с самого начала. Если дело идёт слишком сложно, а принципы программирования — непонятны даже после десяти учебников, стоит обратиться к специалистам, которые знают, что делать. Обращение к профессионалам актуально для тех, кто хочет написать бизнес-программы — иногда для их написания новичкам нужна помощь.