From 39c3cde25eeef8257cf004327012eb52dac44d9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20B=C3=BChler?= Date: Fri, 23 Jan 2009 18:19:28 +0100 Subject: [PATCH] Async ai + option dialog + board background --- .gitignore | 1 + media/board1_dark.png | Bin 0 -> 581 bytes media/board1_white.png | Bin 0 -> 581 bytes media/board2_dark.png | Bin 0 -> 94659 bytes media/board2_white.png | Bin 0 -> 54347 bytes src/ai.cpp | 30 +++++----- src/ai.h | 1 + src/field2d.cpp | 4 +- src/field3d.cpp | 4 +- src/media.qrc | 4 ++ src/optiondlg.cpp | 81 +++++++++++++++++++++++++++ src/optiondlg.h | 54 ++++++++++++++++++ src/optiondlg.ui | 123 +++++++++++++++++++++++++++++++++++++++++ src/piecelibrary.cpp | 7 +++ src/piecelibrary.h | 4 +- src/src.pro | 8 ++- src/testgame.cpp | 109 ++++++++---------------------------- src/testgame.h | 48 ++-------------- src/toruschess.cpp | 93 ++++++++++++++++++++++++++++++- src/toruschess.h | 52 +++++++++++++++-- toruschess.kdevelop | 10 ++-- 21 files changed, 474 insertions(+), 159 deletions(-) create mode 100644 media/board1_dark.png create mode 100644 media/board1_white.png create mode 100644 media/board2_dark.png create mode 100644 media/board2_white.png create mode 100644 src/optiondlg.cpp create mode 100644 src/optiondlg.h create mode 100644 src/optiondlg.ui diff --git a/.gitignore b/.gitignore index ff7d583..da9cdbe 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ toruschess.kdevses *.o moc_* qrc_* +ui_* diff --git a/media/board1_dark.png b/media/board1_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..9578ad1fea5d141888e747fd561d56ae69b484e3 GIT binary patch literal 581 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58911L)MWvCLlCbx$lZxy-8q?;K=yx67srr_ zTW>Er3NjdQ9N1u3+~F+SSFyO!#p%6N?9T_Q^cmS0m>U=mFeES-Fi0@)Fi@LI8&i?o pi^QafPpBOr81AJ-s6#BtVU}=ZUL0M+;s{I^44$rjF6*2UngFw^Tv7l4 literal 0 HcmV?d00001 diff --git a/media/board1_white.png b/media/board1_white.png new file mode 100644 index 0000000000000000000000000000000000000000..ea03fa691356f2f0945e4606a9c20f3bad900364 GIT binary patch literal 581 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58911L)MWvCLlCbx$lZxy-8q?;K=yx67srr_ zTW>Er3NjdQ9N1v^Uur^&YQ^G47pM19u|FTI(r092U~XVMz>vUTz#zfE!$55=ZA?XS qFA|d`KB0DiV7QkSp$@Smhnev(OLlU^s*k{Q!QkoY=d#Wzp$Pz+hh8NB literal 0 HcmV?d00001 diff --git a/media/board2_dark.png b/media/board2_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..b7075e6ebec433facbd6540d02cd8b13c414dbe8 GIT binary patch literal 94659 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 { @@ -73,16 +87,6 @@ namespace toruschess { } Field field = *game->field(); - int balance = 0; - for (int x = 0; x < 8; x++) - for (int y = 0; y < 8; y++) { - Pos p(x,y); - balance += field.player(p) * piece_value[field.piece(p)]; - } - - Move move; - minimax(field, balance, curp, 2, &move); - - return move; + return getMove(field, curp, 2); } } diff --git a/src/ai.h b/src/ai.h index 42e473d..f0a058e 100644 --- a/src/ai.h +++ b/src/ai.h @@ -28,6 +28,7 @@ namespace toruschess { class ai{ public: + static Move getMove(Field &field, Player curp, int depth); static Move getMove(const Game *game); }; } diff --git a/src/field2d.cpp b/src/field2d.cpp index 6fd83bc..0123b29 100644 --- a/src/field2d.cpp +++ b/src/field2d.cpp @@ -131,11 +131,9 @@ namespace toruschess { for (int y = 0; y < 8; y++) { bool marked = m_marked[x][y]; int place = m_game->field()->place(Pos(x, y)); - /* #D18B47 for dark, #FFCE9E for white */ - QBrush fieldBG = ((x+y) % 2 == 1) ? QBrush(QColor(0xD1, 0x8B, 0x47)) : QBrush(QColor(0xFF, 0xCE, 0x9E)); QRect prect(x * pieceWidth, y * pieceHeight, pieceWidth - 1, pieceHeight - 1); - pt.fillRect(prect, fieldBG); + m_lib->paint_board(pt, (x+y) % 2 == 1, prect); m_lib->paint(pt, place, prect); if (marked) { int r = qMax(1, (pieceWidth + pieceHeight) / 36); diff --git a/src/field3d.cpp b/src/field3d.cpp index 1da54bd..2c0bccd 100644 --- a/src/field3d.cpp +++ b/src/field3d.cpp @@ -169,11 +169,9 @@ namespace toruschess { for (int y = 0; y < 8; y++) { bool marked = m_marked[x][y]; int place = m_game->field()->place(Pos(x, y)); - /* #D18B47 for dark, #FFCE9E for white */ - QBrush fieldBG = ((x+y) % 2 == 1) ? QBrush(QColor(0xD1, 0x8B, 0x47)) : QBrush(QColor(0xFF, 0xCE, 0x9E)); QRect prect(x * pieceSize, y * pieceSize, pieceSize - 1, pieceSize - 1); - pt.fillRect(prect, fieldBG); + m_lib->paint_board(pt, (x+y) % 2 == 1, prect); m_lib->paint(pt, place, prect); if (marked) { int r = qMax(1, (pieceSize + pieceSize) / 36); diff --git a/src/media.qrc b/src/media.qrc index 0c94b0b..d27351a 100644 --- a/src/media.qrc +++ b/src/media.qrc @@ -13,5 +13,9 @@ ../media/Chess_qdt45.svg ../media/Chess_kdt45.svg ../media/pawn.3ds + ../media/board1_dark.png + ../media/board1_white.png + ../media/board2_dark.png + ../media/board2_white.png diff --git a/src/optiondlg.cpp b/src/optiondlg.cpp new file mode 100644 index 0000000..00322c0 --- /dev/null +++ b/src/optiondlg.cpp @@ -0,0 +1,81 @@ +/*************************************************************************** + * Copyright (C) 2009 by Stefan Bühler * + * stbuehler@web.de * + * * + * This program 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. * + * * + * This program 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 this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ +#include "optiondlg.h" +#include + +namespace toruschess { + + OptionDlg::OptionDlg(Game *game, QWidget *parent) + : QDialog(parent), m_game(game) { + m_curMode = m_game->gameMode(); + m_curAIStrength = m_game->aiStrength(); + setupUi(this); + + m_bgMode = new QButtonGroup(this); + m_bgMode->addButton(rb_mode1, HUMAN_HUMAN); + m_bgMode->addButton(rb_mode2, HUMAN_COMPUTER); + m_bgMode->addButton(rb_mode3, COMPUTER_HUMAN); + m_bgMode->addButton(rb_mode4, COMPUTER_COMPUTER); + + dlgReset(); + + connect(m_game, SIGNAL(changedMode(GameMode)), this, SLOT(gameChangedMode(GameMode))); + connect(m_game, SIGNAL(changedAIStrength(int)), this, SLOT(gameChangedAIStrength(int))); + + connect(this, SIGNAL(accepted()), this, SLOT(dlgAccept())); + connect(this, SIGNAL(rejected()), this, SLOT(dlgReset())); + + connect(buttonBox, SIGNAL(accepted()), this, SLOT(accept())); + connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject())); + + connect(buttonBox->button(QDialogButtonBox::Reset), SIGNAL(clicked()), this, SLOT(dlgReset())); + } + + void OptionDlg::gameChangedMode(GameMode mode) { + if (m_curMode != mode) { + if (m_bgMode->checkedId() == m_curMode) { + m_bgMode->button(mode)->setChecked(true); + } + m_curMode = mode; + } + } + + void OptionDlg::gameChangedAIStrength(int aiStrength) { + if (m_curAIStrength != aiStrength) { + if (sb_aiStrength->value() == m_curAIStrength) { + sb_aiStrength->setValue(aiStrength); + } + m_curAIStrength = aiStrength; + } + } + + void OptionDlg::dlgReset() { + sb_aiStrength->setValue(m_curAIStrength); + m_bgMode->button(m_curMode)->setChecked(true); + } + + void OptionDlg::dlgAccept() { + m_curAIStrength = sb_aiStrength->value(); + m_game->setAiStrength(m_curAIStrength); + m_curMode = (GameMode) m_bgMode->checkedId(); + m_game->setGameMode(m_curMode); + } + +} diff --git a/src/optiondlg.h b/src/optiondlg.h new file mode 100644 index 0000000..642f3f8 --- /dev/null +++ b/src/optiondlg.h @@ -0,0 +1,54 @@ +/*************************************************************************** + * Copyright (C) 2009 by Stefan Bühler * + * stbuehler@web.de * + * * + * This program 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. * + * * + * This program 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 this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ +#ifndef TORUSCHESSOPTIONDLG_H +#define TORUSCHESSOPTIONDLG_H + +#include +#include +#include "ui_optiondlg.h" + +#include "toruschess.h" + +/** + @author Stefan Bühler +*/ +namespace toruschess { + class OptionDlg : public QDialog, private Ui::OptionDlg { + Q_OBJECT + public: + OptionDlg(Game *game, QWidget *parent = 0); + + private slots: + void gameChangedMode(GameMode mode); + void gameChangedAIStrength(int aiStrength); + + void dlgReset(); + void dlgAccept(); + + private: + Game *m_game; + GameMode m_curMode; + int m_curAIStrength; + QButtonGroup *m_bgMode; + }; + +} + +#endif diff --git a/src/optiondlg.ui b/src/optiondlg.ui new file mode 100644 index 0000000..919d64a --- /dev/null +++ b/src/optiondlg.ui @@ -0,0 +1,123 @@ + + OptionDlg + + + Qt::ApplicationModal + + + + 0 + 0 + 373 + 227 + + + + Options + + + + + + Opponent + + + + + + Human vs. Human + + + + + + + Human vs. Computer + + + + + + + Computer vs. Human + + + + + + + Computer vs. Computer + + + + + + + QLayout::SetMinimumSize + + + + + + 0 + 0 + + + + Computer strength (recursion depth) + + + sb_aiStrength + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 2 + + + 7 + + + + + + + + + + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok|QDialogButtonBox::Reset + + + + + + + rb_mode1 + rb_mode2 + rb_mode3 + rb_mode4 + sb_aiStrength + + + + diff --git a/src/piecelibrary.cpp b/src/piecelibrary.cpp index 3f73328..05a92be 100644 --- a/src/piecelibrary.cpp +++ b/src/piecelibrary.cpp @@ -133,6 +133,9 @@ typedef size_t (*Lib3dsIoWriteFunc)(void *self, const void *buffer, size_t size) PieceLibrary::PieceLibrary(QObject *parent) : QObject(parent), m_pieces(0), m_buffers(0) { + m_board = new QImage*[2]; + m_board[0] = new QImage(":/media/board2_white.png"); + m_board[1] = new QImage(":/media/board2_dark.png"); m_pawn = read_3ds(loadResource(":/media/pawn.3ds")); setSize(45, 45); } @@ -141,6 +144,7 @@ typedef size_t (*Lib3dsIoWriteFunc)(void *self, const void *buffer, size_t size) if (m_pawn) lib3ds_file_free(m_pawn); delete [] m_pieces; delete [] m_buffers; + delete [] m_board; } void PieceLibrary::setSize(int width, int height) { @@ -179,6 +183,9 @@ typedef size_t (*Lib3dsIoWriteFunc)(void *self, const void *buffer, size_t size) pt.drawImage(rect, *m_buffers[place-1]); } + void PieceLibrary::paint_board(QPainter &pt, bool darkField, const QRect &rect) const { + pt.drawImage(rect, *m_board[darkField ? 1 : 0]); + } void PieceLibrary::paint_pawn() { glEnableClientState(GL_VERTEX_ARRAY); diff --git a/src/piecelibrary.h b/src/piecelibrary.h index b78e535..ff0ba8b 100644 --- a/src/piecelibrary.h +++ b/src/piecelibrary.h @@ -42,11 +42,13 @@ namespace toruschess { void paint(QPainter &pt, int place) const; void paint(QPainter &pt, int place, const QRect &rect) const; + void paint_board(QPainter &pt, bool darkField, const QRect &rect) const; + void paint_pawn(); private: QSvgRenderer **m_pieces; - QImage **m_buffers; + QImage **m_buffers, **m_board; int m_width, m_height; Lib3dsFile *m_pawn; diff --git a/src/src.pro b/src/src.pro index 649ccc0..d75dcd5 100644 --- a/src/src.pro +++ b/src/src.pro @@ -4,7 +4,8 @@ SOURCES += main.cpp \ field2d.cpp \ piecelibrary.cpp \ field3d.cpp \ - ai.cpp + ai.cpp \ + optiondlg.cpp TEMPLATE = app CONFIG += warn_on \ thread \ @@ -22,7 +23,8 @@ toruschess.h \ field2d.h \ piecelibrary.h \ field3d.h \ - ai.h + ai.h \ + optiondlg.h LIBS += -l3ds @@ -30,3 +32,5 @@ QMAKE_CXXFLAGS_RELEASE += -g CONFIG -= release +FORMS += optiondlg.ui + diff --git a/src/testgame.cpp b/src/testgame.cpp index 7edf560..55e3db8 100644 --- a/src/testgame.cpp +++ b/src/testgame.cpp @@ -25,6 +25,9 @@ #include #include +#include +#include + #include "field2d.h" #include "field3d.h" @@ -32,89 +35,7 @@ namespace toruschess { - TestPlace::TestPlace(QWidget *parent, const PieceLibrary *lib, const Field *field, const Pos &p) - : QWidget(parent), m_field(field), m_lib(lib), m_pos(p), m_mark(false) { - setMinimumSize(m_lib->minPieceSize()); - } - - QSize TestPlace::sizeHint() const { - return m_lib->pieceSize(); - } - - void TestPlace::paintEvent(QPaintEvent *) { - QPainter pt(this); - int pl = m_field->place(m_pos); - if ((m_pos.x() + m_pos.y()) % 2) { - // #D18B47 - pt.fillRect(rect(), QBrush(QColor(0xD1, 0x8B, 0x47))); - } else { - // #FFCE9E - pt.fillRect(rect(), QBrush(QColor(0xFF, 0xCE, 0x9E))); - } - m_lib->paint(pt, pl); - if (m_mark) { - int r = qMax(1, (rect().width() + rect().height()) / 36); - pt.setBrush(pl != 0 ? Qt::green : Qt::white); - pt.setPen(Qt::red); - pt.drawEllipse(QPoint(rect().width() / 2, rect().height() / 2), r, r); - } - } - - TestField::TestField(QWidget *parent, PieceLibrary *lib, Game *game) : QWidget(parent), m_lib(lib), m_game(game) { - QGridLayout *layout = new QGridLayout(); - for (int y = 0; y < 8; y++) { - for (int x = 0; x < 8; x++) { - m_places[x][y] = new TestPlace(this, m_lib, m_game->field(), Pos(x, y)); - layout->addWidget(m_places[x][y], y, x); - } - } - layout->setSpacing(0); - setLayout(layout); - show(); - } - - void TestField::markMoves(const QList &moves) { - foreach(Move m, m_marked) m_places[m.to().x()][m.to().y()]->hideMark(); - m_marked = moves; - foreach(Move m, m_marked) m_places[m.to().x()][m.to().y()]->showMark(); - update(); - } - - void TestField::resizeEvent(QResizeEvent *event) { - m_lib->setSize(event->size().width()/8, event->size().height()/8); - } - - void TestField::mousePressEvent(QMouseEvent *event) { - if (event->button() == Qt::LeftButton) { - QList moves; - int x = (event->x() * 8) / width(); - int y = (event->y() * 8) / height(); - if (x < 0 || x >= 8 || y < 0 || y >= 8) { - markMoves(moves); - } else { - moves = m_game->field()->validMoves(Pos(x, y)); - markMoves(moves); - } - } - } - - void TestField::mouseReleaseEvent(QMouseEvent *event) { - if (event->button() == Qt::LeftButton) { - if (m_marked.size() == 0) return; - Pos from = m_marked[0].from(); - QList moves; - markMoves(QList()); - int x = (event->x() * 8) / width(); - int y = (event->y() * 8) / height(); - if (x < 0 || x >= 8 || y < 0 || y >= 8) { - return; - } - Move m(m_game->field(), from, Pos(x, y)); - m_game->move(m); - } - } - - TestGame::TestGame(QWidget *parent) : QMainWindow(parent), m_game(new Game()) { + TestGame::TestGame(QWidget *parent) : QMainWindow(parent), m_game(new Game()), m_optionDlg(new OptionDlg(m_game, this)) { setWindowTitle("Torus Chess"); // PieceLibrary *lib = new PieceLibrary(this); // setCentralWidget(new TestField(this, lib, m_game)); @@ -123,16 +44,34 @@ namespace toruschess { connect(m_game, SIGNAL(updated()), this, SLOT(gameUpdated())); connect(m_game, SIGNAL(changed(GameState)), this, SLOT(gameChanged(GameState))); m_game->restart(); + + QMenuBar *menuBar = new QMenuBar(this); + QMenu *menuGame = menuBar->addMenu("Game"); + menuGame->addAction("New Game", this, SLOT(menuRestart())); + menuGame->addAction("Options", this, SLOT(menuOptions())); + menuGame->addSeparator(); + menuGame->addAction("Quit", this, SLOT(close())); + setMenuBar(menuBar); + } void TestGame::gameUpdated() { - if (m_game->state() == TURN_BLACK) { +/* if (m_game->state() == TURN_BLACK) { Move m = ai::getMove(m_game); if (m.valid()) m_game->move(m); - } + }*/ } void TestGame::gameChanged(GameState state) { statusBar()->showMessage(state2string(state)); } + + void TestGame::menuRestart() { + m_game->restart(); + } + + void TestGame::menuOptions() { + m_optionDlg->exec(); + } + } diff --git a/src/testgame.h b/src/testgame.h index e5deed6..5181966 100644 --- a/src/testgame.h +++ b/src/testgame.h @@ -28,53 +28,13 @@ #include "toruschess.h" #include "piecelibrary.h" +#include "optiondlg.h" + /** @author Stefan Bühler */ namespace toruschess { - class TestPlace : public QWidget { - Q_OBJECT - public: - TestPlace(QWidget *parent, const PieceLibrary *lib, const Field *field, const Pos &p); - - const Pos& pos() const { return m_pos; } - const Field* field() const { return m_field; } - - virtual QSize sizeHint() const; - - void showMark() { m_mark = true; update(); } - void hideMark() { m_mark = false; update(); } - - protected: - virtual void paintEvent(QPaintEvent *event); - - private: - const Field *m_field; - const PieceLibrary *m_lib; - Pos m_pos; - bool m_mark; - }; - - class TestField : public QWidget { - Q_OBJECT - public: - TestField(QWidget *parent, PieceLibrary *lib, Game *m_game); - - void markMoves(const QList &moves); - - protected: - virtual void resizeEvent(QResizeEvent *event); - virtual void mousePressEvent(QMouseEvent *event); - virtual void mouseReleaseEvent(QMouseEvent *event); - - private: - PieceLibrary *m_lib; - Game *m_game; - TestPlace* m_places[8][8]; - QList m_marked; - }; - class TestGame : public QMainWindow { Q_OBJECT public: @@ -83,9 +43,13 @@ namespace toruschess { private slots: void gameUpdated(); void gameChanged(GameState state); + + void menuRestart(); + void menuOptions(); private: Game *m_game; + OptionDlg *m_optionDlg; }; } diff --git a/src/toruschess.cpp b/src/toruschess.cpp index 12d9199..a600989 100644 --- a/src/toruschess.cpp +++ b/src/toruschess.cpp @@ -18,9 +18,18 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ #include "toruschess.h" +#include "ai.h" namespace toruschess { + static void init() { + static bool done = FALSE; + if (done) return; + done = TRUE; + qRegisterMetaType("Move"); + qRegisterMetaType("Pos"); + } + QString state2string(GameState state) { switch (state) { case TURN_WHITE: return "White's turn"; @@ -318,13 +327,16 @@ namespace toruschess { } Game::Game(QObject *parent) - : QObject(parent), m_field(new Field()), m_state(TURN_WHITE) { } + : QObject(parent), m_field(new Field()), m_state(TURN_WHITE), m_gameMode(HUMAN_COMPUTER), m_aiStrength(2), m_aiThread(0) { + init(); + } Game::~Game() { delete m_field; } bool Game::move(const Move &m) { + if (m_aiThread) return false; if (!m.valid()) return false; switch (m_state) { case TURN_WHITE: @@ -357,6 +369,7 @@ namespace toruschess { } } } + checkAI(); emit moved(m); emit changed(m_state); emit updated(); @@ -368,6 +381,7 @@ namespace toruschess { void Game::restart() { m_state = TURN_WHITE; m_field->reset(); + checkAI(); emit changed(m_state); emit started(); emit updated(); @@ -393,4 +407,81 @@ namespace toruschess { } return moves; } + + void Game::setGameMode(GameMode gm) { + m_gameMode = gm; + checkAI(); + emit changedMode(m_gameMode); + } + + void Game::setAiStrength(int s) { + m_aiStrength = qMin(7, qMax(2, s)); + emit changedAIStrength(m_aiStrength); + } + + void Game::checkAI() { + if (m_aiThread) { + switch (m_gameMode) { + case HUMAN_HUMAN: + m_ignoreAI = true; + break; + case HUMAN_COMPUTER: + if (m_state != TURN_BLACK) m_ignoreAI = true; + break; + case COMPUTER_HUMAN: + if (m_state != TURN_WHITE) m_ignoreAI = true; + break; + case COMPUTER_COMPUTER: + break; + } + } else { + Player curp = NOPLAYER; + switch (m_state) { + case TURN_WHITE: + curp = WHITE; + break; + case TURN_BLACK: + curp = BLACK; + break; + default: + return; + } + switch (m_gameMode) { + case HUMAN_HUMAN: + return; + case HUMAN_COMPUTER: + if (m_state != TURN_BLACK) return; + break; + case COMPUTER_HUMAN: + if (m_state != TURN_WHITE) return; + break; + case COMPUTER_COMPUTER: + break; + } + m_aiThread = new GameAIThread(*m_field, curp, m_aiStrength, this); + m_ignoreAI = false; + connect(m_aiThread, SIGNAL(aiFinished(Move)), this, SLOT(finishedAI(Move))); + m_aiThread->start(); + } + } + + void Game::finishedAI(Move m) { + m_aiThread->wait(); + delete m_aiThread; + m_aiThread = 0; + if (!m_ignoreAI) { + move(m); + } + checkAI(); + } + + GameAIThread::GameAIThread(const Field &field, Player curp, int depth, QObject *parent) + : QThread(parent), m_field(field), m_curp(curp), m_depth(depth) { + } + + void GameAIThread::run() { + Move m = ai::getMove(m_field, m_curp, m_depth); + emit aiFinished(m); + } + } diff --git a/src/toruschess.h b/src/toruschess.h index 23012d0..c74df18 100644 --- a/src/toruschess.h +++ b/src/toruschess.h @@ -22,6 +22,8 @@ #include #include +#include +#include /** @author Stefan Bühler @@ -31,10 +33,12 @@ namespace toruschess { class Pos; class Field; class Game; - + class GameAIThread; + typedef enum { BLACK = -1, NOPLAYER = 0, WHITE = 1 } Player; typedef enum { NOPIECE = 0, PAWN = 1, KNIGHT = 2, BISHOP = 3, ROOK = 4, QUEEN = 5, KING = 6 } Piece; typedef enum { TURN_WHITE, TURN_BLACK, WON_WHITE, WON_BLACK, DRAW } GameState; + typedef enum { HUMAN_HUMAN, HUMAN_COMPUTER, COMPUTER_HUMAN, COMPUTER_COMPUTER } GameMode; inline Player place2player(int place) { return (place < 0) ? BLACK : (place > 0) ? WHITE : NOPLAYER; @@ -49,7 +53,7 @@ namespace toruschess { class Pos { public: Pos() : m_x(0), m_y(0) { } - Pos(int x, int y) : m_x(x % 8), m_y(y % 8) { } + Pos(int x, int y) : m_x(x & 7), m_y(y & 7) { } int x() const { return m_x; } int y() const { return m_y; } @@ -132,19 +136,59 @@ namespace toruschess { QList possibleMoves() const; + GameMode gameMode() const { return m_gameMode; } + void setGameMode(GameMode gm); + + int aiStrength() const { return m_aiStrength; } + void setAiStrength(int s); + signals: void moved(Move m); void updated(); void undone(Move m); void changed(GameState state); void started(); - + + void changedMode(GameMode mode); + void changedAIStrength(int aiStrength); + + private slots: + void finishedAI(Move m); + private: + + void checkAI(); + Field *m_field; GameState m_state; - + GameMode m_gameMode; + int m_aiStrength; + QList m_moves; + + GameAIThread *m_aiThread; + bool m_ignoreAI; }; + + class GameAIThread : public QThread { + Q_OBJECT + public: + GameAIThread(const Field &field, Player curp, int depth, QObject *parent = 0); + + void run(); + + signals: + void aiFinished(Move m); + + private: + Field m_field; + Player m_curp; + int m_depth; + }; + } +Q_DECLARE_METATYPE(toruschess::Move) +Q_DECLARE_METATYPE(toruschess::Pos) + #endif diff --git a/toruschess.kdevelop b/toruschess.kdevelop index e2f6c5e..38354f5 100644 --- a/toruschess.kdevelop +++ b/toruschess.kdevelop @@ -144,7 +144,7 @@ executable - /home/stefan/studium/7. semester/fapra_vis/src/toruschess + /home/stefan/develop/toruschess false false false @@ -152,13 +152,13 @@ false - + - /home/stefan/studium/7. semester/fapra_vis/src/toruschess/.. + /home/stefan/develop/toruschess - + @@ -213,7 +213,7 @@ 0.1 2009 - /home/stefan/studium/7. semester/fapra_vis/src/toruschess + /home/stefan/develop/toruschess