Как стать автором
Обновить
-2
0
Леонов Николай @Faramant

Пользователь

Отправить сообщение

NumPy в Python. Часть 3

Время на прочтение6 мин
Количество просмотров111K

Предисловие переводчика


И снова здравствуйте! Продолжаем наш цикл статей по переводу мана о numpy. Приятного чтения.


Операторы сравнения и тестирование значений


Булево сравнение может быть использовано для поэлементного сравнения массивов одинаковых длин. Возвращаемое значение это массив булевых True/False значений:

>>> a = np.array([1, 3, 0], float)
>>> b = np.array([0, 3, 2], float)
>>> a > b
array([ True, False, False], dtype=bool)
>>> a == b
array([False,  True, False], dtype=bool)
>>> a <= b
array([False,  True,  True], dtype=bool)
Читать дальше →
Всего голосов 20: ↑20 и ↓0+20
Комментарии5

NumPy в Python. Часть 2

Время на прочтение5 мин
Количество просмотров109K

Предисловие переводчика


Продолжаем перевод статьи о numpy в python. Для тех кто не читал первую часть, сюда: Часть 1. А всем остальным — приятного чтения.



Другие пути создания массивов


Функция arange аналогична функции range, но возвращает массив:

>>> np.arange(5, dtype=float)
array([ 0.,  1.,  2.,  3.,  4.])
>>> np.arange(1, 6, 2, dtype=int)
array([1, 3, 5])

Функции zeros и ones создают новые массивы с установленной размерностью, заполненные этими значениями. Это, наверное, самые простые в использовании функции для создания массивов:

>>> np.ones((2,3), dtype=float)
array([[ 1.,  1.,  1.],
       [ 1.,  1.,  1.]])
>>> np.zeros(7, dtype=int)
array([0, 0, 0, 0, 0, 0, 0])
Читать дальше →
Всего голосов 25: ↑25 и ↓0+25
Комментарии10

NumPy в Python. Часть 1

Время на прочтение5 мин
Количество просмотров401K

Предисловие переводчика


Доброго времени суток, Хабр. Запускаю цикл статей, которые являются переводом небольшого мана по numpy, ссылочка. Приятного чтения.



Введение


NumPy это open-source модуль для python, который предоставляет общие математические и числовые операции в виде пре-скомпилированных, быстрых функций. Они объединяются в высокоуровневые пакеты. Они обеспечивают функционал, который можно сравнить с функционалом MatLab. NumPy (Numeric Python) предоставляет базовые методы для манипуляции с большими массивами и матрицами. SciPy (Scientific Python) расширяет функционал numpy огромной коллекцией полезных алгоритмов, таких как минимизация, преобразование Фурье, регрессия, и другие прикладные математические техники.
Читать дальше →
Всего голосов 36: ↑36 и ↓0+36
Комментарии26

Устройство спецэффектов для игр под NES. Часть 2

Время на прочтение9 мин
Количество просмотров11K
В этой статье вас ждёт продолжение описания устройства спецэффектов для игр под NES (первая часть здесь). На этот раз будет меньше теории и больше картинок-примеров.


Мы рассмотрим группы эффектов, созданные с помощью переключения позиции скролла видеопроцессора, а также пару эффектов, полученных переключением состояния видеопроцессора.
Всего голосов 45: ↑44 и ↓1+43
Комментарии21

SamsPcbGuide, часть 4: Трассировка сигнальных линий. Минимизация индуктивности

Время на прочтение8 мин
Количество просмотров18K
Мир, трассировка печатной платы, май. Потому что трассировка печатной платы — это труд. И эта статья открывает целый блок, цель которого дать правильные инструменты для этой задачи. В ней обосновывается важность контроля траектории возвратного тока и минимизации индуктивности контура тока критических сигнальных линий, а также даются рекомендации по их оптимальной трассировке.
Читать дальше →
Всего голосов 26: ↑26 и ↓0+26
Комментарии16

SamsPcbGuide, часть 3: Предельный ток печатной дорожки

Время на прочтение5 мин
Количество просмотров33K
Шутки в сторону, тема серьёзная, пожароопасная. Поехали. Это третья статья из цикла, в ней рассмотрены модели оценки предельного тока печатной дорожки, который в некоторых ситуациях является определяющим параметром при выборе толщины проводящих слоёв печатной платы.
Читать дальше →
Всего голосов 36: ↑36 и ↓0+36
Комментарии11

SamsPcbGuide, часть 2: Выбор структуры печатной платы

Время на прочтение7 мин
Количество просмотров27K
Это вторая статья из цикла, в ней рассматривается процесс выбора структуры печатной платы (англ. PCB stackup), даются базовые рекомендации по формированию структуры, а также приводятся типовые решения сборок для многослойных печатных плат с указанием их преимуществ и недостатков.
Читать дальше →
Всего голосов 34: ↑33 и ↓1+32
Комментарии25

SamsPcbGuide, часть 1: Оценка индуктивности элементов топологии печатных плат

Время на прочтение8 мин
Количество просмотров27K

Предисловие


В поисках ответов на вопросы, возникающие при проектировании печатных плат, мною был изучен значительный объём литературы – как больших монографий, так и отдельных технических статей. За исключением, наверное, нескольких статей, это была англоязычная литература. Я подумал, а почему бы не оформить накопившийся опыт в виде практического руководства, которое может оказаться полезным как начинающим, так и, надеюсь, более опытным отечественным разработчикам. Начиная, я думал о распространении ценной информации, а краем мысли и о вкладе в отрасль в целом. Настоящая публикация открывает целую серию статей, в которых с практической точки зрения будут рассмотрены основные задачи, возникающие при разработке печатных плат, и в систематизированном виде изложены ключевые рекомендации с обязательным указанием их физических основ и условий применимости.
Читать дальше →
Всего голосов 27: ↑27 и ↓0+27
Комментарии6

Устройство спецэффектов для игр под NES. Часть 1

Время на прочтение19 мин
Количество просмотров14K
Существует несколько серий статей про программирование под NES, одна из них уже даже переведена на русский язык на Хабре. Однако ни одна из них не заходит дальше обзора базовых возможностей консоли – рассматривается общая архитектура консоли, основы ассемблера, вкратце рассказывается, как выводить спрайты на экран, упоминается что-то о музыке и мапперах, и цикл заканчивается.

Я попробую продолжить рассказ о выводе графике игр для NES с того места, на котором заканчиваются другие туториалы. Разбираться самому, как программировать эффекты анимации, достаточно сложно, ввиду небольшого количества информации об этом, как на русском, так и на английском языке. Но не стоит расстраиваться, ведь в качестве документации можно использовать код из классических игр, которые сейчас легко найти в сети в виде ROM-файлов.

Поэтому перед тем, как запрограммировать что-нибудь, предстоит разобраться с тем, как устроены те или иные эффекты для NES, и статья будет посвящена тому, как это сделать. Существует множество статей из разряда «Игры, выжавшие из NES максимум», попробуем разобраться в том, как сделаны все основные эффекты в этих играх, а также создадим инструменты, которыми можно найти другие игры, не менее технологичные по эффектам.
Всего голосов 45: ↑45 и ↓0+45
Комментарии14

Создание игры на Lua и LÖVE — 5

Время на прочтение26 мин
Количество просмотров5.3K
image

Оглавление


  • Статья 1
    • Часть 1. Игровой цикл
    • Часть 2. Библиотеки
    • Часть 3. Комнаты и области
    • Часть 4. Упражнения
  • Статья 2
    • Часть 5. Основы игры
    • Часть 6. Основы класса Player
  • Статья 3
    • Часть 7. Параметры и атаки игрока
    • Часть 8. Враги
  • Статья 4
    • Часть 9. Режиссёр и игровой цикл
    • Часть 10. Практики написания кода
    • Часть 11. Пассивные навыки
  • Статья 5
    • Часть 12. Другие пассивные навыки

13. Skill Tree

14. Console

15. Final

Часть 12: Другие пассивные навыки


Залп


Мы начнём с реализации оставшихся атак. Первой будет атака Blast, которая выглядит так:

GIF

Выстреливается несколько снарядов с разной скоростью, как из дробовика, которые потом быстро исчезают. Все цвета берутся из таблицы negative_colors и каждый снаряд наносит меньше урона, чем обычно.
Читать дальше →
Всего голосов 21: ↑20 и ↓1+19
Комментарии3

Создание игры на Lua и LÖVE — 6

Время на прочтение19 мин
Количество просмотров3.8K
image

Оглавление

Оглавление


  • Статья 1
    • Часть 1. Игровой цикл
    • Часть 2. Библиотеки
    • Часть 3. Комнаты и области
    • Часть 4. Упражнения
  • Статья 2
    • Часть 5. Основы игры
    • Часть 6. Основы класса Player
  • Статья 3
    • Часть 7. Параметры и атаки игрока
    • Часть 8. Враги
  • Статья 4
    • Часть 9. Режиссёр и игровой цикл
    • Часть 10. Практики написания кода
    • Часть 11. Пассивные навыки
  • Статья 5
    • Часть 12. Другие пассивные навыки
  • Статья 5
    • Часть 13. Дерево навыков

