Все потоки
Поиск
Написать публикацию
Обновить
0
0
TeAnton @TeAnton

Пользователь

Отправить сообщение
Я думаю, что быстрее было бы пройтись по всем словам и проверить, подходит ли слово под сетку.
Ну, что ты жалуешься? C++ в сто раз проще чем любой натуральный язык (русский например). И нормально, когда тебе нужно использовать один из семи падежей, выбрать окончание и еще помнить обо всех исключениях; все это дело происходит совершено без напряжения и автоматически. Конечно, иногда приходиться задумывать, какое же слово употребить «одеть» — «надеть». И при письме постоянно приходиться думать, где поставить запятую, а где не надо, нужен ли в этом слове мягкий знак или нет. Представляю нытье писателя-фантаста о том, что русский язык мешает полету его фантазии.

Я согласен, что C++ сложный язык по сравнению с другими языками программирования, но по сравнению с любым натуральным языком он очень простой. Я думаю достаточно двух недель, чтобы освоить C++ на довольно-таки хорошем уровне, чтобы можно было начать писать программы. Чтобы же начать говорить по-английски, я думаю, нужен год. И практика, практика, практика… все эти конст, мьютабл, геттеры/сеттеры со во временем будет вылетать на автомате, как жи/ши пиши с буквой и.
Я предлагаю замерять минимальное значение времени, а не среднее, т.к. все внешние помехи время только увеличивают, реальное же значение должно быть очень близко к минимальному.
я этим не занимался, но со стороны это выглядело так: мой коллега довольно таки долго гуглил, а потом исправил один макрос, дал команду что-то типа make и перепрошил прибор.
кстати, тоже согласен с амрао. Расскажу историю. Сделал я ошибку и решил использовать Виндоус для одной из систем, система должна была работать 24/7. И в одном из драйверов оказался баг, который подвешивал систему напрочь. Уверен, что баг в одну строчку, но исходники закрыты, пришлось городить супер систему со сторожевой собакой, которая автоматически делала ресет, когда дрейвер убивал всю систему. С другой стороны, работал я со встроенным линуксом, и в драйвере сетевой карты тоже был, баг, который вылечился до смешного просто, исправлением его в драйвере и пересборкой ядра.
конечно я использовал frexp он значительно быстрее log2
я уже проверил, работает медленнее.
алгоритм | на случайных данных | на 1  | на 0x7fffffff | на 0x3fffffff 
bit1     | 25.06               | 255.93| 17.59         | 23.10
bit2     | 40.51               |  39.27| 39.90         | 38.91
bit3     | 40.15               |  26.64| 40.94         | 39.41
log2     | 62.88               |  62.65| 62.75         | 62.63


поправка на цикл и вызов функции: 12.71
> В конце каждого кадра выполнять функцию Sleep(x), таким образом частота кадров никогда не превысит 1000/x.

Все равно не понял. Попробую объяснить не понятно, что подразумевается под тем, что функция QueryPerformanceCounter загружает процессор. Если имеется в виду, что бесконечный цикл, нагружает процессор на 100 процентов, то причем тут QueryPerformanceCounter? Если же то, что на вызов QueryPerformanceCounter затрачивается много времени, то причем тут Sleep?

> «более физические»

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

> моем движке время течет дискретно

в таком случае я вообще не вижу смысла в этом классе, т.к. тебе достаточно синхронизировать кадры, а все остальное будет базироваться на константе дельта t. Вся эта морока, с измерением разницы и т.д. и т.п.

Ничего не понял:

* что означает вот эта фраза: «сильно загружают процессор, имеет смысл ограничить чатоту кадров, выполняя Sleep»?

* «использования в игровом движке (а это значит, что помимо отмерения отрезков времени нам необходимо обеспечить работу событий, возникающих через заданное время)» как из одного следует другое?

* «Самым логичным решением» почему? Нужно рассмотреть другие варианты, например: GetTickCount(), clock(), описать все плюсы и минусы.

* странно использование плавающей арифметики, чем обусловлен такой выбор? Почему не целочисленная арифметика?

* «обратите внимание: время здесь не замеряется» почему?

теперь по поводу стрельбы:
int shootTimer = clock();

void tick()
{
   if (shootTimer < clock())
  {
    shootTimer += interval;
    shoot();
  }
}

Всё.

P.S. C-style cast не есть тру.

P.P.S. а так молодец, больше хороших статей по C++
Спасибо за перевод. Очень интересно.

Не знаю, как было в оригинале но: «Я получил свои „пошел ты“ деньги "

скорее всего должно звучать типа: «Я получил свои „ гребанные (сранные или что-то типа того)“ деньги "
зашел в синаптик набрал pulse в поиске и удалил все пакеты со словом pulse. как-то так.
А я все же снес PulseAudio.
Прикольно.
Есть небольшие стилистические замечания.

* имена хидеров не совпадают с именами классов
* переменные цикла лучше объявлять внутри цикла
например:
for (int i = 0; i < 10; ++i)…

* зачем писать this->…?

* смешивание стилей именования переменных click_pos, displayDots

* в C++ есть более элегантные способы объявления констат, чем через #define

мне больше всего нравиться вот такой способ
enum { ZOC_WINDOW_EIDTH = 54 };
IMHO.

Выражение: фича или баг относиться к процессу производства программного продукта, а не к готовому продукту.

От сюда и шутка: если баг задокументировать, то это уже фича.

Конец IMHO.
Поставил swi немного поигрался. Будет с чем поиграться в рождественские праздники.

По поводу true/false. swi пишет fail вместо false. Т.е. он не утверждает, что «ложь», он просто говорит, что не смог доказать, что «истина».
C++
NumberFavoriteNews для имени класса
numberFavoriteNews для публичных членов класса
numberFavoriteNews_ для защищенных членов класса
NUMBER_FAVORITE_NEWS для констант

Object Pascal
TNumberFavoriteNews для имени класса
NumberFavoriteNews для публичных членов класса
FNumberFavoriteNews для защищенных членов класса
NUMBER_FAVORITE_NEWS для констант
Ненавижу такие формы. Все вермя чертыхаюсь, когда приходиться заполнять их. Самый главный недостаток, то что copy-paste не работает.

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

А я хотел услышать, как Бобук порадуется появлению доменов нулевого уровня.
Честно говоря, я не знал, что Павер Дуров автор ВКонтакте. Да и о ВКонтакте я узнал недавно.
1

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность