1. Друзья, в это тяжёлое и непонятное для всех нас время мы просим вас воздержаться от любых упоминаний политики на форуме, - этим ситуации не поможешь, а только возникнут ненужные ссоры и обиды. Это касается также шуток и юмора на тему конфликта. Пусть войны будут только виртуальными, а политики решают разногласия дипломатическим путём. С уважением, администрация Old-Games.RU.

    Скрыть объявление
  2. Пожалуйста, внимательно прочитайте правила раздела.
  3. Если Вы видите это сообщение, значит, вы ещё не зарегистрировались на нашем форуме.

    Зарегистрируйтесь, если вы хотите принять участие в обсуждениях. Перед регистрацией примите к сведению:
    1. Не регистрируйтесь с никами типа asdfdadhgd, 354621 и тому подобными, не несущими смысловой нагрузки (ник должен быть читаемым!): такие пользователи будут сразу заблокированы!
    2. Не регистрируйте больше одной учётной записи. Если у вас возникли проблемы при регистрации, то вы можете воспользоваться формой обратной связи внизу страницы.
    3. Регистрируйтесь с реально существующими E-mail адресами, иначе вы не сможете завершить регистрацию.
    4. Обязательно ознакомьтесь с правилами поведения на нашем форуме, чтобы избежать дальнейших конфликтов и непонимания.
    С уважением, администрация форума Old-Games.RU
    Скрыть объявление

Кодерский уголок

