Задать вопрос
  • Какую математику необходимо знать разработчику игр на С++?

    @mamkaololosha
    "3D Math Primer for Graphics and Game Development, 2nd Edition"
    "Mathematics for 3D Game Programming and Computer Graphics, Third Edition"
    Если брать именно С++, то тут больше нужно знать сам С++ и около С++-сные вещи. Нежели математику. Тем более сейчас активно внедряется С++11/14. Всё может упереться в то, что вас спросят 2-3 вопроса по матану и 50 вопросов по computer science и разбору Александреску-кода на С++.
    Ответ написан
    2 комментария
  • Какие алгоритмы заложены в функции opengl?

    gbg
    @gbg Куратор тега C++
    Любые ответы на любые вопросы
    Некоторую информацию можно найти здесь - краткий курс компьютерной графики.
    Ответ написан
    Комментировать
  • Доступ к полям базового класса?

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    Зачем полям в базовом классе быть private? Сделайте их protected и пользуейтесь в наследниках. А ещё лучше, сделайте в базовом классе конструктор с параметрами.
    Вирутальных конструкторов в C++ нет, но есть один паттерн, поищите какой.

    class Foo
    {
    public:
        Foo(int a1, int a2)
            : m_a1(a1)
            , m_a2(a2)
        {}
    
    protected: // Если необходим доступ в потомках, в остальных случаях private
        int m_a1;
        int m_a2;
    };
    
    class Bar : public Foo
    {
    public:
        Bar(int a1, int a2)
            : Foo(a1, a2)
        {}
    };


    PS
    Пользуйтесь #pragma once, деструктор в базовом классе должен быть виртуальным (не всегда... но пока просто делайте всегда), не смешивайте стили, не пишите имена транслитом.
    Ответ написан
    3 комментария
  • Как экспортировать текст программы в word?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    По договору достаточно передать исходный код проекта.
    UPD1: Для подготовки в документированном виде doxygen в помощь.
    Ответ написан
    Комментировать
  • Как объединить массивы на c++?

    gbg
    @gbg Куратор тега C++
    Любые ответы на любые вопросы
    Использовать std::vector и его метод append в частности.
    Ответ написан
    2 комментария
  • Есть ли патенты на персонажей американских мультфильмов?

    @Rustamovich
    Мне кажется ответ вполне очевиден =) Авторские права принадлежат Диснею (иным студиям), приложение не допустят ни в один стор.
    Ответ написан
    Комментировать
  • Как сгенерировать загадку эйнштейна?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Комбинаторику вместе с теорией графов. И немножко математической логики.
    Ответ написан
    Комментировать
  • Как заставить монтажников убрать скрутки в подъезде?

    opium
    @opium
    Просто люблю качественно работать
    С вашими руками вам проще самому это сделать.
    Ответ написан
    1 комментарий
  • Оптимальный выбор ВУЗа в сфере IT?

    StranikS
    @StranikS
    web разработчик
    На данный вопрос, можно сразу дать ответ в стиле "В России нет ВУЗов, которые могли бы подготовить тебя достойно к вступлению в IT рынок".

    Пока ты будешь зубрить материал с учебников от 89-99 годов, реальная ситуация прыгнет так, что после того как ты выйдешь из ВУЗа ты будешь чувствовать себя "Тупым"

    Я думаю что изначально, ты неправильно сформировал вопрос. Подумай не над тем, в какой ВУЗ тебе нужно поступить, а над тем, чем ты собираешься заниматься в жизни. Быть успешным сотрудником в какой либо компании или начать свой IT бизнес или как и сотни других алая специалистов с дипломами без опыта ходить и биться лбом о закрывающиеся перед тобой двери работодателя.

    В 99% на данный момент, статус твоего диплома не играет никакой роли. Когда я в СПб искал работу web разработчиком, работодателя интересовал мой опыт, а не бумага.

    Когда ты сможешь правильно сформировать вопрос, ты сразу поймешь на что тебе следует потратить следующие свои 5 лет жизни!

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

    Просто сразу пойми одну вещь, если тебе кто то говорит что в МСК или в СПб или еще где есть ВУЗ который просто ваще пипец крут крут крут и там профессора и так далее, все это пиар. Я учился 2007-2013 как раз момент активного развития различных сфер IT рынка. Все пары сводились к тому, что препод стоял у доски и читал лекцию с учебника от 88 года по Delphi 7. Pascal был приделом мечтания, а C/C++ преподавали на уровни 1+1=2 про web разработку вообще молчу, круче ie6 на краном XP и html - js - php на уровне 2+2=4 ничего не было.

    По этому я бы н твоем месте сделал бы так, взял како нибудь средний ВУЗ по IT с не высокой нагрузкой на голову и все остальное время абсолютно все свое время кинул бы на гугления современных трендов в IT и их изучение, по прошествию 5 лет у тебя будет и диплом и подкованность в текущей ситуации IT рынка. Еще будет огромным плюсом если за эти 5 лет пока учишься ты еще будешь пробовать какие либо свои проекты, только не в рамках универа, потому что все что ты делаешь в универе является собственностью универа!

    Ну вот наверное как то так )))
    Ответ написан
    5 комментариев
  • Какую C++ библиотеку для работы с сокетами посоветуете?

    @vilgeforce
    Раздолбай и программист
    ws2_32.dll
    Ответ написан
    Комментировать
  • Каким путем развиваться как специалист в геймдеве?

    @mamkaololosha
    Тут есть одна проблема:"Вы не умеете программировать". Серьезно. Игры делают ~70 человек на протяжении ~3х лет. Применяя ~7 (C++/C, C#, Java, Python/Lua, simd/asm, ActionScript, bash/cmake/make/scons) языков программирования и скриптовых языков параллельно. Технологии меняются очень быстро. Раз в 3-5 лет всё меняется. Если не кардинально, то достаточно, что бы садиться за учебники опять. Учите классический Computer Scince, алгоритмы/структуры данных, GoF. Тонкости технологий будете учить на месте.
    www.targem.ru/vakansii/#job184
    Ответ написан
    2 комментария
  • "Запасная" профессия для программиста?

    sabramovskikh
    @sabramovskikh
    Увы, работа вам больше не понадобиться. Нужно будет делать абсолютно все, что можете и не можете. Искать еду и выживать. Просмотрите Беара Грилза
    Ответ написан
    Комментировать
  • "Запасная" профессия для программиста?

    kumaxim
    @kumaxim
    Web-программист
    Итак, сети нет, вокруг полно голодных бандитов с кольтами/калашниковыми. Пусть этот контингент будет основным клиентом(а их будет много, как мне видится). Для начала нам нужно завербовать с десяток таких ребят. Как? Думаю я служил с кем-то, с кем-то врагов бил, в общем берем своих людей в дело.
    Далее, вспоминаем, что кушать-то всем хочется... Следовательно нужно где-то достать как-минимум хлеба. Цепочка хлеба примерно такая: поле - пшеница - элеватор - мельница - пекарня - лавка магазина.

    Поле - тяжело ли найти кусок пригодной земли?
    Пшеница - посеять на поле и убрать - тяжело, но сильной подготовки не нужно
    Элеватор - в примитивном случае - амбар
    Мельница - пару жернов + пленные враги = мука
    Пекарня - костер и формы да дело в шляпе
    Магазин - прилавок и кассовый аппарат

    Собственно садись на любом этапе цепочки. Тут ты и братков своих сможешь прокормить и сам не помрешь да еще и бизнес иметь будешь.
    Ответ написан
    Комментировать
  • В чём польза readonly полей в C#?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    Значения полей readonly можно менять динамически, в конструкторе класса. Последующие изменения невозможны.

    public class MyClass
    {
    
      public readonly int Value = 0;
    
      public MyClass()
      {
        this.Value = 123;
      }
    
    }


    Для чего это использовать - зависит от фантазии.

    Например, можно создать класс User и сделать readonly поле, содержащее идентификатор пользователя. Таким образом, идентификатор пользователя можно будет указать только при инициализации класса и, в последующем, изменить его будет невозможно. Это позволит избежать проблем в логике, которые еще предстоит придумать :-)

    Если сравнивать со свойствами и константами, то значения readonly свойств могут меняться в процессе жизненного цикла класса. Значения readonly полей, как уже было сказано ранее, можно указывать только при объявлении и в конструкторе класса.

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

    В дополнение, немного кода (Console Application):
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Net;
    using System.Timers;
    using System.Threading;
    
    namespace ConsoleApplication20
    {
    
      class Program
      {
        static void Main(string[] args)
        {
          // создаем экземпляр класса
          var t = new Toster(199065);
          // выводим значение константы ProjectName
          // доступ только через Toster
          Console.WriteLine(Toster.ProjectName);
          // доступа к локальным константам здесь нет
          // Toster.CounterPattern
          // t.CounterPattern
    
          // выводим заголовок вопроса
          Console.WriteLine(t.Title);
    
          // бесконечность - не предел!
          while (true)
          {
            // t.Id = 123;
            // мы не можем поменять идентификатор
            // следовательно, этот код, логически, будет работать правильно
    
            // выводим число ответов
            Console.WriteLine("Ответов: {0}", t.AnswersCount);
    
            // t.AnswersCount = 123
            // мы не можем менять значение readonly свойства,
            // но оно может меняться внутри экземпляра класса
    
            // пауза 10 сек.
            Thread.Sleep(10000);
          }
        }
      }
    
      public class Toster
      {
    
        // публичная константа, доступ через Toster
        public const string ProjectName = "Тостер";
    
        // локальная константа, доступна только в рамках этого класса
        const string CounterPattern = "<span class=\"section-header__counter\" role=\"answers_counter\">";
    
        // публичные поля только для чтения
        // значение может быть установлено в конструкторе
        public readonly string Title = "Нет данных";
        public readonly int Id = 0;
        
        // свойство только для чтения
        // значение может меняться в процессе жизни экземпляра класса
        // при помощи локальной переменной
        private int _AnswersCount = 0;
        public int AnswersCount
        {
          get
          {
            return _AnswersCount;
          }
        }
    
        // это просто таймер
        private System.Timers.Timer Timer = null;
    
        // а это конструктор<s>, но не Lego</s>
        public Toster(int id)
        {
          if (id <= 0) { return; }
          
          // получаем вопрос
          var web = new WebClient();
          web.Encoding = Encoding.UTF8;
          var result = web.DownloadString(String.Format("https://toster.ru/q/{0}", id));
          // из шаблона url тоже можно сделать константу
          // либо в классе можно сделать readonly свойство, 
          // которое будет на лету формировать итоговый адрес:
          // return String.Format("https://toster.ru/q/{0}", this.Id)
    
          // устанавливаем значения для полей
          this.Id = id;
          this.Title = WebUtility.HtmlDecode
          ( 
            result.Substring
            (
              result.IndexOf("<title>") + "<title>".Length,
              result.IndexOf("</title>") - result.IndexOf("<title>") - "<title>".Length
            )
          );
          // выдергиваем число ответов на вопрос
          this.ParseAnswersCount(result);
    
          // запускаем периодическую проверку <s>Менделеева</s>
          Timer = new System.Timers.Timer(10000);
          Timer.Elapsed += Timer_Elapsed;
        }
        
        // обработчик истечения интервала времени 
        private void Timer_Elapsed(object sender, EventArgs e)
        {
          var web = new WebClient();
          web.Encoding = Encoding.UTF8;
          var result = web.DownloadString(String.Format("https://toster.ru/q/{0}", this.Id));
          this.ParseAnswersCount(result);
        }
    
        // выдергиватель количества ответов
        private void ParseAnswersCount(string value)
        {
          int startstart = value.IndexOf("Ответы на вопрос");
          int start = value.IndexOf(CounterPattern, startstart) + CounterPattern.Length;
          int len = value.IndexOf("</span>", start) - start;
          _AnswersCount = Convert.ToInt32(value.Substring(start, len));
        }
        
      }
    
    }
    Ответ написан
    Комментировать
  • С помощью чего писать игру на C#?

    @JackBoner
    Знать Unity это определенно круче, чем знать MonoGame. Ну и смотря что за игра. MonoGame не пробовал, но вот 2D в Unity мне очень понравился.

    Решили делать первую игру - и сразу MMORPG? Уверены что осилите? Там ведь надо ещё и сервер писать. У юнити, кстати, тоже есть есть много готовых фич для работы с сервером.
    Ответ написан
    1 комментарий
  • Почему все новые устройства такие медленные?

    @onepavel
    Консультация и разработка мобильных приложений
    Раньше писали нативные приложения, не было виртуальных машин, фреймворков, DI и рефлексии в целом, не было 100500 сервисов проверяющих фейсбуки и твиттеры. У меня был палм от сони, черно-белый экран и никакой анимации. Ну и конечно качество кода упало.
    Ответ написан
    Комментировать
  • Вопрос касательно C#?

    @raincons
    Мне кажется, тут больше подходит Dictionary<string, string>
    Ответ написан
    Комментировать