trolley813 / OpenFool

Open source implementation of a Fool (Durak) card game.
33 stars 6 forks source link

random doesn't work in OpenFool 0.0.9 Qt 5.5.1 win32 #50

Open artenax opened 1 year ago

artenax commented 1 year ago

Приветствую. У меня вопрос по Qt5 версии (0.0.9), я знаю, вы ее уже не разрабатываете, но может подскажете. У вас на странице релизов есть сборки для Android и Win7+ (Qt 5.8). Поскольку я пользуюсь Ubuntu 16.04 i386 (Qt 5.5.1), я скомпилировал для себя, приложение запускается, random работает. У меня нет Win7, но в вашей сборке OpenFool-0.0.9-windows.7z (Qt 5.8, Win7+), запущенной в Wine, random тоже работает. Однако я хотел сделать сборку для пользователей Windows XP (у меня есть в dualboot). Последний Qt, который ее поддерживает, это Qt 5.6. Но реально запустить оказалось только QtCreator 3.5.1 с Qt 5.5.1 на XP. Игра скомпилировалась, на XP запускается, но я заметил такую проблему. При каждом запуске игры одни и те же карты, т.е. не работает random. Я проверил в виртуальной XP - те же карты, проверил в Wine - те же карты. Так что здесь есть:

  1. либо какой-то баг, который проявляется в win32 + Qt 5.5.1 (потому что в линуксовом Qt 5.5.1 всё ok)
  2. может быть я не установил какой-то SDK перед сборкой

Я нашел упоминание random в файле carddeck.cpp. Это #include <random>, CryptAcquireContextW и CryptGenRandom. Это майкрософтовские функции, которые поддерживаются в XP и Wine, но почему-то не срабатывают у меня. Не срабатывают именно в сборке win32 + Qt 5.5.1. Причем, и в Wine. Не подскажете в чем причина и как исправить, чтобы random работал?

Я знаю, конечно, Qt5 версия недоделана. Там, например, нельзя менять количество игроков. В моей сборке почему-то не применяется локализация (это мелочи). Но игра мне понравилась. И хотя я пользуюсь в основном Linux, где всё ok, я бы хотел также чтобы XP версия (Qt5.5-5.6) нормально работала. Может быть икспишникам понравится.

trolley813 commented 1 year ago

Здравствуйте! А каким компилятором вы пользуетесь?

artenax commented 1 year ago

Приветствую. На XP я пользуюсь компилятором из состава Qt 5.5.1 bundle: mingw 4.9.2 (i686-posix-dwarf-rev1, Built by MinGW-W64 project), (C) 2014

В Ubuntu 16.04 (где random работает): gcc 5.4.0 (20160609, Ubuntu), (C) 2015

artenax commented 1 year ago

Попровал подменить на версию 5.4.0, но не получилось. Собирается, но не запускается. Виндовый Qt5 привязан к версии mingw, с которой он поставляется.

trolley813 commented 1 year ago

Да, вероятно, версия 4.9.2 очень старая, там еще толком не поддерживается стандарт С++11. Возможно, дело связано с этим