Седьмая часть проекта «Стрелялка с Pygame». Если пропустили, обязательно вернитесь и начните с первой части. В этот раз начнем вести счет и научимся выводить текст на экран.
В этой серии уроков будет создана полноценная игра на языке Python с помощью библиотеки Pygame. Она будет особенно интересна начинающим программистам, которые уже знакомы с основами языка и хотят углубить знания, а также узнать, что лежит в основе создания игр.
Ведение счета
Ведение счет игрока — простая задача. Нужно переменная с начальным значением 0, к которой будет добавляться +1 при каждом уничтожении астероида. Поскольку астероиды разные, а в крупные попасть легче, чем в маленькие, есть смысл в том, чтобы давать больше очков за уничтожение тех, что поменьше.
Назовем переменную score и объявим ее до игрового цикла:
for i in range(8): m = Mob() all_sprites.add(m) mobs.add(m) score = 0 # Цикл игры running = True
Чтобы назначать очки в зависимости от размера астероида, можно использовать свойство radius . У самых крупных астероидов изображение больше 100 пикселей, а радиус 100 * 0.85 / 2 = 43 пикселя. В то же время радиус самого маленького астероида — всего 8 пикселей. Можно вычитать радиус из большего числа, например 50, чтобы получать количество очков. Так, большой будет давать всего 7 очков, а маленький — 42 очка.
Как открыть брокерский счет | Приложение Тинькофф Инвестиции
# проверка, попала ли пуля в моб hits = pygame.sprite.groupcollide(mobs, bullets, True, True) for hit in hits: score += 50 — hit.radius m = Mob() all_sprites.add(m) mobs.add(m)
Рендеринг текста
Теперь, когда есть переменная со счетом, нужно отрисовывать ее на экране, и вот это уже посложнее. Делается все в несколько этапов. Если вы планируете выводить текст не один раз, тогда есть смысла создать функцию, которая будет называться draw_text . Ее параметры:
- surf — поверхность, на которой текст будет написан
- text — строка, которую нужно отображать
- x, y — положение
Также нужно выбрать шрифт. Проблема может возникнуть, если выбрать тот шрифт, который не установлен на компьютере. Решить это можно с помощью pygame.font.match_font() , которая ищет наиболее подходящий шрифт в системе.
Вот вся функция draw_text :
font_name = pygame.font.match_font(‘arial’) def draw_text(surf, text, size, x, y): font = pygame.font.Font(font_name, size) text_surface = font.render(text, True, WHITE) text_rect = text_surface.get_rect() text_rect.midtop = (x, y) surf.blit(text_surface, text_rect)
Отрисовка текста на экране — это, фактически, вычисление необходимой структуры пикселей. В компьютерной графике это называется «рендерингом». За это будет отвечать функция font.render() . В функции есть неизвестный параметр True , который отвечает за включение и отключение сглаживания.
Сглаживание
Если вы когда-нибудь пытались нарисовать что-нибудь пикселями (или, например, блоками в Minecraft), то знаете, насколько сложно изображать изогнутые линии на квадратной сетке. Максимум, что выходит, — зубчатая форма. Такая зубчатость называется «алиасингом». Вот как она выглядит:
Пишем сами программу учета и приема заказов
Первая «a» выглядит чересчур угловатой из-за алиасинга. Сглаживание (анти-алиасинг) — это то, как современные компьютеры работают с текстом, чтобы он не был настолько зубчатым. Это происходит с помощью смешивания пикселей с фоном на границах объектов. В уменьшенном масштабе такой шрифт выглядит чисто и аккуратно.
Отображение счета
Теперь можно показывать счет на экране. Нужно лишь добавить его в раздел отрисовки в верхней части экрана по центру.
# Рендеринг screen.fill(BLACK) screen.blit(background, background_rect) all_sprites.draw(screen) draw_text(screen, str(score), 18, WIDTH / 2, 10)