Тема в разделе "Мастерская", создана пользователем Dimouse, 10 сен 2006.

  1. Dimouse King of Mice

    Dimouse

    Администратор Переводчик

    Регистрация:
    18 апр 2003
    Сообщения:
    35.133
    В соответствии с назначением раздела, в этой теме предполагается обсуждать конкретные вопросы, которые у вас возникают при создании своих программ (в частности - игр), помогать другим, размещать полезные ссылки на статьи и материалы, которые могут пригодиться другим.

    Что здесь не допускается:
    - беспорядочный флуд на всевозможные темы, в том числе общие обсуждения языков программирования без конкретики (карается по статье "флуд и оффтопик" *),
    - разжигания на темы "что лучше, Си или Си++ и чем они отличаются?", "какой язык программирования лучше X или Y?" и т.п. (карается по статье "флейм и участие в холиварах" *),
    - мерение пиписьками в стиле "я лучше программирую" или "ты не умеешь программировать" (карается по статье "оскорбление участников и их взглядов" *).

    Всё это допускается в специально созданной теме "Беседка для программистов или «Бутерброд с кодом».

    * по усмотрению модератора также возможно применение блокировки в данной теме.

    Оригинальное сообщение
     
    Последнее редактирование модератором: 24 ноя 2014
    CY8R4Y нравится это.
  2.  
  3. Hornet

    Hornet

    Регистрация:
    1 авг 2007
    Сообщения:
    703
    Ага, вроде того . Как мне тут знающий товарищ подсказывает - работать с bool'ом (1 байт) медленнее чем с int'ом (4 или 8 байт), в силу особенности x86-архитектуры, вот компилятор и озадачен, что ты перевел бул в инт и тут же обратно и предлагает тебе дальше оперировать интом, а как приспичит, так и переведешь обратно. Хотя насчет причин могу и ошибаться...
     
    Dimouse нравится это.
  4. John Freeman

    John Freeman

    Регистрация:
    13 май 2004
    Сообщения:
    14.241
    Только вот bool не 1 байт, а 1 бит. И сколько он байт решает компилятор, как правило в C++ не заморачиваются, а делают под размер регистра CPU вроде вида x=0=>false x!=0=>true
     
    Hornet нравится это.
  5. Alex Kagansky

    Alex Kagansky

    Регистрация:
    17 дек 2007
    Сообщения:
    3.054
    Я не гуру в C++, но размер bool обычно равен 1 байту. Выяснить это легко кусочком кода "sizeof(bool)". Лично я не видел, чтобы bool был другого размера. Хотя внутри struct компилятор может что-нибудь намудрить, в целях "выравнивания".
     
  6. John Freeman

    John Freeman

    Регистрация:
    13 май 2004
    Сообщения:
    14.241
    Ну и где же ты это смотрел интересно ? Хотя бы GCC , VS разные версии сравнивал?
    К тому же на асме это совсем иначе выглядит частенько...
     
  7. Alex Kagansky

    Alex Kagansky

    Регистрация:
    17 дек 2007
    Сообщения:
    3.054
    Не, gcc не смотрел. Да и вообще специальных исследований на эту тему не проводил, но размеры фундаментальных типов в голове отложились. Вообще работал в C++Builder шестом и - немного - в Visual C++. gcc мне нафиг не нужен был, т.к. я под вин только пишу.

    Щас вот накопал немного ссылок на тему:
    Раз
    Два
    Три

    Поделись размером bool'а в gcc, если он тебе известен.
     
  8. Steel Rat Stainless

    Steel Rat

    Регистрация:
    28 дек 2006
    Сообщения:
    3.260
    В памяти bool занимает естественно не меньше одного байта. Хоть и достаточно одного бита. Примерно так. =)
     
  9. John Freeman

    John Freeman

    Регистрация:
    13 май 2004
    Сообщения:
    14.241
    Насмешили. Это уже всё изврат для 32битных компиляторов, а минимальный размер bool - немного другая тема, начиная с того что он аппаратно-зависимый и заканчивая типом ещё очень частым - longbool который обычно по размеру максимального regular регистра.
     
  10. Dimouse King of Mice

    Dimouse

    Администратор Переводчик

    Регистрация:
    18 апр 2003
    Сообщения:
    35.133
    Кто-нибудь писал программу, играющую в шахматы? Интересует сколько примерно должен думать алгоритм по альфа-бета отсечению, просчитывающий 6 полуходов на целероне 1.6 с 512 мб памяти (в среднем, и не в начале игры). И как его можно оптимизировать.
     
  11. Crusader Mike

    Crusader Mike

    Регистрация:
    25 ноя 2006
    Сообщения:
    335
    по поводу bool'а:
    - его размер implementation-defined (см стандарт 5.3.3.p1) -- т.е. как данный создатель компилятора захочет так и будет, хоть 10 байт
    - не надо впутывать сюда padding, появляющийся из-за выравнивания -- он никакого отношения ко всему этому не имеет
    - на IA-32 работать с int'ом обычно быстрее чем с байтом, поэтому виндошный BOOL не то же самое что bool... но сам bool -- 1 байт

    по поводу шахмат:
    http://www.mailcom.com/ioccc/toledo/toledo2.c
    :-)
     
  12. Dimouse King of Mice

    Dimouse

    Администратор Переводчик

    Регистрация:
    18 апр 2003
    Сообщения:
    35.133
    Это что за ужас? :) Кстати я заметил, что даже на просчете в 4 полухода, комп меня обычно обыгрывает:) (правда он пока еще и читерит, гад, типа мат королем ставит или ставит шах из-под шаха (из-за этого выиграть у него вообще практически нельзя)).
     
  13. Crusader Mike

    Crusader Mike

    Регистрация:
    25 ноя 2006
    Сообщения:
    335
    это конь перевернутый :-) типа самая короткая абсолютно правильная (с точки хрения компилятора) программа на С, играющая в шахматы.
     
  14. Alex Kagansky

    Alex Kagansky

    Регистрация:
    17 дек 2007
    Сообщения:
    3.054
  15. Dimouse King of Mice

    Dimouse

    Администратор Переводчик

    Регистрация:
    18 апр 2003
    Сообщения:
    35.133
    Alex Kagansky, у меня нифига не компилируется (Visual C 6.0)
    gcc компилит! Пример со стишком и правда впечатляет!
     
  16. Alex Kagansky

    Alex Kagansky

    Регистрация:
    17 дек 2007
    Сообщения:
    3.054
    Dimouse, настройки может какие подкрутить, если уж так принципиален Visual C++... :)

    Вот за всякие такие выкрутасы я и не люблю С/C++. Вместо чтения кода разгадываешь головоломки. :) Вроде у нас не индусы работают, а все равно нагородить могут...
     
  17. Dimouse King of Mice

    Dimouse

    Администратор Переводчик

    Регистрация:
    18 апр 2003
    Сообщения:
    35.133
    Вообще я тут недавно подумал, что единственный способ реализовать нормальный искусственный интеллект - это именно самомодифицирующийся код.
     
  18. Alex Kagansky

    Alex Kagansky

    Регистрация:
    17 дек 2007
    Сообщения:
    3.054
    Dimouse, это сгоряча. :) На самом деле эта область изучена очень слабо. Не факт, что это реально сделать в принципе.

    У меня есть вот такая книжка, весьма интересная. Могу сказать, что на сегодняшний день самомодифицирующийся код и искусственный интеллект особо не коррелируют. То есть никак. :) В этой области применяются логические и функциональные языки, экспертные системы.
     
  19. Dimouse King of Mice

    Dimouse

    Администратор Переводчик

    Регистрация:
    18 апр 2003
    Сообщения:
    35.133
    Alex Kagansky, ну да, я не совсем хорошо выразился. Не искусственный интеллект, как например игра в шахматы, а например такой, который поддерживает разговор и т.п.
     
  20. BoaKaa Oldboy

    BoaKaa

    Legacy

    Регистрация:
    6 апр 2006
    Сообщения:
    2.319
    Dimouse, года два назад я писал сетевую версию шахмат, без реализации искусственного интеллекта. Но потом натолкнулся на код ИИ для шахмат на ActionScript, если нужно могу выложить. Он довольно простой, но интересный.
     
  21. Dimouse King of Mice

    Dimouse

    Администратор Переводчик

    Регистрация:
    18 апр 2003
    Сообщения:
    35.133
    BoaKaa, у меня свой есть и он работает (меня обыгрывает), пока правда без рокировок и еще несколько вещей не доделано. Мне просто интересно на 6 полуходов сколько должен считать, может я как-то криво написал и на самом деле все должно работать быстрее. Лично у меня считает где-то минуту в среднем:(
     
  22. BoaKaa Oldboy

    BoaKaa

    Legacy

    Регистрация:
    6 апр 2006
    Сообщения:
    2.319
    Dimouse, долго считает, что-то не так написал. Ты перебор ситуаций делаешь? Или?
    Хотя нынешние серьёзные реализации от этого отошли: они, в большинстве своём, анализируют базу записей шахматных игр.
     
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление