• Какие термины и темы могут встретится при разработке сетевого движка для игры?

    @Karpion
    mlsdmitry_m, Судя по тому, что Вы только начинаете - используйте TCP. Возможно, имеет смысл взять задачку попроще - например, двумерную, типа "по плоскости ездят танчики и стреляют друг-в-друга" или "по плоскости ездят змейки и жрут еду и друг-друга". Или вообще простейший сетевой чат типа программы talk в Unix; а потом замахнуться на что-то типа IRC/ICQ; тут хотя бы не надо делать "физику мира".

    Кстати, если напишете несколько разных клиентов игры (допустим, один текстовый и один графический) - то научитесь отделять интерфейс от движка.
  • Как запустить 200 строк в Ubuntu 18 из putty?

    @Karpion
    fellliche, Вот Вы пишете:
    sudo dhcdrop -i enp2s0.1092 -y -l 0C:5E:6B:02:81:6B -m 86400
    sudo dhcdrop -i enp2s0.1148 -y -l 0C:5E:6B:02:81:6B -m 86400
    sudo dhcdrop -i enp2s0.1578 -y -l 0C:5E:6B:02:81:6B -m 86400
    sudo dhcdrop -i enp2s0.2645 -y -l 0C:5E:6B:02:81:6B -m 86400
    и так далее 300 строк
    Вот эти самые 300 строк и надо записать в текстовый файл. Ну или не эти - а все команды, которые надо выполнять.

    Ну или можно записать в файл то, что различается - а остальное генерировать автоматически, программой; но это уже высший пилотаж.
  • Что значит /dev/stdin в windows?

    @Karpion
    Нет, неправильно.

    Поток - это сущность, возникающая при некоторых совместных действиях программы и ядра. И поток м.б. связан с несколькими "базами".

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

    Другой путь создания потока - это запуск двух программ в виде prog1 | prog2 Тут возникают два связанных потока, по одному у каждой программы; у первой он связан с stdout (fd=1), у второй - с stdin (fd=0).
    Надеюсь, Вы в курсе, как это работает. И найти эти потоки (соответствующие им файлы) файловый менеджер не может.

    Третий путь создания потока - это открытие сетевого сокета. Проще всего - если это TCP-сокет. В файловой системе файла для такого потока тоже нет.

    stdin, stdout, stderr - это три потока. Любая запущенная программа при старте может полагаться на то, что кто-то заранее открыл ей три файла или не-файла; и передал ей в наследство три файловых дескриптора fd=(0,1,2)

    Надеюсь, понятно.
  • Бот, понимающий смысл?

    @Karpion
    Ну, допустим, Вы правы. Тогда как должна звучать фраза, если Вася сказал это про себя (т.е. это Вася готов начать работу)?
  • Бот, понимающий смысл?

    @Karpion
    "Вася сказал Пете, что он может начать работу."
    Кто будет делать работу - Вася или Петя? Или Вы вручную будете выяснять смысл этого предложения?
  • Как игровому серверу в локальной сети дать знать клиенту о том, что создана игра?

    @Karpion
    Если сетка самодельная - то да. А вот если провайдерская - то провайдеры обычно блокируют трафик между юзерами, дабы избежать взломов и заржений.
  • Кто мне объяснить как работает шейпинг трафика с помощью proxy?

    @Karpion
    Ну так читайте доки по ipfw и Squid. А что непонятно - спрашивайте тут. Пересказывать Вам доки никто не будет.
    Или начните с Википедии.
  • Мультиусловие в if как его сделать?

    @Karpion
    Вам следует тщательно изучить, как работают логические операции типа &&
    Т.е. надо прочитать учебник, расставить скобки в соответствии с приоритетом операций, изучить работу логических операторов вкупе с автоматическим преобразованием типов. Это нужно не для данной задачи (её ниже уже решили), а для понимания работы языка. Иначе я Вам предсказываю многочисленные затыки на ровном месте.
  • Почему тело функции записано в круглых скобках вместо фигурных?

    @Karpion
    Я бы сформулировал это так:

    Фигурные скобки вообще не обязательны. Они нужны для того, чтобы собрать несколько операторов в один оператор - для конструкции, которая применяется к оператору (например, оператор if/for/while требует одного оператора - или группу операторов в фиг.скобках).

    Ну и есть вариант - написать несколько операторов через запятую. Например:
    for (i=1,j=100,k=z; i<100; i++,j--,k<<=1) { ну и дальше тело цикла}
    И операторы через запятую - можно сгруппировать в один кр.скобками.

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

    @Karpion
    Олег Филимоненко, Какой-то жуткий код.

    char userGetLine[256]; // строка для чтения Буфер фиксированного размера? А если строка будет больше?

    fgets(answer, sizeof(answer), stdin); // считываем строку
    Откуда тут answer? Что это за переменная?

    while ((sscanf(userGetLine, "%c", &confirm) != 'Y') || (sscanf(userGetLine, "%c", &confirm) != 'y') || (sscanf(userGetLine, "%c", &confirm) != 'N') || (sscanf(userGetLine, "%c", &confirm) != 'n') )
    Это вообще ужас. Поскольку строка ввода у нас в массиве userGetLine - нам не надо делать sscanf, достаточно взять соответствующий символ (элемент массива).

    Если есть сомнения в приоритете операций - не жалейте скобок. И даже если нет сомнений - всё равно не жалейте. Считайте это заповедью.

    ___

    CityCat4, read() не работает с stdin, он читает через file-descriptor, а не через file-pointer. Из stdin читает fread()! Вообще- имеет смысл научиться работать с этими функциями. Надо помнить, что read() делает сист.вызов в ядро поэтому с короткими запросами (где-то до одного килобайта) работает дольше; зато на длинных вызовах, когда надо читать много (мегабайты) - не заморачивается буферизацией и работает быстрее, чем fread(). Ну и можно/нужно разбирать ввод самостоятельно.
  • Как создать публичный web сервер на своем linux пк?

    @Karpion
    Начать надо с выяснения - находится ли друг в лок.сети или снаружи. Если снаружи - то начать с получения внешнего IP-адреса.
  • Что означает символ! перед this в языках javascript?

    @Karpion
    Запись !this.checked следует рассматривать как !(this.checked), т.е. по-русски это как бы "this.не-checked, "это.не-выбрано".

    Вам следует глубже вникнуть в приоритет операций и уверовать в заповедь "не жалейте скобок - и воздастся вас читаемостью кода". ;)
  • Как возобновить интернет соединение в Ubuntu?

    @Karpion
    Что говорит ifconfig в терминальном окне?
  • Начиная с какой месячной зарплаты фрилансеру стоит платить налоги (в РФ)?

    @Karpion
    g0ss, По идее, если мама - то это нормально, внимание привлекать не должно.
  • Как сделать движение существа к еде?

    @Karpion
    Сергей Соколов, Как правило, скорость существа ограничена. А тут получается, что скорость м.б. сколь угодно большой - ну, ограниченной радиусом чувствительности. Не нравится мне эта формула.
  • Задача от Google про 25 лошадей?

    @Karpion
    Сначала разобьём лошадей на группы по пять штук и устроим забеги в каждой пятёрке. Далее надо рассмотреть следующие варианты:
    1. все три призовые лошади - в разных пятёрках;
    2. первая лошадь - в одной пятёрке, вторая и третья - в другой;
    3. первая и вторая лошади - в одной пятёрке, третья - в другой;
    4. первая и третья лошади - в одной пятёрке, вторая - в другой;
    5. все три призовые лошади - в одной пятёрке;
    при этом в какой именно пятёрке/пятёрках - мы не знаем.

    Те лошади, коорые в каждом забеге заняли 4-е и 5-е места - явно не призовые, их можно снимать с соревнований.

    Теперь устроим шестой забег среди призёров каждой пятёрки.
    Та лошадь, которая заняла первое место - очевидно, самая быстрая. Её можно снимать с соревнований - с ней всё ясно.
    Та лошадь, которая в 6-м забеге пришла второй - в общем списке м.б. или второй (варианты 1,2,4 из списка выше), или третьей (вариант 3), или вообще не призовой (четвёртой и далее - вариант 5).

    Те лошади, которые заняли в шестом забеге 4-е и 5-е место - явно не призовые. И все их пятёрки - тоже не призовые, ибо ещё хуже. Значит, их всех можно снимать с соревнований.

    Дальше я как-то не соображу - тут проще читать ссылку, которую дал Сергей Соколов. Но я надеюсь, я разъяснил решение задачи - особенно важным педагогически я вижу список вариантов в начале ответа.
  • Можно ли сделать отображение разделов дисков как в windows на linux mint?

    @Karpion
    То, что корпорации пишут программы для Linux - я в курсе. У меня была претензия к фразе "По факту же, 95% всех правок в ядро вносят корпорации" в контексте данной дискуссии.

    Я что-то ни разу не слышал, чтобы в Ubuntu пропадали старые драйверы, да ещё массово. Можно пруф?
    В конце концов, исходники всего этого - остаются доступными. Если что-то сильно актуально - можно найти или взять из параллельных дистрибутивов. Тогда как MS - запросто может принудительно удалить так, что обратно не всунешь (ну, отозвать цифровую подпись).

    И отвал оборудования - не так страшен, как уничтожение данных. И обновление - не такое агрессивно-навязчивое.