Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Регистрируясь, я даю согласие на обработку данных и условия почтовых рассылок.
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр У самурая нет цели — есть лишь путь. Долгий и бесконечный. С каждым шагом, оттачивая мастерство, он движется всё дальше вперёд.

Долгий путь: idle

Кликер, Ролевые, Фэнтези

Играть

Топ прошлой недели

  • solenakrivetka solenakrivetka 7 постов
  • Animalrescueed Animalrescueed 53 поста
  • ia.panorama ia.panorama 12 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая «Подписаться», я даю согласие на обработку данных и условия почтовых рассылок.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
0 просмотренных постов скрыто
1
ru1000
ru1000
Серия Игрушечный программист - мой опыт Construct 3

14. Работа с массивами - Порядок в проекте Construct 3 - собственный взгляд⁠⁠

5 месяцев назад

Добрый день!

Меня зовут Руслан.
С 2016 года делаю игры в редакторе Construct 3.

1) Если нужно записать в массив набор данных и неизвестно, какое именно там будет количество строк (например, загружаем из массива JSON), стараюсь делать это "гибким" способом.

Изначально задаю нулевую ширину массива (высота обычно известна). Это одновременно обнуляет массив, если он уже был заполнен.

Сбрасываем массив.

Сбрасываем массив.

Затем в цикле вставляю новые элементы в массив (одновременно задаётся 0-й столбец) и затем задаю им остальные столбцы.

Заполняем массив.

Заполняем массив.

Таким образом у нас не будет ситуации, когда по умолчанию массив имеет ширину 100 строк, а из них используется только 5.

2) Иногда бывает, что ширина массива уже известна и можно просто заполнять существующие ячейки.

Заполнение фиксированного массива.

Заполнение фиксированного массива.

Можно конечно использовать и For Each. Тут дело вкуса. Мне он показался менее вкусным :), поскольку не так очевидно отслеживается текущий шаг цикла, как если использовать конкретный счётчик "i".

Как обычно, Телеграм:
https://t.me/toyprogrammer

Показать полностью 2
[моё] Проект Gamedev Браузерные игры Construct 3 Массивы Порядок
0
3
ru1000
ru1000
Серия Игрушечный программист - мой опыт Construct 3

7. Управление объектами - Порядок в проекте Construct 3 - собственный взгляд⁠⁠

6 месяцев назад

Добрый день!

Меня зовут Руслан.
С 2016 года делаю игры в редакторе Construct 3.

Сегодня напишу немного об управлении объектами в Construct 3.

1) Для всех объектов создаю 3 разных подкаталога:

Каталоги с объектами.

Каталоги с объектами.

  • В Interface у меня хранятся кнопки, окна, фоны и всё, что не участвует непосредственно в игровом процессе.

  • В Objects лежат объекты, составляющие основу игровых механик: персонажи, оружие, всё, что летает по игровому полю, а также массивы.

  • В Object Types кидаю поведения и плагины (Touch, Keyboard, AJAX и прочие вещи, не выносящиеся на игровое поле).

2) Объекты называю с заглавной буквы.

Объекты.

Объекты.

3) Количество однообразных объектов в проекте (кнопок, текстов, фонов и т.д.) стараюсь ограничивать насколько это возможно, но не более того.

4) Для различения однообразных объектов (кнопок, надписей и др.) добавляю им собственные переменные class, classSub, num, id.

Собственные переменные объектов.

Собственные переменные объектов.

Затем выбираю нужные объекты по их переменным.

Выбор нужного объекта по его переменной.

Выбор нужного объекта по его переменной.

5) С помощью собственной переменной state включаю-выключаю отдельные кнопки, когда это нужно.

И потом отслеживаю, если у кнопки включена state = ”on”, то нажатие на кнопку вызывает реакцию.

Иначе ничего не происходит.

Использование собственных переменных кнопок для их игнорирования.

Использование собственных переменных кнопок для их игнорирования.

6) Для текстовых объектов использую несколько типовых имён:

  • TextButton - текстовая кнопка (часто располагается поверх пустой резиновой кнопки),

  • TextInfo - изменяющийся текст (таймеры, счётчики, очки, патроны и т.п.),

  • TextTest - тестовый текст - помогает отслеживать параметры игры при ошибках. Обычно он скрыт и включается по какой-то кнопке.

7) Для графических объектов использую типовые имена:

  • Button - кнопки,

  • Mask - маски,

  • Array - массивы,

  • Background - фоны и т.д.

Если нужно разнообразить - добавляю в конец имени уточняющие слова. На примере массивов:

Названия массивов.

Названия массивов.

Так их проще вспомнить, если нужно подставить имя объекта в какую-то переменную.

Пока всё, что имею сказать по поводу объектов.


Как обычно, Телеграм:
https://t.me/toyprogrammer

Показать полностью 5
[моё] Gamedev Браузерные игры Проект Порядок Объект Массивы Переменные Длиннопост Construct 3
0
10
TechSavvyZone
TechSavvyZone

1971: Многоразовое программируемое ПЗУ обеспечивает гибкость итеративного проектирования⁠⁠

11 месяцев назад
Фотография кристалла устройства EPROM i1702

