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

    Можно занести результат 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);
    Ответ написан
  • Каким образом в играх сохраняются данные?

    Стоит сейчас похожая задача, есть 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?

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

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

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

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

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

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

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

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

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

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

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

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

    Аналогичная проблема. 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 комментария
  • Что делает этот код?

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

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

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

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

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

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