• Как практиковаться в программировании?

    @MarkusD Куратор тега C++
    Meised, вот смотри. Я задал тебе короткий вопрос. Ты сперва выдал ответ, а потом пошел думать за меня и отвечать уже не мне, а самому себе. С таким подходом тебе в разработке делать вообще нечего.
    Для чего и почему я задаю свои вопросы, спрашивать надо только у меня. Я задал свой вопрос для того, чтобы увидеть фундамент, на котором ты строишь свое обучение. Фундамента у тебя нет, а отсюда нет и обучения.

    По описанию в твоем вопросе и по написанному во всех твоих комментариях видно только одно. Ты никогда не учился программированию и по сути так ничего и не умеешь. Все твои потуги никак не отличаются от все тех же игр. Хотя нет. Как разработчик игр, я могу сказать что в играх люди очень часто учатся чему-то полезному для их жизни. У тебя ситуация больше похожа на воскресный запой. Бесполезная трата времени.
    Разработка ПО - это не про написание буковок в каком-то порядке. Чтобы всего лишь начать в разработке, нужно уже быть квалифицированным инженером. Написание кода - это рядовой навык переводить инженерные решения в слова на каком-либо языке. А основной навык инженера - это способность мыслить системно в состоянии длительной и полной фрустрации. И у тебя этого навыка нет вообще, опять же, судя по твоим собственным словам. Фрустрации ты банально боишься.
    Инженер владеет инструментами и умеет их комбинировать для решения поставленной задачи. У тебя нет даже самых базовых инструментов, которые осваиваются еще в школе. Да, та же математика и прочие школьные дисциплины.
    Системное мышление позволяет видеть комплексность задачи. Ты думал что станешь хакером, это слишком высокоуровневая и комплексная задача, чтобы напрямую браться за ее решение. А системного мышления для декомпозиции этой задачи у тебя нет.

    Вот почему ты находишься там, где ты находишься. У тебя нет фундамента, а ты пробуешь взяться за что-то с самой макушки и тешишь себя недостижимыми целями.
    Написано
  • Как рисовать png иконки без изменения масштаба?

    ditrix , расскажи как рисуешь сейчас.
    Какая логика у вывода карты, какая логика у обработки ввода пользователя?
    Написано
  • Как практиковаться в программировании?

    @MarkusD Куратор тега C++
    Meised , так а зачем ты пошел на поводу у своего друга и начал учить программирование?
    У друга свои тараканы. Тебе с этого занятия какой толк?
    Написано
  • Почему не вижу отрисованную область?

    Викентий , ты меня извини, но что людям с этим кодом делать?

    При легком повороте камеры ты видишь часть фигуры, а так не видишь. Это значит что и сама камера у тебя не настроена на отображение пространства, в котором ты рисуешь объекты.
    Хорошо поставленный вопрос дает 50% верного решения. Это значит что тебе нужно локализовать проблему в своем коде, желательно до минимального блока кода. Или у тебя ошибка в координатах пространства, в котором ты рисуешь фигуры, или у тебя проблема в настройке камеры. Решать только тебе, как автору.

    Давай начнем с этого. Измени код в вопросе, локализуй ошибку. А дальше хоть я помогу, хоть еще кто.
    Написано
  • Как происходит обмен с БД данными в Lineage2?

    Владислав Лысков, 2003-й :)
    Она вышла в 2003м. Ragnarok Online вышла в 2002м. Rising Force Online - в 2004м. Cabal Online - в 2005м.

    И у них у всех +/- схожий протокол. TCP на 4-м уровне OSI, командная структура на 6-м уровне, схожее строение пакета, примерно схожие ограничения по приему-передаче. Примерно схожий расход трафика.

    И +/- одинаковые макароны в сетевой части, полное отсутствие понимания модели OSI в коде и, как следствие, характерная для корейского кода простота взлома протокола. Мне в те года, как игроку, за это было весьма обидно. Мне, как разработчику ММО проектов, сейчас весьма тяжело наставлять молодых ребят не то чтобы не повторять тех ошибок Корейцев, а хотя бы не использовать JSON с HTTP в сетевых проектах.
    Написано
  • Как происходит обмен с БД данными в Lineage2?

    Владислав Лысков, чему и сколько времени лежать на земле - определяется конфигурацией конкретного сервера.
    Сам сервер из себя представляет резидентную специализированную базу, но это только если рассуждать терминологически.
    На деле же функционал резидентной базы, функции чтения и записи данных, игровые механики и сетевой протокол настолько переплетены между собой и весь этот клубок неделим по своей сути, что лично я бы этот корейский код выкинул бы с диким позором. Он не выдерживает никакой критики.
    Традиционная БД там используется как средство бекапа посчитанных данных из резидентной. И дроп данных там идет очень часто, буквально на каждом такте мира для состояния каждой измененной за этот такт сущности.
    Загрузку из традиционной БД сервер выполняет, обычно, по требованию. Но часть данных, например база информации о предметах, какие они вообще есть в мире и какие у них свойства, или расы/навыки/классы со всей информацией о них, загружается на этапе запуска и конфигурирования сервера.
    После логоффа игрока его сущность еще какое-то время остается в памяти сервера. Чисто на случай повторного быстрого входа. Потому что тянуть игрока из традиционной БД дороже чем подержать лишние 30 минут в резидентной после его выхода. Тут важнее скорость входа игрока и снижение нагрузки на традиционную БД.
    Написано
  • Не могу, понять как компьютер перемещает свой знак?

    @MarkusD Куратор тега C++
    mrbudson, по сути это не ИИ. Даже не IA (Interactive Agent).
    Это вот так автор книги реализовал тривиальный BFS.

    Книга не про алгоритмы анализа и не про агентов. Ее задача в том, чтобы заинтересовать тебя в изучении и практике программирования.
    Написано
  • Не могу, понять как компьютер перемещает свой знак?

    @MarkusD Куратор тега C++
    mrbudson, одного "спасибо" тут мало.
    Если ответ решает твой вопрос, не забывай ставить отметку о решении.
    Написано
  • Не могу, понять как компьютер перемещает свой знак?

    @MarkusD Куратор тега C++
    mrbudson, "Перемещение фигуры" - это высокоуровневый термин.
    Компьютер фигуру перемещает терминологически. Фактически же компьютер попросту затирает фигуру в месте, где ее поставил, но не получил выигрыша.

    С моей т.з. в этом коде шибка. board[move] = EMPTY; должно выполняться только если !found. Но, вероятнее всего в этом коде только проба шага и анализ на выигрыш, а фактический шаг должен делаться в коде дальше по тексту книги.
    Написано
  • Как обеспечивается совместимость динамических библиотек при ликовке в рантайме?

    @MarkusD Куратор тега C++
    Сергей Соловьев, ответом на твой вопрос будет сама же ОС у тебя. Даже к тривиальному hello world будет подвязано с пару десятков динамических библиотек, каждая из которых не просто другим транслятором может быть собрана, а на другом языке написана.
    Я вот честно даже начинать углубляться в терминологию не хочу. Вопросы подобного уровня, Сереж, показывают что ты даже не начинал разбираться в этой теме. Это не совсем хорошо, потому что для объяснения мне надо написать много того, что ты и сам способен узнать из открытых источников.
    А достигается описанный выше эффект соглашениями. Соглашением об именовании, соглашением о вызовах или соглашением об управлении памятью, в качестве примера. Таких соглашений много и все они нестандартны относительно языков.

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

    @MarkusD Куратор тега C++
    MVV, мне так не показалось.
    Потому что конкретно по этому вопросу между C и C++ разницы нет. И не только между этими языками.
    Написано
  • Как обеспечивается совместимость динамических библиотек при ликовке в рантайме?

    @MarkusD Куратор тега C++
    MVV, ты этими словами хочешь сказать что C++ не поддерживает стандарт и функциональность C?
    Написано
  • Как обеспечивается совместимость динамических библиотек при ликовке в рантайме?

    @MarkusD Куратор тега C++
    Сергей Соловьев, тебя беспокоят только имена? А соглашения о вызовах тебя не беспокоят? Тебя не беспокоит то, что собранная из исходного кода на одном языке библиотека может спокойно использоваться в исходном коде на другом языке?

    C++ использует манглинг для имен для поддержки классов, перегрузок, шаблонов.

    Расскажи подробнее про эту поддержку классов, перегрузок и, особенно, шаблонов. Что именно и как там поддерживается?
    Написано
  • Какие есть доки по сборке APK/AAB с использованием Android NDK?

    GNU-like_RobertOS0, Gradle используется для сборки только высокого уровня и для упаковки APK.
    Собирать высокий уровень и паковать APK можно в несколько шагов, можно одним шагом. Все зависит от того, какую задачу ты из консоли попросишь выполнить Gradle.
    Для сборки низкого уровня используется только ndr-build или cmake. Возможность использовать кастомный тулчейн сборки тут не стоит рассматривать.
    Maven идет мимо, это нестандарт. Ant идет мимо, это устаревшая и давно списанная технология, на смену которой Gradle и пришел.
    Написано
  • Какие есть доки по сборке APK/AAB с использованием Android NDK?

    GNU-like_RobertOS0, ясно. Могу сказать только что документацию ты не читал вообще.
    Детали будут в ответе.
    Написано
  • Какие есть доки по сборке APK/AAB с использованием Android NDK?

    GNU-like_RobertOS0, хотелось бы для начала узнать, почему тебе для старта не хватает официальной же документации по NDK?
    Написано
  • Как использовать класс, определенный в двух подключаемых файлах?

    @MarkusD Куратор тега C++
    tamtakoe, ну, скажу честно, я сразу увидел, еще по вопросу, что навыков работы с этим кодом у тебя прямо нет. Были подозрения что ты чему-то на этом коде учишься. Может быть на плюсах работать, может быть с Godot разбираешься.
    Ну да ладно.

    Вот что я скажу. Ни один из ответов не решает твой вопрос вообще. У Wataru не костыль, но для твоего вопроса это не решение и не метод. Если навыков работы с obj-c/c/c++ у тебя мало, то завязывай терзать труп. Я так уж точно здесь умываю руки.
    Если эта штука тебе все-таки нужна, то предлагаю сходить на фриланс и оплатить профессионалу восстановление работоспособности кода.
    Разведение зависимостей в разный код и установка в этом коде моста является вообще единственным решением здесь.
    Написано
  • Как использовать класс, определенный в двух подключаемых файлах?

    @MarkusD Куратор тега C++
    tamtakoe,
    все конструкции, которые нужны, описаны здесь

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

    Вижу что ты описал только сторону Webkit. А что насчет используемых конструкций из Godot?
    Сейчас твоей целью является аналитически определить, каких зависимостей в webview_wk.mm больше: от Webkit или от Godot. Также важно оценить и качества этих зависимостей, насколько они сильно влияют на код webview_wk.mm.
    Зависимости эти ты будешь разводить в разные стороны. У тебя будет один файл с зависимостью на Webkit и второй - с зависимостью на Godot. Под вопросом сейчас стоит только методика разведения зависимостей.
    Все зависит от твоих ответов.
    Написано
  • Как использовать класс, определенный в двух подключаемых файлах?

    @MarkusD Куратор тега C++
    tamtakoe, с тикетом на гитхабе я ознакомлен.
    Тебе стоило сразу же писать конкретно о своей ситуации, так и вопросов к тебе было бы меньше, и ответы бы сразу верные пошли.
    Пока к тебе все еще есть вопросы. Для чего именно в .mm-файле присутствуют заголовки и WebView, и Godot одновременно? Ответ должен быть максимально узким и максимально профильным. Желательно вообще в тезисах определить все конструкции обеих библиотек, которые тебе требуются в этом .mm-файле. Еще важно описать почему тебе требуются именно эти конструкции из обеих библиотек.

    Для твоего вопроса есть несколько решений, но ни один из уже написанных ответов не приводит какое-либо из этих решений. От твоего ответа будет зависеть оптимальность выбора решения. Каждое из решений очень комплексное и требует детального объяснения. Поэтому тратить свое время на изложение всех я не буду. Да и не выберешь ты оптимальное, судя по всему, т.к. тебя нужно провести по критериям через вот такие вопросы.
    Написано
  • Что стоит учить с или c++ или c#?

    @MarkusD Куратор тега C++
    #, у меня все также. Читаю, вроде бы англицкий текст, а помню на своем родном. Интересно что и обратно это работает, когда надо что-то в документации или стандарте найти.

    Комментарий в ответы перенес. :)
    Написано