Фотография кристалла устройства EPROM i1702

Разработанная Довом Фроманом конструкция ПЗУ, стираемого ультрафиолетовым светом, представляет собой важный инструмент проектирования для быстрой разработки систем на базе микропроцессоров, называемых стираемым программируемым постоянным запоминающим устройством (EPROM).

Ранние массивы памяти только для чтения (ПЗУ) на интегральных схемах предлагали энергонезависимую форму полупроводниковой памяти (NVM), но требовали индивидуальной маски для каждой конструкции. В 1970 году Radiation Inc. представила 512-битную биполярную ТТЛ-программируемую пользователем ПЗУ (ППЗУ), которая позволяла разработчикам вводить код самостоятельно, «прожигая» металлические плавкие перемычки с помощью внешнего программатора, но могла использоваться только один раз. Monolithic Memories, Motorola и Signetics разработали ППЗУ с никель-хромовыми предохранителями емкостью от 1 до 16 Кбит. AMD, Intel и TI использовали альтернативные материалы предохранителей.

Программатор Intel EPROM 1971 года выпуска

Программатор Intel EPROM 1971 года выпуска

В 1967 году Давон Канг и Саймон Сзе из Bell Labs описали, как плавающий затвор полупроводникового устройства МОП можно использовать для ячейки перепрограммируемого ПЗУ. В начале 1970-х годов компания General Instruments из Хиксвилля, штат Нью-Йорк, адаптировала технологию MNOS (металл-нитрид-оксид-полупроводник) для создания небольших электрически изменяемых EAROM для ТВ-тюнеров. В 1971 году компания Intel анонсировала 1702, 2048-битную стираемую пользователем PROM (EPROM), разработанную Довом Фроманом, которую можно было использовать многократно, стирая рисунок ультрафиолетовым светом. Поколения УФ-EPROM с многомиллионным объемом памяти от Intel и других компаний нашли широкое применение для хранения и изменения программных кодов в качестве встроенного ПО в системах на базе микропроцессоров.

Работая в Hughes Microelectronics, Ньюпорт-Бич, Калифорния, с 1976 по 1978 год, Эли Харари продемонстрировал тонкую оксидную плавающую электрически стираемую ячейку ПЗУ (EEPROM), которая устранила необходимость внешнего стирания УФ-излучением. Джордж Перлегос применил технику тонкого оксида для первой EEPROM Intel в 1978 году. В Toshiba в 1980 году Фудзио Масуока модифицировал архитектуру EEPROM, чтобы увеличить скорость программирования, соответственно назвав ее «флэш». Затем в 1987 году он продолжил с более дешевой структурой NAND, что привело к появлению твердотельного диска (SSD) и повсеместной USB-флеш-памяти «stick» . Toshiba представила коммерческие флэш-продукты в 1987 году, а затем Intel в 1988 году. Одновременно с этими разработками флэш-память нашла широкое применение в таких персональных устройствах, как мобильные телефоны, камеры и навигационные системы GPS.

Кому интересно:

Предыдущая статья о ПЗУ

Показать полностью 2
Технологии IT Раритет Компьютер Компьютерное железо Изобретения Инженер История развития Электроника Пзу Массивы Длиннопост
0
FreshAngry007

Массивы и go⁠⁠

1 год назад

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

Основные характеристики массивов в Go:

  • Фиксированный размер: Длина массива определяется при его объявлении и не может быть изменена. Это означает, что добавление элементов в массив или удаление из него невозможно без создания нового массива.

  • Однородность: Все элементы массива должны быть одного и того же типа.

  • Инициализация: Массивы могут быть инициализированы явно при объявлении или позже в коде. Также Go поддерживает инициализацию массива с помощью синтаксиса литералов.

  • Производительность: Доступ к элементам массива происходит очень быстро, так как элементы хранятся в непрерывной области памяти.

Объявление и инициализация массива:

var arr [5]int // Объявление массива из 5 целых чисел, инициализированного нулями

arr2 := [3]int{1, 2, 3} // Объявление и инициализация массива с тремя элементами

arr3 := [...]int{1, 2, 3, 4, 5} // Использование ... позволяет компилятору определить длину массива

Работа с элементами массива:

arr[0] = 10 // Присвоение значения первому элементу массива

fmt.Println(arr[1]) // Доступ к элементу массива

Передача массивов в функции:

Важно помнить, что массивы в Go передаются в функции по значению, что означает создание их копии. Для больших массивов это может быть неэффективно по памяти и времени. В таких случаях лучше использовать слайсы, которые являются ссылками на массивы.

func printArray(arr [3]int) {

for _, value := range arr {

fmt.Println(value)

}

}

myArray := [3]int{10, 20, 30}

printArray(myArray) // Передача массива в функцию

Использование массивов в Go имеет несколько нюансов и потенциальных "подводных камней", на которые стоит обратить внимание:

1. Фиксированный размер

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

2. Передача массива функции по значению

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

3. Инициализация массивов неявными значениями

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

4. Ограниченная поддержка встроенных операций

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

5. Неудобство в использовании

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

Решения

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

