blob: 067b2f8880e7172a2f05ab857cd0f73c1f8eea5b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
/**********************************************************************
** Copyright (C) 2000 Trolltech AS. All rights reserved.
**
** This file is part of Qtopia Environment.
**
** This file may be distributed and/or modified under the terms of the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
** See http://www.trolltech.com/gpl/ for GPL licensing information.
**
** Contact info@trolltech.com if any conditions of this licensing are
** not clear to you.
**
** $Id$
**
**********************************************************************/
#ifndef CHESS_H
#define CHESS_H
#include <qwidget.h>
#include <qcanvas.h>
#include <qmainwindow.h>
#include <qpixmap.h>
#include <qimage.h>
#include <qstack.h>
#include <qvector.h>
#include <qpe/process.h>
#define wPawn 'P'
#define wKnight 'N'
#define wBishop 'B'
#define wRook 'R'
#define wQueen 'Q'
#define wKing 'K'
#define bPawn 'p'
#define bKnight 'n'
#define bBishop 'b'
#define bRook 'r'
#define bQueen 'q'
#define bKing 'k'
#define NONE N
#define sideWhite 0
#define sideBlack 1
class Piece:public QCanvasRectangle {
public:
Piece(QCanvas *, int);
~Piece() {
};
char type;
protected:
void drawShape(QPainter &);
};
class CraftyProcess : public Process {
public:
CraftyProcess(QObject *parent) : Process( parent ) { qDebug("CraftyProcess functions not implemented"); }
~CraftyProcess() { }
bool start() { qDebug("CraftyProcess functions not implemented"); return FALSE; }
const char *readStdout() { qDebug("CraftyProcess functions not implemented"); return "Blah"; }
void writeToStdin(const char *) { qDebug("CraftyProcess functions not implemented"); }
};
class BoardView:public QCanvasView {
Q_OBJECT public:
BoardView(QCanvas *, QWidget *, const char *);
~BoardView() {
};
protected:
void contentsMousePressEvent(QMouseEvent *);
signals:
void showMessage(const QString &);
public slots:void readStdout();
void craftyDied() {
qFatal("Crafty died unexpectedly\n");
};
void newGame();
void setTheme(QString);
void swapSides();
void undo();
void annotateGame();
private:
CraftyProcess * crafty;
QList < Piece > list;
Piece *activePiece;
void revertLastMove();
void emitErrorMessage();
void drawBackgroundImage(QPoint activeSquare);
void buildImages(QImage);
char convertToFile(int);
int convertToRank(int);
int convertFromFile(char);
int convertFromRank(int);
void decodePosition(const QString & t);
Piece *findPiece(char f, int r);
Piece *newPiece(int, char, int);
void deletePiece(Piece *);
int pieceSize;
QPixmap bg;
QImage whiteSquare, blackSquare, activeWhiteSquare, activeBlackSquare;
bool humanSide;
bool activeSide;
bool playingGame;
};
#endif
|