Pull to refresh
-2
0
Леонов Николай @Faramant

User

Send message

NumPy в Python. Часть 3

Reading time6 min
Views110K

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


И снова здравствуйте! Продолжаем наш цикл статей по переводу мана о 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)
Читать дальше →
Total votes 20: ↑20 and ↓0+20
Comments5

NumPy в Python. Часть 2

Reading time5 min
Views106K

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


Продолжаем перевод статьи о 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])
Читать дальше →
Total votes 25: ↑25 and ↓0+25
Comments10

NumPy в Python. Часть 1

Reading time5 min
Views394K

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


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



Введение


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

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

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


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

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

Reading time8 min
Views17K
Мир, трассировка печатной платы, май. Потому что трассировка печатной платы — это труд. И эта статья открывает целый блок, цель которого дать правильные инструменты для этой задачи. В ней обосновывается важность контроля траектории возвратного тока и минимизации индуктивности контура тока критических сигнальных линий, а также даются рекомендации по их оптимальной трассировке.
Читать дальше →
Total votes 26: ↑26 and ↓0+26
Comments16

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

Reading time5 min
Views32K
Шутки в сторону, тема серьёзная, пожароопасная. Поехали. Это третья статья из цикла, в ней рассмотрены модели оценки предельного тока печатной дорожки, который в некоторых ситуациях является определяющим параметром при выборе толщины проводящих слоёв печатной платы.
Читать дальше →
Total votes 36: ↑36 and ↓0+36
Comments11

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

Reading time7 min
Views27K
Это вторая статья из цикла, в ней рассматривается процесс выбора структуры печатной платы (англ. PCB stackup), даются базовые рекомендации по формированию структуры, а также приводятся типовые решения сборок для многослойных печатных плат с указанием их преимуществ и недостатков.
Читать дальше →
Total votes 34: ↑33 and ↓1+32
Comments25

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

Reading time8 min
Views26K

Предисловие


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

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

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

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

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

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

Reading time26 min
Views5.2K
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 и каждый снаряд наносит меньше урона, чем обычно.
Читать дальше →
Total votes 21: ↑20 and ↓1+19
Comments3

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

Reading time19 min
Views3.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: Дерево навыков


Введение


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

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

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

Reading time68 min
Views8.5K
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
Читать дальше →
Total votes 19: ↑19 and ↓0+19
Comments1

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

Reading time22 min
Views4.2K
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..." будет являться строкой. С точки зрения структуры данных это будет просто таблица, хранящая позицию строки, её текст и цвета.
Читать дальше →
Total votes 23: ↑23 and ↓0+23
Comments2

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

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

image
Источник

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

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

Reading time10 min
Views26K


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

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

Reading time4 min
Views5.9K

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


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


image
Источник


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

Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments0

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

Reading time5 min
Views7.9K

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


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


image
Источник


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

Читать дальше →
Total votes 8: ↑8 and ↓0+8
Comments1

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

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

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

Читать дальше →
Total votes 65: ↑65 and ↓0+65
Comments162

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

Reading time42 min
Views5.2K
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, то есть объектов, которые может собирать игрок. В них содержатся вышеупомянутые параметры. И наконец после этого мы добавим систему атак, а также несколько разных атак игрока.
Читать дальше →
Total votes 17: ↑17 and ↓0+17
Comments1

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

Reading time7 min
Views7.5K

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


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


image


Источник


Прокрутка


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

Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments0

Information

Rating
Does not participate
Location
Кемерово, Кемеровская обл., Россия
Registered
Activity