• Возможно ли создать хорошую игру одному?

    @mlyamasov
    IMHO, лучшие вещи создаются именно в одиночку. Нужны идеи и желание.
    Пример: https://ru.wikipedia.org/wiki/Braid
    Ответ написан
    Комментировать
  • В чем отличие оператора -> от .(точки)?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    ЕМНИП
    a->b(*a).b
    Ответ написан
    Комментировать
  • В чем отличие оператора -> от .(точки)?

    GavriKos
    @GavriKos
    Компилятор ничего не заменяет - видимо это у вас IDE делает.
    Отличие - в назначении. В любом учебнике по плюсам найдете.
    Ответ написан
    Комментировать
  • Матрица в матрице?

    RiseOfDeath
    @RiseOfDeath
    Диванный эксперт.
    Что такое матрица в C/C++ ?
    Нету в C/C++ матриц, это математическое понятие, которое можно реализовать как просто "двумерный" массив. Точнее это или одномерный массив, у которого, как мы считаем, каждые N элементов новая "строка" или одномерный массив "строк", каждый элемент которого указатель на одномерный массив -строку.

    Что может быть элементом массива? Да что угодно, например указатель на что угодно, например на другой массив из прошлого вопроса (который мы интерпретируем как матрицу).

    Что касается чисто C++ емнип в stl нет стандартный объектов для 2-мерных или N-мерных массивов, но можно использовать одномерные массивы вышеназванным способом (к сожалению не знаю есть-ли многомерные массивы в бусте, но скорее всего тоже нет)
    Ответ написан
    Комментировать
  • Матрица в матрице?

    @rPman
    В c++ есть запись математически схожая с доступом к элементам матрице в математике запись:
    m[x][y] - т.е. мы берем элемент xy матрицы m (формально наоборот конечно, сначала строки Y потом колонки X но в конечном счете разницы никакой, кроме как если важна оптимизация).

    В реальности же эта запись означает что мы берем x-ый массив в списке m и у полученного массива берем y-ый элемент, т.е. m имеет тип массив массивов элементов, и для работы с ним его нужно инициализировать, создав нужное количество массивов одинаковой размерности.

    p.s. иногда, когда хочется 'простоты' инициализации, уменьшения фрагментации памяти, более эффективный доступ последовательный к элементам, можно хранить массив в виде одномерного массива всех элементов матрицы, а доступ к элементам получать, вычисляя смещение в этом массиве как x+y*N, где N - размер матрицы по X, т.е. m[x+y*N], зато когда надо работать последовательно со всеми элементами с лева направо, сверху вниз, можно просто работать по смещению в этом одномерном массиве m[i++]

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

    const int N=3;
    const int M=2;
    int ml[N*M]={1,1,1,2,2,2};
    // матрица:
    // 111
    // 222
    int* m[M];
    for(int i=0;i<M;i++) m[i]=*(ml[i*N]);
    //
    for(int i=0;i<M*N;i++) ml[i]...
    и
    for(int y=0;i<M;i++) 
      for(int x=0;i<N;i++) 
        m[y][x]... // порядок колонки строки тут перевернут, но можно заранее это учитывать и перевернуть везде в коде для удобства восприятия

    p.p.s. может где то ошибся но не принципиально, сто лет не писал на си
    Ответ написан
    Комментировать
  • C++ Крестики нолики матрица из символов?

    0hquazEd
    @0hquazEd
    int main(int argc, char** argv)
    {
    	char symbols[3][3]
    	{
    		{ '.', '.', '.' },
    		{ '.', '.', '.' },
    		{ '.', '.', '.' }
    	};
    
    	for (int i = 0; i < 3; i++)
    	{
    		for (int j = 0; j < 3; j++)
    		{
    			std::cout << symbols[i][j];
    		}
    
    		std::cout << std::endl;
    	}
    
    	return 0;
    }
    Ответ написан
    1 комментарий
  • Какой уровень программирования необходим на C++ для sfml?

    @acwartz
    Тут должна быть ваша реклама.
    Если вы задаётесь этим вопросом посмотрев примеры, туториалы и API Reference и у вас всё ещё возникают вопросы даже для того чтобы например нарисовать окно с кнопкой выдающей "Hello world", то уровень надо бы поднять.
    А бояться надо не этого, вы 100% встретите задачу из серии OS Specific, которую эта либа не решает.
    Ответ написан
    Комментировать
  • Возможно ли писать приложения на SFML c++ и на сколько это рационально?

    @acwartz
    Тут должна быть ваша реклама.
    Родным языком для SFML являются кресты. Если сильны в чем-то другом, напишите обёртку к библиотекам. Впрочем, за вас это уже с тем или иным успехом уже сделали.
    Ответ написан
    Комментировать
  • Какой уровень программирования необходим на C++ для sfml?

    LoliDeveloper
    @LoliDeveloper
    Линейная алгебра как смысл жизни
    Понимать что такое классы и функции будет достаточно для начала изучения
    Ответ написан
    Комментировать
  • QT C++ Почему код так отличается?

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    Почему код на C++ , отличается от кода на qt?

    Вопрос изначально неверно сформулирован. Надо было написать "от кода, написанного с использованием Qt". На ваш взгляд есть визуальные отличия, но это потому что Qt предоставляет свои API.

    Чтобы вывести Hello world! в c++ нужно : cout << "Hello world!" << endl;
    А в Qt (будем считать, что это рописано в функции кнопки): qDebug() << "Hello world!";

    Вариант с cout будет точно так же работать.

    И вообще является ли qt отдельным языком программирования(Если да, то где лучше всего почитать про него)?

    Нет, Qt -- это не отдельный язык программирования, а набор библиотек или фреймворк (зависит от того, как использовать) + набор инструментов.
    Однако же, для разработки UI, с Qt можно использовать отдельный язык, который называется QML. Но можно и не использовать.
    Ответ написан
    Комментировать
  • На чем лучше всего создавать интерфейс, и что для этого нужно знать C++?

    vabka
    @vabka
    Токсичный шарпист
    Ну нужно знать плюсы, и какой-то GUI фреймворк - Qt или что-то из чисто виндовых технологий, и ещё делательно понимать примерно, как работают окна в винде
    Ответ написан
    Комментировать