Вот и все. В следующей раз будем работать с музыкой и звуками.
Источник: pythonru.com
Как из приложения Delphi сформировать счет
Говоря о приложениях Delphi мы понимаем, что речь идет о приложениях, реализованных на библиотеке VCL ( Visual Component Library ) для операционной системы Windows. С появлением языка программирования C# и платформы .Net популярность Delphi VCL несколько угасла, но тем не менее по всему миру остается огромное количество Delphi программистов. Множество программ, написано на библиотеке VCL и требует модернизации.
Если вы реализуете информационную систему учета товарооборота, вам понадобится формировать некоторые документы из программы. Это могут быть отчеты, товарные и кассовые чеки, счет. В этой статье мы рассмотрим весь процесс вывода счета на печать от создания приложения до вывода отчета.
Для создания приложения мы будем использовать среду разработки Delphi 7, а для создания отчета – генератор отчетов FastReport VCL.
Работа над приложением сводится к добавлению на форму нужных компонентов и их настройке.
На панели компонентов найдем вкладку FastReport и добавим на форму компонент frxReport. Также нам потребуется создать источник данных для отчета. Для примера используем базу данных из поставки FastReport VCL demo.mdb. Из базы данных мы возьмем четыре таблицы: Orders, Customer, Items, Parts.
Из вкладки ADO в палитре компонентов перетягиваем на форму компонент ADOConnection. Настроим подключение к базе данных demo.mdb. Теперь добавим четыре компонента ADOTable.
Из вкладки DataAccess добавляем четыре компонента DataSource.
Из вкладки FastReport добавляем четыре компонента frxDBDataSet.
У нас получилось четыре тройки: ADOTable, DataSource, frxDBDataSet. Настраивать их нужно именно такими тройками.
- Для ADOTable задаем свойства:
- Connection – ADOConnection1;
- Name – Orders;
- TableName – orders.
- Для DataSource настраиваем свойство:
- DataSet – Orders.
- Для frxDBDataSet настраиваем свойства:
- DataSet – Orders;
- UserName – Orders.
- Для ADOTable задаем свойства:
- Connection – ADOConnection1;
- Name – Customer;
- IndexFieldnames – CustNo;
- MasterSource – DataSource1;
- MasterFields — CustNo
- TableName – customer.
- Для DataSource настраиваем свойство:
- DataSet – Customer.
- Для frxDBDataSet настраиваем свойства:
- DataSet – Customer;
- UserName – Customer.
- Для ADOTable задаем свойства:
- Connection – ADOConnection1;
- Name – Items;
- IndexFieldnames – OrderNo;
- MasterSource – DataSource1;
- MasterFields — OrderNo
- TableName – items.
- Для DataSource настраиваем свойство:
- DataSet – Items.
- Для frxDBDataSet настраиваем свойства:
- DataSet – items;
- UserName – Items.
- Для ADOTable задаем свойства:
- Connection – ADOConnection1;
- Name – Parts;
- TableName – parts.
- Для DataSource настраиваем свойство:
- DataSet – Parts.
- Для frxDBDataSet настраиваем свойства:
- DataSet – Parts;
- UserName – Parts.
Наверно вы обратили внимание, что таблицы: Customer и Items имеют связь с DataSource1, то есть с первой таблицей Orders. Это означает, что они связаны по ключу связь один ко многим. Один Customer может быть во многих заказах и так далее. Это нужно, чтобы в отчете, при выводе информации по конкретному заказу «подтягивались» данные из связанных таблиц актуальные для этого заказа.
Для упрощения нашей дальнейшей работы с шаблоном отчета, давайте создадим вычислимые поля в ADOTable для таблицы Items. Дважды кликаем по этому объекту и видим окно с полями таблицы. Вернее, изначально оно пусто, но из контекстного меню можно их загрузить, выбрав Add fields…:
Поля Price и Description будут взяты из таблицы Parts.
В контекстном меню выбираем New field…. И добавляем поле Price:

Таким же способом добавим описание товара – Description:

Таким образом, мы избавились от необходимости задействовать таблицу Parts в своем отчете, все, что нам было нужно мы из нее уже взяли.
Теперь, когда мы создали источник данных, настроили связи между таблицами, давайте добавим на форму пару кнопок: Design Report, и ShowReport.
Как вы уже догадались, первая запускает дизайнер отчета, вторая – отображает отчет.
Для каждой из кнопок добавим событие нажатия. Код обработчика события для отображения дизайнера отчетов:
frxReport1.DesignReport();
А для печати готового отчета можно добавить на форму диалог открытия файла чтобы выбрать созданный в дизайнере отчет. Тогда код для вывода отчета на печать будет таким:
1 2 3 4 5 6 7 8
OpenDialog1.Filter := ‘FastReport VCL (*.fr3)|*.FR3’; OpenDialog1.
Execute(); if Length(OpenDialog1.FileName)>0 then begin frxReport1.
LoadFromFile(OpenDialog1.FileName); frxReport1.PrepareReport(); frxReport1.Print(); end
А если нужно предварительно посмотреть отчет, то можно заменить функцию печати на отображение отчета:
frxReport1.ShowReport();
Теперь можно запустить приложение, нажать на кнопку Design report и перейти к созданию отчета.
Пришло время поговорить об отчете, который мы собираемся создать. Чтобы документ был понятным и не вызывал вопросов у покупателя нужно наполнить его всей необходимой информацией. Но, в то же время нельзя и перегружать его ей. Попробуем соблюсти этот тонкий баланс. Итак, по нашему мнению, счет на оплату должен содержать следующие информационные блоки:

На этом рисунке отмечены важные области документа:
- Информация о продавце. Любой официальный документ должен содержать информацию о продавце: название, адрес, телефон, электронная почта, возможно что-то еще;
- Информация о контактном лице покупателя – необходимо указать реально ответственное за оплату лицо;
- Идентификаторы заказа и счета, дата формирования счета и срок оплаты. Эти идентификаторы помогут отыскать счет или заказ в базе данных, в случае возникновения вопросов у клиента;
- Информация о составе заказа. Клиент должен понимать за что платит. Нужно указывать наименование и количество товара, а также его стоимость за единицу;
- Итоговая сумма. Итоговые суммы необходимы не только для произведения оплаты, но и для понимания расчета;
- Реквизиты для платежа. Так как это счет на оплату, конечно тут должны быть реквизиты получателя платежа;
- Реквизиты для оплаты из-за рубежа. Даже если, в данном случае покупать не из-за границы, можно оставить эти данные для единообразного бланка;
- Разъяснительная информация. Важно указать контактные данные, в случае вопросов. А также нужно сразу предупредить о последствиях несвоевременной оплаты. Это будет мотивировать клиента не затягивать.
Нам предстоит создать такой документ в дизайнере отчетов, который мы уже запустили. Прежде всего выберем данные для отчета.

Таблица Parts нам не понадобится в этом отчете, поэтому ее можно не выбирать. Перейдем к созданию шаблона. В нашем отчете будет два уровня данных MasterData и DetailData. В первом бэнде данных мы выводим информацию о клиенте:
- название — Customer.Company;
- адрес — Customer.Addr1;
- телефон — Customer.Phone.
- номер заказа – Orders.OrderNo;
- дата заказа — системная переменная [Date];
- срок оплаты — текущая дата [Date] + нужное количество дней.
Этот бэнд подключен к таблице Orders. В подчиненном бэнде данных будет выводиться информация о содержимом заказа: наименование товара, количество, стоимость за единицу, стоимость указанного количества, налог, который не включен в стоимость в некоторых странах (показан для примера), общая стоимость налога для указанного количества единиц товара.
В подвале бэнда данных будут отображены итоги: итог по стоимости налогов, итог стоимости без налогов, общая стоимость с учетом налогов. Также, здесь будут реквизиты для оплаты заказа.

В подвал страницы добавим разъяснительную информацию, которая поможет избежать некоторых вопросов клиента:

Промежуточные итоги Net, которые рассчитываются в рамках одной записи таблицы создаются путем перемножения количества и цены единицы товара:
Стоимость налога рассчитывается по формуле:
количество товара * стоимость единицы товара * процент налога
Общая стоимость всех товаров без учета налога:
∑(количество товара * стоимость единицы товара)
Общая стоимость налога:
∑( количество товара * стоимость единицы товара * процент налога)
Общая стоимость с учетом налога:
∑(количество товара * стоимость единицы товара)+ ∑( количество товара * стоимость единицы товара * процент налога)
Вот и все. Сохраняем отчет на локальном диске и закрываем дизайнер отчетов. С помощью второй кнопки выбираем созданный отчет на локальном диске и получаем диалоговое окно печати, либо построенный отчет, если вы в коде кнопки выбрали ShowReport().

Таким образом мы создали счет на оплату и отобразили его пользователю за каких-то полчаса. Теперь, из окна просмотра отчета мы можете отправить его на печать, или сохранить в один из популярных форматов электронных документов, таких как: PDF, docx, xlsx, rtf и многие другие.
Источник: xn--90aia9aifhdb2cxbdg.xn--p1ai
Как сделать счет в 1С 8.2 и 8.3 (подробная пошаговая инструкция)
Данная статья «Как сделать счет в 1С» предназначена для начинающих пользователей, в ней объясняется, как сформировать печатную форму счета на оплату покупателю в программе системы 1С:Предприятие для того, чтобы распечатать сформированную форму счета на оплату или отправить по электронной почте в формате pdf. Статья является пошаговой инструкцией по созданию счета в указанных ниже программах 1С.
Как оформить счет на оплату в 1С:Управление торговлей 10.3
Для формирования счета на оплату нам понадобятся некоторые настройки, такие как наименование организации, номер банковского счета и другие. Проще всего заполнить эти настройки пройдя, все шаги мастера Стартовый помощник. Поля подчеркнутые красным обязательны для заполнения.

Если при прохождении шагов стартового помощника при вводе БИК банка у Вас не заполняется банк и не становится доступной кнопка Далее выполните действия, указанные на следующем рисунке.

Теперь открываем список счетов и нажимаем кнопку Добавить как показано на рисунке ниже.

Откроется форма счета, в которой необходимо последовательно заполнить необходимые поля. Начнем с заполнения поля Контрагент. Для этого выполним действия представленные на рисунке ниже.

Перейдем на закладку Контакты и заполним юридический адрес.

После того как мы нажали кнопку ОК в открытой форме списка контрагентов появился новый контрагент. Добавим его в наш счет двойным щелчком мыши по соответствующей строке списка контрагентов.
Теперь добавим новую строку в табличную часть Товары, откроем форму выбора номенклатуры, создадим новый элемент и начнем его заполнение. Эти действия представлены на рисунке ниже.

Выберем базовую единицу измерения и сохраним созданный элемент нажатием кнопки ОК.

Добавим созданную номенклатуру в наш счет как показано на рисунке ниже.

Заполним поля Количество, Цена, Ставка НДС. Нажмем кнопки Записать и Счет на оплату.

Теперь у нас сформирована печатная форма счета на оплату. Мы можем распечатать ее на принтере или сохранить в формате pdf и отправить по электронной почте клиенту.

Как оформить счет на оплату в 1С:Управление торговлей 11.2
Сначала произведем начальные настройки необходимые для формирования счета на оплату покупателю, такие как ввод сведений об организации, расчетном счете, складе. Для ввода сведений об организации последовательно выполним действия представленные на рисунках ниже.





Теперь введем данные о расчетном счете.



Введем также данные о складе.



Теперь добавим возможность регистрации и хранения в базе информации о заказах покупателей. Это необходимо, т.к. печатная форма счета формируется из этого документа.


Откроем список заказов покупателей и добавим новый заказ с помощью кнопки Создать.


Открылась форма заказа покупателя, для выбора контрагента нажмем кнопку с тремя точками у поля Клиент. Т.к. в нашей программе еще не зарегистрировано ни одного контрагента, добавим нового по кнопке Создать.

В открывшейся форме помощника регистрации нового контрагента введем наименование контрагента. В представленном примере это Наш контрагент, при реальном учете это будет, например, ООО «Березка». Также необходимо заполнить поле E-mail. Если Вы не знаете реальный адрес электронной почты, то введите тот, что указан на рисунке. После этого нужно нажать несколько раз кнопку Далее и один раз кнопку Создать.




Запишем контрагента и выберем его в наш документ.


Перейдем на закладку Товары, добавим новую строку в табличную часть и откроем форму выбора номенклатуры, нажав на кнопку с тремя точками. После этого создадим новый элемент справочника Номенклатура, нажав на кнопку Создать.

Заполним поле Вид номенклатуры добавив в базу новый вид номенклатуры Товар.


Заполним наименование и единицу измерения номенклатуры. После чего сохраним в базе создаваемый элемент, нажав на кнопку Записать и закрыть.

Выберем созданную номенклатуру в наш документ.

Заполним числовые значения, Ставку НДС и проведем документ. Обратите внимание на то, что для того, чтобы заполнить поле Цена, необходимо очистить поле Вид цены, нажав на кнопку с крестиком (действие 2 на рисунке ниже).

Выведем печатную форму счета.

Теперь у нас сформирована печатная форма счета на оплату. Мы можем распечатать ее на принтере или сохранить в формате pdf и отправить по электронной почте клиенту.

Еще обработки и статьи:

Как узнать версию конфигурации 1С (Номер релиза конфигурации 1С)

Как подключить внешнюю печатную форму в 1С 8.3

Как настроить автоматическое резервное копирование 1С 8.3

Как опубликовать базу 1С на веб-сервере. Некоторые моменты.

Где в 1С 8.3 находится пункт меню Все функции
Источник: tekdata.ru