File indexing completed on 2024-04-14 04:02:00

0001 /*
0002     SPDX-FileCopyrightText: 2006 Matthew Williams <matt@milliams.com>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #ifndef KSQUARESDEMOWINDOW_H
0008 #define KSQUARESDEMOWINDOW_H
0009 
0010 #include <KXmlGuiWindow>
0011 
0012 #include "ksquaresgame.h"
0013 
0014 class GameBoardView;
0015 class GameBoardScene;
0016 
0017 /**
0018  * @short Mainwindow class for demonstration mode
0019  *
0020  * Creates a very simple mainwindow and continuously plays 4 computer players against eachother.
0021  *
0022  * @author Matt Williams <matt@milliams.com>
0023  */
0024 
0025 class KSquaresDemoWindow : public KXmlGuiWindow
0026 {
0027     Q_OBJECT
0028 
0029 public:
0030     ///Constructor
0031     KSquaresDemoWindow();
0032 
0033 public Q_SLOTS:
0034     void gameNew();
0035 
0036 private Q_SLOTS:
0037     void aiChooseLine();
0038     void playerTakeTurn(KSquaresPlayer *currentPlayer);
0039     void gameOver(const QList<KSquaresPlayer> & /*playerList*/);
0040 
0041 private:
0042     ///The game board view
0043     GameBoardView *m_view;
0044     ///The game scene
0045     GameBoardScene *m_scene;
0046     ///The game controller
0047     KSquaresGame *sGame;
0048 };
0049 
0050 #endif // KSQUARESDEMOWINDOW_H