@FlaPenguin666 SDL, Qt, boost... это дополнительные зависимости. Зачем усложнять програму? Это не библиотека, а учебная программа, в которой объясняется A* алгоритм, а не то как правильно делать задержки. Цели разные (продакшен vs учебные цели), соответсвенно и код разный. Про два вызова дисплей, я не понял. Ты про то чтобы вместо display вызывать glutPostRedisplay? Я не помню, что я написал, но вроде бы работать не должно.
@FlaPenguin666 ты читаешь мои ответы или нет? Я уже три раза согласился с тобой, что с использованием clock правильнее делать задержку. У уже третий раз тебе пишу, что sleep это дополнительная зависимость, и это делает компиляцию программы сложнее, это не только дефайны, это так же инклюды и в плюс это делает программу сложнее в понимании.
@FlaPenguin666 я в уроках использую только две зависимости C++ и glut. Это делает возможность испытать программы с минимальными усилиями. Нужен любой C++ компилятор и нужно установить glut. Для пользователей Windows есть видио инструкция по тому как компилировать программы. Ты же из-за того, чтобы добваить задержку в программу, предлагаешь добавить дополнительную зависимость, и даже переписать все программу с использованием другой библиотеки. Не разумно.
@kokorelloable я довольно такие часто пользуюсь #define, но #define нужно пользоваться с осторожностью, т.к. неумелое использование порождает трудноуловимые ошибки. Например, недавно был случай с моим коллегой, он определил структуру struct Status, а программа не хочет компилироваться, он довольно-таки долго бился, и в конечно итоге обраружил глубоко в коде такой кусок #define Status int что привело к struct int и естественно не хотело компилироваться, самое плохое, что компилятор не в силах пом
@FlaPenguin666 это дополнительная зависимость от платформозависимых библиотек. Как я уже сказал в glut'e нет sleep'а. Так же выше с тобой я уже согласился, задержку можно переписать с использованием clock. А теперь я попридираюсь к мелочам: 1. Цикл жрет только 1 (один) процессор, а не как ты написал все доступные ему ресурсы. 2. Это урок, и цель урока передать идею, а не написать правильную программу. Соответственно программа должна быть читаемая, и понятная, в ней должно быть минимальное коли
@FlaPenguin666 я тебе советую попробовать самому сделать урок, чтобы почувстовать тему. Так просто брасаться на шаблоны, это зло, это плохой стиль, потому что в книжке так написано, и там приведены такие и такие агрументы. Да, бази цикл забирает 100% у одного CPU, но есть у него и плюсы, им пользуются даже в продакжене. Нампример, быстрые мьютексы в линуксе реализованы через бази цикл.
@FlaPenguin666 Я сделал выбр в сторону стандартного C++ и glut. Если хочется перезаписывай все уроки на SDL. glut проприетарен - не верно glutTimerFunc создает новый поток - докажи Нужно смотреть на задачу более широко. А не так как ты уперся: баззи цикл зло. Бази цикл инструмент, о котором нужно знать, так же и goto и указатели и глобальные переменные. Да, согласен, чаще всего это зло, но это инструмент, и я рад тому, что C++ разрешает пользоваться этими инструмент.
@FlaPenguin666 в glut'е нет такой штуки как sleep, можно было бы сделать поглощающий цикл через clock (имеет смысл). Так же можно было бы сделать с ипользованием glut'овского таймера, но это выворачивать алгоритм наизнанку. Какой в этом смысл? Да и вообще придираешься к мелочам.
@FlaPenguin666 я даже не знаю, как тебе ответить на это. Твое определение бази-цикла не верное. Ты смешиваешь два совершенно не относящихся друг к другу понятия: имитация временной задержки и событие. Они находятся на двух разных уровнях абстракции. Думаю, что надо закрывать этот бессмысленный спор.
Здорово получилось смонтировать =)
круто очень
@FlaPenguin666 SDL, Qt, boost... это дополнительные зависимости. Зачем усложнять програму? Это не библиотека, а учебная программа, в которой объясняется A* алгоритм, а не то как правильно делать задержки. Цели разные (продакшен vs учебные цели), соответсвенно и код разный.
Про два вызова дисплей, я не понял. Ты про то чтобы вместо display вызывать glutPostRedisplay? Я не помню, что я написал, но вроде бы работать не должно.
@FlaPenguin666 ты читаешь мои ответы или нет? Я уже три раза согласился с тобой, что с использованием clock правильнее делать задержку. У уже третий раз тебе пишу, что sleep это дополнительная зависимость, и это делает компиляцию программы сложнее, это не только дефайны, это так же инклюды и в плюс это делает программу сложнее в понимании.
Скажите Антон, почему Вы не используете:
например
#define pb push_back
Спасибо.
@FlaPenguin666 я в уроках использую только две зависимости C++ и glut. Это делает возможность испытать программы с минимальными усилиями. Нужен любой C++ компилятор и нужно установить glut. Для пользователей Windows есть видио инструкция по тому как компилировать программы. Ты же из-за того, чтобы добваить задержку в программу, предлагаешь добавить дополнительную зависимость, и даже переписать все программу с использованием другой библиотеки. Не разумно.
Spasibo! krasnii nsteps krasivo smotritsa )
@FlaPenguin666 unistd не входит в стандарт C++, STL - входит.
Ремарку про препроцессоры и время компилации не понял к чему?
@kokorelloable я довольно такие часто пользуюсь #define, но #define нужно пользоваться с осторожностью, т.к. неумелое использование порождает трудноуловимые ошибки. Например, недавно был случай с моим коллегой, он определил структуру struct Status, а программа не хочет компилироваться, он довольно-таки долго бился, и в конечно итоге обраружил глубоко в коде такой кусок #define Status int что привело к struct int и естественно не хотело компилироваться, самое плохое, что компилятор не в силах пом
@FlaPenguin666 это дополнительная зависимость от платформозависимых библиотек. Как я уже сказал в glut'e нет sleep'а. Так же выше с тобой я уже согласился, задержку можно переписать с использованием clock. А теперь я попридираюсь к мелочам:
1. Цикл жрет только 1 (один) процессор, а не как ты написал все доступные ему ресурсы.
2. Это урок, и цель урока передать идею, а не написать правильную программу. Соответственно программа должна быть читаемая, и понятная, в ней должно быть минимальное коли
@FlaPenguin666 Ссылка? википедия статья про спинлок.
@FlaPenguin666 я тебе советую попробовать самому сделать урок, чтобы почувстовать тему. Так просто брасаться на шаблоны, это зло, это плохой стиль, потому что в книжке так написано, и там приведены такие и такие агрументы. Да, бази цикл забирает 100% у одного CPU, но есть у него и плюсы, им пользуются даже в продакжене. Нампример, быстрые мьютексы в линуксе реализованы через бази цикл.
@FlaPenguin666 Я сделал выбр в сторону стандартного C++ и glut. Если хочется перезаписывай все уроки на SDL.
glut проприетарен - не верно
glutTimerFunc создает новый поток - докажи
Нужно смотреть на задачу более широко. А не так как ты уперся: баззи цикл зло. Бази цикл инструмент, о котором нужно знать, так же и goto и указатели и глобальные переменные. Да, согласен, чаще всего это зло, но это инструмент, и я рад тому, что C++ разрешает пользоваться этими инструмент.
@FlaPenguin666 в glut'е нет такой штуки как sleep, можно было бы сделать поглощающий цикл через clock (имеет смысл). Так же можно было бы сделать с ипользованием glut'овского таймера, но это выворачивать алгоритм наизнанку. Какой в этом смысл? Да и вообще придираешься к мелочам.
@Redterror1901 код можно скачать, в описании есть ссылка...
Anton, не получилось скачать
@FlaPenguin666 Давай так, ты модифицируешь мою программу, так как ты считаешь правильным, и тогда уже можно будет, конструктивно спорить.
нет исходника, можете скинуть?
эм в описании есть
@@vovchikochik5796 та его нету
@CounterRUS1 спасибо! Ж)
@spider853 пожалуйста
@FlaPenguin666 я даже не знаю, как тебе ответить на это. Твое определение бази-цикла не верное. Ты смешиваешь два совершенно не относящихся друг к другу понятия: имитация временной задержки и событие. Они находятся на двух разных уровнях абстракции. Думаю, что надо закрывать этот бессмысленный спор.