[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: playground/games/kigo/src
From: Sascha Peilicke <sasch.pe () gmx ! de>
Date: 2009-01-22 13:20:17
Message-ID: 1232630417.233183.950.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 915068 by saschpe:
Fixed some bugs that resulted from the game codebase split
M +19 -10 game/engine.cpp
M +4 -4 game/engine.h
M +2 -2 game/move.cpp
M +4 -4 game/move.h
M +6 -0 game/player.cpp
M +4 -3 game/player.h
M +1 -1 main.cpp
--- trunk/playground/games/kigo/src/game/engine.cpp #915067:915068
@@ -31,9 +31,9 @@
Engine::Engine(QObject *parent)
: QObject(parent)
- , m_currentMove(0), m_currentPlayer(m_blackPlayer)
+ , m_currentMove(0), m_currentPlayer(&m_blackPlayer)
, m_blackPlayer(Player::Black), m_whitePlayer(Player::White)
- , m_komi(0), m_boardSize(-1), m_fixedHandicap(0), m_consecutivePassMoveNumber(0)
+ , m_komi(4.5), m_boardSize(19), m_fixedHandicap(5), m_consecutivePassMoveNumber(0)
{
connect(&m_process, SIGNAL(readyRead()), this, SLOT(readyRead()));
connect(&m_undoStack, SIGNAL(canRedoChanged(bool)), this, SIGNAL(canRedoChanged(bool)));
@@ -91,9 +91,12 @@
if (!isRunning())
return false;
+ kDebug() << "Init game!";
+
m_process.write("clear_board\n");
if (waitResponse()) {
// The board is wiped empty, start again with black player
+ kDebug() << "Set current to black:" << m_blackPlayer.toString();
setCurrentPlayer(m_blackPlayer);
m_fixedHandicap = 0;
m_consecutivePassMoveNumber = 0;
@@ -242,8 +245,10 @@
return false;
Player tmp = player;
- if (!tmp.isValid())
- tmp = m_currentPlayer;
+ if (!tmp.isValid()) {
+ //kDebug() << "Invalid player argument, using current player!";
+ tmp = *m_currentPlayer;
+ }
QByteArray msg("play "); // The command to be sent
if (tmp.isWhite())
@@ -300,8 +305,10 @@
return false;
Player tmp = player;
- if (!tmp.isValid())
- tmp = m_currentPlayer;
+ if (!tmp.isValid()) {
+ //kDebug() << "Invalid player argument, using current player!";
+ tmp = *m_currentPlayer;
+ }
if (tmp.isWhite()) {
m_process.write("level " + QByteArray::number(m_whitePlayer.strength()) + '\n');
@@ -329,7 +336,7 @@
m_consecutivePassMoveNumber++;
undoStr += i18n("pass");
} else if (m_response == "resign") {
- emit resigned(m_currentPlayer);
+ emit resigned(*m_currentPlayer);
undoStr += i18n("resign");
} else {
m_currentMove++;
@@ -632,10 +639,12 @@
m_waitAndProcessEvents = false;
}
-void Engine::setCurrentPlayer(const Player &player)
+void Engine::setCurrentPlayer(Player &player)
{
- m_currentPlayer = player;
- emit currentPlayerChanged(m_currentPlayer);
+ m_currentPlayer = &player;
+ kDebug() << "Set current player to" << m_currentPlayer->toString() << "from"
+ << player.toString();
+ emit currentPlayerChanged(*m_currentPlayer);
}
} // End of namespace Kigo
--- trunk/playground/games/kigo/src/game/engine.h #915067:915068
@@ -155,8 +155,8 @@
*/
int fixedHandicapUpperBound();
- Player ¤tPlayer() { return m_currentPlayer; }
- const Player ¤tPlayer() const { return m_currentPlayer; }
+ Player ¤tPlayer() { return *m_currentPlayer; }
+ const Player ¤tPlayer() const { return *m_currentPlayer; }
Player &whitePlayer() { return m_whitePlayer; }
const Player &whitePlayer() const { return m_whitePlayer; }
Player &blackPlayer() { return m_blackPlayer; }
@@ -289,7 +289,7 @@
void readyRead();
private:
- void setCurrentPlayer(const Player &player);
+ void setCurrentPlayer(Player &player);
QProcess m_process;
@@ -302,7 +302,7 @@
int m_currentMove;
QUndoStack m_undoStack;
- Player &m_currentPlayer;
+ Player *m_currentPlayer;
Player m_blackPlayer;
Player m_whitePlayer;
--- trunk/playground/games/kigo/src/game/move.cpp #915067:915068
@@ -24,8 +24,8 @@
namespace Kigo {
-Move::Move(const Player &player, const Stone &stone)
- : m_player((Player &)player), m_stone((Stone &)stone)
+Move::Move(Player &player, const Stone &stone)
+ : m_player(&player), m_stone(stone)
{
}
--- trunk/playground/games/kigo/src/game/move.h #915067:915068
@@ -38,19 +38,19 @@
Q_OBJECT
public:
- Move(const Player &player, const Stone &stone);
+ Move(Player &player, const Stone &stone);
Move(const Move &other);
Move &operator=(const Move &other);
- const Player &player() const { return m_player; }
+ const Player &player() const { return *m_player; }
const Stone &stone() const { return m_stone; }
bool isValid() const { return m_stone.isValid(); }
bool isPass() const { return !m_stone.isValid(); }
private:
- Player &m_player;
- Stone &m_stone;
+ Player *m_player;
+ Stone m_stone;
};
} // End of namespace Kigo
--- trunk/playground/games/kigo/src/game/player.cpp #915067:915068
@@ -60,6 +60,12 @@
}
}
+QString Player::toString() const
+{
+ return m_name + " [" + (m_color == White ? "White" : "Black") +
+ ':' + QByteArray::number(m_strength) + ']';
+}
+
} // End of namespace Kigo
#include "moc_player.cpp"
--- trunk/playground/games/kigo/src/game/player.h #915067:915068
@@ -59,14 +59,13 @@
public:
Player &operator=(const Player &other);
- bool operator==(const Player &other);
-
void setName(const QString &name) { m_name = name; }
QString name() const { return m_name; }
bool setStrength(int strength);
int strength() const { return m_strength; }
+ void setColor(Color color) { m_color = color; }
Color color() const { return m_color; }
void setType(Type type) { m_type = type; }
@@ -75,10 +74,12 @@
bool isWhite() const { return m_color == White; }
bool isBlack() const { return m_color == Black; }
bool isValid() const { return m_color != Invalid; }
-
bool isHuman() const { return m_type == Human; }
bool isComputer() const { return m_type == Computer; }
+ bool operator==(const Player &other);
+ QString toString() const;
+
private:
QString m_name;
Color m_color;
--- trunk/playground/games/kigo/src/main.cpp #915067:915068
@@ -38,7 +38,7 @@
*/
int main(int argc, char *argv[])
{
- KAboutData aboutData("kigo", 0, ki18n("Kigo"), "v0.5",
+ KAboutData aboutData("kigo", 0, ki18n("Kigo"), "v0.5.1",
ki18n("KDE Go Board Game"), KAboutData::License_GPL_V3,
ki18n("Copyright (c) 2008 Sascha Peilicke"));
aboutData.addAuthor(ki18n("Sascha Peilicke (saschpe)"), ki18n("Original author"),
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic