/* VierGewinnt - A simple 4-in-a-row network game * * Copyright (c) 2008 by Sebastian Lohff, seba@seba-geek.de * http://www.seba-geek.de * * This file is part of VierGewinnt. * * VierGewinnt is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 2 of the License, or * (at your option) any later version. * * VierGewinnt is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with VierGewinnt. If not, see . */ #ifndef __VIERGEWINNT_H #define __VIERGEWINNT_H #include #include #include #include #include #include #include #include #include #include #include #include "newgame.h" #include "playerwait.h" class RenderArea; class VierGewinntWidget : public QDialog { Q_OBJECT public: VierGewinntWidget(QTcpSocket *tcpsock, QWidget *parent); ~VierGewinntWidget(); enum Stein {n=0, x, o}; void init(int _x, int _y); void startGame(); void add(int row, Stein st); void cleanFeld(); void setScore(int a, int b); // called by networkstuff void setTurn(bool _myturn); void clientExited(); void ackAdd(bool valid); void ackNewGame(); void newGame(bool won); private slots: void closeGame(); void netAdd(int row); private: void dealloc(); int fx, fy; Stein **feld; QTcpSocket *mysock; bool myturn; std::queue pendingadd; // guistuff QVBoxLayout *layout; QHBoxLayout *upperrow; QHBoxLayout *underrow; PlayerWaitDialog *waitforplayer; NewGameDialog *newgame; QLabel *status; RenderArea *rarea; QLCDNumber *myscore; QLabel *vs; QLCDNumber *youscore; QPushButton *exit; }; #endif