Задать вопрос
  • Как сравнить два списка?

    ArXen42
    @ArXen42
    Можно занести результат Interselect в словарь элемент - количество вхождений, потом пробежаться в цикле по листам, подсчитывая конкретное количество. Что-нибудь вроде
    var lst1 = new List<string>(){"1", "2", "3"};
    		var lst2 = new List<string>(){"4", "2", "3"};
    
    		var intersect = new List<String>(lst1.Intersect(lst2));
    		var res = new Dictionary<String, Int32>();
    		intersect.ForEach(el => res.Add(el,0));
    
    		foreach (var el in lst1)
    			if (res.ContainsKey(el))
    				res[el]++;
    		foreach (var el in lst2)
    			if (res.ContainsKey(el))
    				res[el]++;
    
    
    		foreach (var el in res)
    			Console.WriteLine("{0}: {1} раз(а)", el.Key, el.Value);
    Ответ написан
  • Каким образом в играх сохраняются данные?

    ArXen42
    @ArXen42
    Стоит сейчас похожая задача, есть pet project по типу КР и других подобных игр. В процессе решения данного вопроса, делаю примерно так:
    1. В игре, разумеется, есть некая модель вселенной. В моем случае это звездные системы, которые являются контейнерами для SpaceObject'ов, в которые уже входят планеты/корабли и другие объекты.
    2. Таким образом, состояние игры можно сохранить как звездные системы и их содержимое, ну и не забыть сериализовать вспомогательные коллекции, типа капитанов кораблей и другой глобальной информации.
    3. Сериализация вселенной происходит в json. Я пишу игру на unity3d, поэтому мне кажется удобным использовать местный JSONUtility, умеющий проводить сериализацию простых классов (т.е. публичные поля и простые коллекции). Процесс таков: для всего, что я хочу (де)сериализовать, создаю класс-прокси, отражающий в простой форме (без всяких конструкторов, свойств, приватных членов и всего такого) содержимое нужного мне класса, с которым я уже и работаю.

    Цикл сохранения/загрузки, к примеру, звездной системы, такой:
    1. Создаем прокси для StarSystem, он в себя копирует информацию о системе.
    2. Когда доходим до списка объектов, для каждого из них создаем уже класс-прокси объекта и результирующий экземпляр уже заносится в прокси StarSystem.
    3. И т.д., пока сложные объекты не закончатся.
    4. В итоге, имеем матрешку из прокси-классов. С помощью JSONUtility она одной строчкой может быть переведена в json или восстановлена из него.
    5. Ну а сами сериализуемые классы должны уметь получать информацию из своих проксей при загрузке из сохранения.


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

    Раз уж написал, буду благодарен, если более опытные разработчики укажут на крупные грабли в таком подходе, если они есть.
    Ответ написан
    3 комментария
  • Какой сокет лучше,LGA 1150,LGA 1151,LGA 1155?

    ArXen42
    @ArXen42
    Сокет важен скорее для разработчиков железа ,чем для пользователя.
    У Intel уже вроде шестое поколение их Core i3/5/7, вместе с поколениями меняются и сокеты.
    Насколько я помню, у их десктопных процессоров до Ivy Bridge был LGA1155, потом на LGA1150/LGA1151 перешли (на википедии полный список, да и яндекс.маркет тоже показывает). Про обратною совместимость не помню, вроде не было ее, или неполная.
    Особого смысла брать процессор предыдущих поколений я лично не вижу (если, конечно, не покупать для уже имеющейся матплаты), т.ч. если Intel, то Core i3/5/7 Skylake на LGA1151 ну или Haswell на LGA1150 - один фиг мощные числодробилки (хотя большой разницы в цене при беглом осмотре не заметил).
    Ответ написан
    Комментировать
  • Как сделать объект неподвижным в Unity?

    ArXen42
    @ArXen42
    Если дочерний объект нужно делать неподвижным в мировых координатах, возможно стоит подумать о том, что он не должен быть дочерним)
    Но вообще, ЕМНИП, transform.position - это координаты в мировых координатах (в локальных transform.localPosition). Значит их можно просто запомнить и в период неподвижности объекта каждый кадр присваивать их transform.position заново.
    Ответ написан
    Комментировать
  • В чем разница .NET и C#?

    ArXen42
    @ArXen42
    .NET - платформа, в частности включает в себя CLR, CLS и FCL. C# - один из языков, компилируемых в IL код под эту самую CLR. Также существует альтернативная реализация некоторой части .NET (в т.ч. компиляторы некоторых языков и сама среда исполнения) - Mono.
    P.S. надо же, запомнил наконец эти аббревиатуры.
    Ответ написан
    1 комментарий
  • Какие на данный момент есть различия между Unity3D под Windows и Linux системы?

    ArXen42
    @ArXen42
    Функциональность редактора идентична. Сборка под win/lin точно работает, под остальной зоопарк вроде тоже. Есть мелкие глюки, на работу особо не влияют (в моем случае, по крайней мере).
    Ответ написан
  • Как выучить английский начинающему программисту?

    ArXen42
    @ArXen42
    Я просто начал смотреть фильмы на английском, с английскими же субтитрами. После нескольких сезонов какого-нибудь более менее нагруженного смыслом/диалогами сериала обращения к translate.google.com стали происходить значительно реже. Синтаксических/грамматических ошибок стало чуть меньше - нейросеть обучается, но все таки пока хуже, чем с лексическим запасом. В игры тоже стараюсь на английском играть. Документацию к технологиям тоже на английском. Полезно вслушиваться в тексты песен - улучшается распознавание речи.

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

    Пытаюсь (уже второй заход) осилить CLR via C#, J. Richter - это, надо сказать, посложнее просмотра фильмов будет. Но полезно в любом случае.
    Ответ написан
    Комментировать
  • C#. Операторы доступа для сокрытия, но не для защиты?

    ArXen42
    @ArXen42
    Модификаторы доступа несут скорее информационную функцию, чем защитную. От кривых рук все равно ничто не защитит. Они помогают быстро понять структуру класса, роли его членов и структурировать код.
    Ответ написан
    Комментировать
  • Как выяснить, что linux запускает при старте?

    ArXen42
    @ArXen42
    Если дистрибутив на systemd, то можно заглянуть в его журнал (journalctl -b), да и в обычном top/htop должно висеть. Далее, обычно пакетные менеджеры умеют в поиск пакета по исполняемому файлу и наоборот, вывод файлов, принадлежащих пакету и т.д. Далее, можно (в случае systemd) посмотреть файл сервиса этой программы - там должно быть указано, что с ней запускается (для других init систем тоже должен быть аналог, зависит от дистра).
    Глубоко в этих вопросах я не копался, но будь у меня такая проблема, решал бы подобным образом.
    Ответ написан
    Комментировать
  • Как соединить модели с помощью мышки в Unity3d?

    ArXen42
    @ArXen42
    Может оказаться полезным посмотреть устройство редактора крафтов в Kerbal Space Program. Там он толково сделан (по крайней мере процесс соединения деталей). Там и радиальное крепление, и по определенным точкам (на "ноды").
    Ответ написан
    Комментировать
  • Где можно найти хорошие уроки Unity3d?

    ArXen42
    @ArXen42
    1. Изучать C#, ООП, КОП и т.д. Можно хабр почитать, или книжки какие. Я, например, сейчас для упорядочивания знаний читаю "Паттерны проектирования на платформе .NET" Сергея Теплякова, но главное - практика, без нее книги не имеют смысла. А потому см. следующий пункт.
    2. Пилить что-нибудь. Собирать грабли. Превозмогать.
    Ответ написан
    Комментировать
  • Как установить драйвер Nvidia Geforce 750M на KAli linux 2.0?

    ArXen42
    @ArXen42
    Не знаю, как на Kali, но под Arch драйвера для интеловской графики идут из коробки (mesa), для nvidia скачиваю (но они неактивны, т.к. "главный - intel"), после чего ставится bumblebee/nvidia prime для работы с дискретной картой.
    P.S. Nvidia Optimus это не видеокарта, это технология энергосбережения путем использования двух видеокарт)
    Ответ написан
    Комментировать
  • Почему клиент owncloud 8.2 медленно синхронизирует файлы?

    ArXen42
    @ArXen42
    Аналогичная проблема. ArchLinux и на клиенте, и на сервере, 100МБит канал, ntp стоит.
    Ответ написан
  • Как заставить ImageMagick правильно воспринимать порядок файлов?

    ArXen42
    @ArXen42 Автор вопроса
    #!/bin/bash
    mkdir converted
    
    for file in *.png;
    do
    	convert -quality 70 $file 'converted/'result.jpg
    	mv 'converted/'result.jpg 'converted/'$file'_result'.jpg
    	echo "Converted..."
    done
    
    echo "Done"


    Спасибо неизвестному автору за ответ. В теории это должно обрабатываться IM в том же порядке, что и исходные файлы.
    Ответ написан
    2 комментария
  • Что делает этот код?

    ArXen42
    @ArXen42
    Я так понял из какого-то примера взято. Все нормально, подразумевается, что и a и n объявлены.
    Ответ написан
    Комментировать
  • Как написать игру только с использованием скриптов в Unity?

    ArXen42
    @ArXen42
    Возможно вам поможет описание моей игры - тоже новичок, но делаю уже более полугода, общая архитектура более менее устаканилась. Суть игры вдохновлена Космическими Рейнджерами - вселенная, состоящая из звезд, основное место действия - звездные системы, игра протекает внутри них. Соответственно до старта игры ни одного объекта практически и нет - только пустышки и скрипты на них, ну и UI. При старте игры из сохранения (либо случайно генерируется) вселенная - массив звезд, которые в свою очередь содержат планеты, пояса и т.д. Эти данные никак не связаны с MonoBehaviour, просто статический массив (List на самом деле, но не суть). При старте игры опять же из сохранения берется местоположение игрока, информация о его корабле и в соответствии с этим
    1)Спаунится текущая система: солнце, планеты (есть префаб планеты, при спауне висящий на нем скрипт накладывает случайно генерируемую текстуру, а другой скрипт размещает в пространстве в соответствии с заданными параметрами орбиты) и т.д.
    2)Спаунится игрок (а в будущем и другие игроки)
    Таким образом сцена содержит только пустышку игрока с повешенными на него скриптами и объекты UI. Все остальное создается по ходу игры.
    Ответ написан
    Комментировать
  • Есть ли интересные(обучающие) задачники по программированию (для новичка)?

    ArXen42
    @ArXen42
    Придумать что-нибудь интересное для себя, например игру, начать писать. Встречать непонятные проблемы. Превозмогать. Скучно не будет.
    P.S. а вообще суть этого поста в том, что изучать программирование по задачнику, тем более самостоятельно - не самое увлекательное занятие (по крайней мере для меня). Лучше всего перемешивать, как мне кажется.
    Ответ написан
    Комментировать
  • Измениться ли производительность MacBook если поставлю Linux?

    ArXen42
    @ArXen42
    Arch! Arch! Arch! (+xfce если не сильно запариваться или тайловые i3/awesome для крутых). Мусора останется минимум, т.к. ничего сначала не предустановлено. Даже скриншотики есть:
    spoiler
    5b2993826e94423f86df8dcb74b2b7cd.png942cd072c6ba4848b44007aaa08f8564.png
    Ответ написан
    4 комментария
  • Политех или СПБГУ?

    ArXen42
    @ArXen42 Автор вопроса
    В общем как я понял хорошо и там и там, но Политех удобнее территориально и здание красивее :) Выбираю его. Там остался выбор между тремя направлениями, но лучше под это один вопрос создам (вроде на тостере негласное правило один вопрос-один ответ).
    Ответ написан
    Комментировать
  • Люблю физику(механику) и математику - стоит ли попробовать себя в game dev и как?

    ArXen42
    @ArXen42
    И в чем проблема? Придумываешь игру мечты (или модифицируешь понравившуюся идею), создаешь репозиторий на bitbucket.org, там есть вики - можешь заюзать в качестве диздока, начинаешь писать (unity3d или unreal engine 4). Я так уже пол года живу, не надоедает, конца-края не видно. Очень интересно, т.к. пока еще только на первый курс поступаю - все в новинку. Главное - не браться за что-то простое и казуальное, вроде flappy bird, арканоидов, карт, шариков - сразу за долгострой, по хардкору, чтоб ничего не понятно было и мозги закипели (поначалу). Сразу скука пройдет.
    P.S. тут нужно программирование любить, а не физику/математику. Вся физика/математика уже создателями движка написана.
    Ответ написан