Показать полностью
[моё] Программирование Golang IT Текст Массивы
0
751
tproger.official
tproger.official
Типичный программист

Знания массивов множат боль⁠⁠

1 год назад
Знания массивов множат боль
[моё] IT IT юмор Программирование Картинка с текстом Программист Отношения Код Массивы
83
shaitan.vladimir
shaitan.vladimir

Клонирование или копирование⁠⁠

3 года назад

Клонирование или копирование

Клонирование или копирование - очень распространенная операция в JavaScript. На данный момент самым популярным способом копирования является использование оператора spread(...). Он очень удобен и при изменении скопированного массива, исходный не будет изменяться. 

#js #array #datatypes #массивы

YouTube Channel | LinkedIn | Instagram | Telegram

Клонирование или копирование
Кросспостинг Pikabu Publish Bot Javascript Массивы
0
55
Aeleagnus
Aeleagnus
Лига Сельского хозяйства

Будни паркового хозяйства. Подготовка к посадочному сезону⁠⁠

4 года назад

Чтобы много не писать — покажу поездку по питомникам Зелёный Горизонт, Клевер и Еврогазон

Больше всех понравился Пит. Клевер; ассортимент богатый, но мало(

Подробности — расскажу в комментариях, если нужно.

Хорошего вечера пятNizz 'ы)

Показать полностью 22
[моё] Парк Трава Цветы Массивы Проект Длиннопост
53
1193
Railroadman

Что я узнал о работе в ИТ за последнюю неделю на пикабу⁠⁠

4 года назад

0. Рынок перегрет. Все бросились проходить говнокурсы, после которых осаждают испуганных работодателей. Те прячутся за столами и отстреливаются тестовыми заданиями и отказами. Редкий счастливец найдет работу. Остальные помыкавшись, идут в управдомы. Владельцы курсов потирают руки, сжимающие пачки денег. Безнадежно. Не надо. Вы не найдете работу. Вы тупые, и можете только одностраничник сверстать, за такое дядя Ашот тебе заплатит кило апельсинов, если очень попросишь, а о большем не мечтай.
1. Но работы полно, и компании отрывают с руками даже вчерашнего кассира из Макдоналдса, который знает как создавать переменные и вывести в консоль их сумму. Как минимум джуниором возьмут всегда, если накропаешь хоть что-то свое, и сумеешь не пустить слюну изо рта хотя бы в течении того часа, что тебя будут спрашивать про сложность сортировки пузырьком. Нехватка кадров, понимаете ли.
2. Изучить что угодно не такая уж проблема. У всех есть знакомый, который однажды сел, выучил, походил по собеседованиям, уже три года работает, сидит в коворкинге на Бали и доволен. Да и в самом деле, это же не симфонию написать - вот метод, он делает так, возвращает это, используется для вот того. Это надо просто знать и немножко уметь. На реальной работе за месяц разберешься со всем, что нужно, а через полгода пойдешь на +30%, любая компания будет рада, дальше только счастье, бутерброды с авокадо и коммунизм на всей земле.
3. Но это тебе не это. Вообще-то неплохо знать математику, теорию графов, усвоить "Чистый код" и несколько других книг, в процессе чтения засыпая не чаще двух раз за вечер. Хорошо бы понимать как работает браузер/компилятор/сервер, неплохо бы знать БД, всей душой понимать объектную ориентированность и чем хорош лисп кроме того что на нем весело общаться в переписке. Молчу про количество технологий, которые сейчас обслуживают кодинг, начиная с гита и заканчивая фреймворками для тестов. Список того что неплохо бы знать, займет страницу А4, и когда ты это все изучишь в достаточной мере, чтобы претендовать хотя бы на 30к до вычета, тебе уже не нужны будут эти 30к, потому что ты просветлишься и пойдешь ловить бабочек на берегу Янцзы.
4. Информации что учить - море, это море называется интернет, прыгай в него и плескайся, там разберешься.
5. Но в интернете ты научишься только кнопочки верстать, и эти полгода просто потеряешь. Курсы говно. Видео на ютьюбе? не смеши. Сам тоже ничего не наковыряешь, любой джун с неделей стажа засмеет твой спагетти-код. Настоящие знания завоевываются в универах и годах труда. Либо просто на работе. Но для нее нужен опыт работы.

6. Да, если у тебя есть хоть какой-то опыт, то считай жизнь удалась.
7. Но тебе не дадут получить опыт если у тебя нет опыта. (Реши-ка эту задачку, она потруднее перебора массива чисел с выводом каждого пятого, которое делится на кошачью жопу за время О(1).)
8. Или дадут. Как повезет.
9. ИТ становится новым стендапом. Скоро любая бабушка будет знать чем отличается Java от Javascript, а над мемчиками про джунов уже хрюкает весь пикабу. Это приводит к тому, что толпы бывших охранников и таксистов думают "а че там учить, че я, по кнопкам пальцами не попаду штоль?" - и бросаются проходить говнокурсы, после которых осаждают испуганных работодателей, а те прячутся за столами и отстреливаются, и отстреливаются...

Показать полностью
[моё] Карьера Массивы Надоело Текст Работа IT
497
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии