Summary: | Forty & Eight solver makes an illegal move. | ||
---|---|---|---|
Product: | [Applications] kpat | Reporter: | Ramon <ramonrules> |
Component: | solver | Assignee: | Ian Wadham <iandw.au> |
Status: | RESOLVED FIXED | ||
Severity: | major | CC: | coates, iandw.au, kavol, kde-games-bugs |
Priority: | NOR | ||
Version: | 3.6 | ||
Target Milestone: | --- | ||
Platform: | Ubuntu | ||
OS: | Linux | ||
Latest Commit: | https://invent.kde.org/games/kpat/commit/81b9e3eb8deabcd0faae19ca5aaa6f2a65d33365 | Version Fixed In: | |
Sentry Crash Report: | |||
Attachments: |
Solver suggest broken move in this game
broken game forty eight 1028370245 broken solver |
Description
Ramon
2012-06-18 18:11:24 UTC
Created attachment 71918 [details]
Solver suggest broken move in this game
Confirmed. In a debug build it actually causes an assertion with the following backtrace. No idea why it suggests such a move, though. Thread 1 (Thread 0x7f871da19780 (LWP 18555)): [KCrash Handler] #5 0x00007f8725503425 in raise () from /lib/x86_64-linux-gnu/libc.so.6 #6 0x00007f8725506b8b in abort () from /lib/x86_64-linux-gnu/libc.so.6 #7 0x00007f8726ba84c2 in qt_message_output(QtMsgType, char const*) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #8 0x00007f8726ba8838 in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #9 0x00007f8726ba89c4 in qFatal(char const*, ...) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #10 0x000000000041f212 in DealerScene::demo (this=0x41a4c20) at /home/coates/kde-devel/src/kpat/dealer.cpp:1645 #11 0x00000000004351dd in MainWindow::qt_metacall (this=0x2466f70, _c=QMetaObject::InvokeMetaMethod, _id=18, _a=0x7fffbb278180) at /home/coates/kde-devel/build/kpat/mainwindow.moc:141 #12 0x00007f8726cc5123 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #13 0x00007f8726050a32 in QAction::triggered(bool) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #14 0x00007f8726050c20 in QAction::activate(QAction::ActionEvent) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #15 0x00007f872641551f in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #16 0x00007f87264157cc in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #17 0x00007f87264cf99a in QToolButton::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #18 0x00007f87260a6850 in QWidget::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #19 0x00007f8726056e9c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #20 0x00007f872605bb6b in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #21 0x00007f87276ed1d6 in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5 #22 0x00007f8726caf56e in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #23 0x00007f8726057cd3 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #24 0x00007f87260d5554 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #25 0x00007f87260d444f in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #26 0x00007f87260fbfa2 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #27 0x00007f8721561ab5 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #28 0x00007f8721561de8 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #29 0x00007f8721561ea4 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #30 0x00007f8726cddbf6 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #31 0x00007f87260fbc1e in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #32 0x00007f8726cae2bf in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #33 0x00007f8726cae548 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #34 0x00007f8726cb3708 in QCoreApplication::exec() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #35 0x000000000041839b in main (argc=1, argv=0x7fffbb279998) at /home/coates/kde-devel/src/kpat/main.cpp:325 Created attachment 79951 [details]
broken game forty eight 1028370245
Created attachment 101416 [details]
broken solver
same here ...
kpat 3.6
KDE Frameworks 5.26.0
Qt 5.6.1 (built against 5.6.1)
I know how to fix this problem --- patch being prepared. There are further comments and attachments about this bug at https://bugs.kde.org/show_bug.cgi?id=290647#c5 and subsequent comments. Unfortunately we did not realize that this "illegal moves" bug is a separate bug to bug 290647 - Forty & Eight solver falsely reports "Game cannot be won". A possibly relevant merge request was started @ https://invent.kde.org/games/kpat/-/merge_requests/3 Git commit 81b9e3eb8deabcd0faae19ca5aaa6f2a65d33365 by Albert Astals Cid, on behalf of Ian Wadham. Committed on 24/07/2020 at 21:57. Pushed by aacid into branch 'release/20.08'. Fix the Forty & Eight solver making illegal moves M +8 -1 patsolve/fortyeightsolver.cpp https://invent.kde.org/games/kpat/commit/81b9e3eb8deabcd0faae19ca5aaa6f2a65d33365 |