14. Console

15. Final

Часть 13: Дерево навыков


Введение


В этой части статьи мы сосредоточимся на создании дерева навыков. Вот, как оно выглядит сейчас. Мы не будем располагать каждый узел вручную (это я оставлю в качестве упражнений), а рассмотрим всё необходимое для реализации и правильной работы дерева навыков.

Сначала мы рассмотрим способ задания каждого узла, затем узнаем, как считывать эти определения, создавать необходимые объекты и применять к игроку соответствующие пассивные навыки. Затем мы перейдём к основным объектам (узлам и связям), а потом рассмотрим сохранение и загрузку дерева. А в конце мы реализуем функционал, необходимый для того, чтобы игрок мог тратить очки навыков на узлы дерева.
Читать дальше →
Всего голосов 12: ↑12 и ↓0+12
Комментарии4

Создание игры на Lua и LÖVE — 4

Время на прочтение68 мин
Количество просмотров8.6K
image

Оглавление


  • Статья 1
    • Часть 1. Игровой цикл
    • Часть 2. Библиотеки
    • Часть 3. Комнаты и области
    • Часть 4. Упражнения
  • Статья 2
    • Часть 5. Основы игры
    • Часть 6. Основы класса Player
  • Статья 3
    • Часть 7. Параметры и атаки игрока
    • Часть 8. Враги
  • Статья 4
    • Часть 9. Режиссёр и игровой цикл
    • Часть 10. Практики написания кода
    • Часть 11. Пассивные навыки
  • Статья 5
    • Часть 12. Другие пассивные навыки

13. Skill Tree

14. Console

15. Final
Читать дальше →
Всего голосов 19: ↑19 и ↓0+19
Комментарии1

Создание игры на Lua и LÖVE — 7

Время на прочтение22 мин
Количество просмотров4.3K
image

Оглавление

Оглавление


  • Статья 1
    • Часть 1. Игровой цикл
    • Часть 2. Библиотеки
    • Часть 3. Комнаты и области
    • Часть 4. Упражнения
  • Статья 2
    • Часть 5. Основы игры
    • Часть 6. Основы класса Player
  • Статья 3
    • Часть 7. Параметры и атаки игрока
    • Часть 8. Враги
  • Статья 4
    • Часть 9. Режиссёр и игровой цикл
    • Часть 10. Практики написания кода
    • Часть 11. Пассивные навыки
  • Статья 5
    • Часть 12. Другие пассивные навыки
  • Статья 6
    • Часть 13. Дерево навыков
  • Статья 7
    • Часть 14. Консоль
    • Часть 15. Финал

Часть 14: Консоль


Введение


В этой части мы разберём комнату Console. Консоль реализовать гораздо проще, чем всё остальное, потому что в итоге она сводится к выводу на экран текста. Вот, как это выглядит:

GIF

Комната Console будет состоять из трёх разных типов объектов: строк, строк ввода и модулей. Строки — это просто обычные цветные строки текста, отображаемые на экране. Например, в показанном выше примере ":: running BYTEPATH..." будет являться строкой. С точки зрения структуры данных это будет просто таблица, хранящая позицию строки, её текст и цвета.
Читать дальше →
Всего голосов 23: ↑23 и ↓0+23
Комментарии2

Разработка игр под NES на C. Глава 24. Приложение 2 — работа с банками памяти

Время на прочтение5 мин
Количество просмотров6K
Завершающая часть цикла. В этой главе рассмотрим работу с маппером MMC3 на примерах
<<< предыдущая

image
Источник

Раньше мы не использовали переключение банков памяти, но теперь настало время освоить маппер MMC3. Без маппера можно использовать 32 килобайта PRG ROM для кода и 8 килобайт CHR ROM для графики. Маппер позволяет обойти этот барьер.
Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии2

Глупый метеокороб на E-Ink

Время на прочтение10 мин
Количество просмотров26K


Уже как полтора года назад я купил пару E-Ink экранов с eBay на базе драйвера SSD1606, как раз для метеостанции. И вот 4 месяца назад, перед новыми годом, появился он.
Внимание внизу есть Х изображений общей массой 3,2МБ
Всего голосов 55: ↑54 и ↓1+53
Комментарии108

Разработка игр под NES на C. Главы 22-23. Приложение 1 — мапперы и цифровой звук

Время на прочтение4 мин
Количество просмотров5.9K

Здесь будет информация, не вошедшая в основной цикл, но слишком ценная, чтобы ее игнорировать.


<<< предыдущая следующая >>>


image
Источник


Из нашего обсуждения почти полностью выпала тема мапперов — сопроцессоров в картридже. Если надо сделать игру размером больше 0x8000 байт, то стандартных возможностей консоли для этого не хватит. Маппер позволяет переключать банки памяти в игре, и cc65 умеет с этим работать. Самый популярный маппер — MMC3. Кроме переключения банков памяти, он имеет счетчик строк.

Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии0

Разработка игр под NES на C. Главы 17-21. Своя игра

Время на прочтение5 мин
Количество просмотров8K

В этой части соберем все вместе и сделаем простую скроллерную стрелялку на космическую тему: корабль летит и лазерами отстреливает врагов


<<< предыдущая следующая >>>


image
Источник


Планирование

Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии1

Эмоциональная история процессоров для первых компьютеров с 70-х до начала 90-х

Время на прочтение114 мин
Количество просмотров51K
Мне довелось программировать на ассемблерах разных процессоров. Последний в списке – это Xilinx MicroBlaze. Решил выложить некоторые свои наблюдения за особенностями этих почти волшебных железок, которые как волшебный ключик Буратино открыли нам двери в волшебную страну виртуальной реальности и массовой креативности. Об особенностях современных систем x86, x86-64, ARM, ARM-64 и т.п. писать не буду, может быть в другой раз – тема очень большая и сложная. Поэтому планирую закончить на Intel 80486 и Motorola 68040. Хотелось ещё включить в обзор IBM/370, с которыми имел дело. Эти системы были довольно далеки от широких масс пользователей, но оказали при этом огромное влияние на компьютерные технологии. На них просто не хватило выделенного на тему времени, они не использовали процессоры-чипы и самих их вроде бы почему-то не осталось совсем. Очень надеюсь, что мои материалы привлекут внимание и знатоков, которые смогут добавить что-нибудь из того, о чем не подумал или не знал.

В качестве иллюстративного материала прикрепляю свой небольшой камень из Розетты – программки для расчета числа π на разных процессорах и системах по алгоритму-затвору, претендующие на звание самых быстрых его реализаций. Похожий "камень" есть и для алгоритма для быстрого расчета множеств Мандельброта.

Читать дальше →
Всего голосов 65: ↑65 и ↓0+65
Комментарии162

Создание игры на Lua и LÖVE — 3

Время на прочтение42 мин
Количество просмотров5.3K
image

Оглавление


  • Статья 1
    • Часть 1. Игровой цикл
    • Часть 2. Библиотеки
    • Часть 3. Комнаты и области
    • Часть 4. Упражнения
  • Статья 2
    • Часть 5. Основы игры
    • Часть 6. Основы класса Player
  • Статья 3
    • Часть 7. Параметры и атаки игрока
    • Часть 8. Враги
  • Статья 4
    • Часть 9. Режиссёр и игровой цикл
    • Часть 10. Практики написания кода
    • Часть 11. Пассивные навыки
  • Статья 5
    • Часть 12. Другие пассивные навыки

13. Skill Tree

14. Console

15. Final

Часть 7: Параметры и атаки игрока


Введение


В этой части мы больше сосредоточимся на части геймплея, относящейся к игроку. Сначала мы добавим самые фундаментальные параметры: боеприпасы, ускорение, здоровье (HP) и очки навыков. Эти параметры будут использоваться на протяжении всей игры и они являются основными параметрами, которые будет использовать игрок для выполнения всех доступных ему действий. После этого мы перейдём к созданию объектов Resource, то есть объектов, которые может собирать игрок. В них содержатся вышеупомянутые параметры. И наконец после этого мы добавим систему атак, а также несколько разных атак игрока.
Читать дальше →
Всего голосов 17: ↑17 и ↓0+17
Комментарии1

Разработка игр под NES на C. Главы 11-13. Пишем и отлаживаем простой платформер

Время на прочтение7 мин
Количество просмотров7.7K

В этой части появляется первая играбельная демка в стиле Марио. Для этого надо разобраться с прокруткой и способами отладки.


<<< предыдущая следующая >>>


image


Источник


Прокрутка


Регистр $2005 управляет прокруткой фона. Первая запись туда выставляет положение горизонтальной прокрутки, а вторая — вертикальной. Если неизвестно, какая прокрутка была выставлена, можно сбросить на горизонтальную чтением из регистра $2002.

Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии0

Информация

В рейтинге
Не участвует
Откуда
Кемерово, Кемеровская обл., Россия
Зарегистрирован
Активность