• Skip to content
  • Skip to link menu
KDE 4.2 API Reference
  • KDE API Reference
  • API Reference
  • Sitemap
  • Contact Us
 

ksquares

KSquaresGame Class Reference

#include <ksquaresgame.h>

Inheritance diagram for KSquaresGame:

Inheritance graph
[legend]

List of all members.


Detailed Description

The game controller.

Keeps charge of the game. Everything you'd expect really.

  • Create one instance of this class which will last the whole time the program is running.

  • In order to start a (new) game just call createGame() with the appropriate arguments.

  • Once the game is started, play passes to the first player. takeTurnSig() will be emitted to allow you to chose how the go should be taken (AI controller or 'click' from a View).

  • However the turn is taken, to make the move, the addLineToIndex() function must be called. This will emit the drawLine() signal to allow you to draw the line on the board with the correct colours.

  • If the player completed a square, drawSquare() will then be emitted to allow you to draw the completed square with the correct colour.

  • If the player gets another go, takeTurnSig() will be emitted again. If not, play will pass to the next player and takeTurnSig() will be emitted for them.

  • If a player completes the scoreboard, gameOver() will be emitted with the full list of players to allow you to construct a score board.

  • All variables will remain in the state they were at the end of the game until createGame() is called again.

Author:
Matt Williams <matt@milliams.com>

Definition at line 44 of file ksquaresgame.h.


Public Slots

void addLineToIndex (int index)

Signals

void drawLine (int, QColor)
void drawSquare (int, QColor)
void gameOver (const QVector< KSquaresPlayer > &)
void highlightMove (int)
void takeTurnSig (KSquaresPlayer *)

Public Member Functions

int boardHeight () const
int boardWidth () const
void createGame (const QVector< KSquaresPlayer > &startPlayers, int startWidth, int startHeight)
KSquaresPlayer * currentPlayer ()
int currentPlayerId () const
 KSquaresGame ()
QList< bool > lines () const
QList< int > squares () const
void start ()
void stop ()
void switchPlayer ()
 ~KSquaresGame ()

Protected Member Functions

void checkForNewSquares ()
int nextPlayer ()
void playerSquareComplete (int index)
void resetEverything ()
void tryEndGo ()

Protected Attributes

bool anotherGo
bool gameInProgress
int height
int i_currentPlayerId
int lastLine
QList< bool > lineList
int numOfPlayers
QVector< KSquaresPlayer > players
QList< int > squareOwnerTable
int width

Constructor & Destructor Documentation

KSquaresGame::KSquaresGame (  ) 

Constructor.

Definition at line 19 of file ksquaresgame.cpp.

KSquaresGame::~KSquaresGame (  ) 

Definition at line 25 of file ksquaresgame.cpp.


Member Function Documentation

void KSquaresGame::addLineToIndex ( int  index  )  [slot]

Parameters:
index the index of the line to add

Definition at line 144 of file ksquaresgame.cpp.

int KSquaresGame::boardHeight (  )  const [inline]

Returns:
the height of the game board

Definition at line 98 of file ksquaresgame.h.

int KSquaresGame::boardWidth (  )  const [inline]

Returns:
the width of the game board

Definition at line 94 of file ksquaresgame.h.

void KSquaresGame::checkForNewSquares (  )  [protected]

Scans the board to see if any new squares were completed.

Definition at line 161 of file ksquaresgame.cpp.

void KSquaresGame::createGame ( const QVector< KSquaresPlayer > &  startPlayers,
int  startWidth,
int  startHeight 
)

Create a new game.

Parameters:
startPlayers liat of the players in the game
startWidth the width of the game board
startHeight the height of the game board

Definition at line 31 of file ksquaresgame.cpp.

KSquaresPlayer* KSquaresGame::currentPlayer (  )  [inline]

Returns:
the current player

Definition at line 80 of file ksquaresgame.h.

int KSquaresGame::currentPlayerId (  )  const [inline]

Returns:
the id of the current player.

0 >= id < number of players

Definition at line 76 of file ksquaresgame.h.

void KSquaresGame::drawLine ( int  ,
QColor   
) [signal]

Emits the index and colour of the line.

void KSquaresGame::drawSquare ( int  ,
QColor   
) [signal]

Emits the index and colour of the square.

void KSquaresGame::gameOver ( const QVector< KSquaresPlayer > &   )  [signal]

emitted when the game board is completed. Allows you to construct a scoreboard

void KSquaresGame::highlightMove ( int   )  [signal]

Emitted when the last move in a series is played by the AI.

QList<bool> KSquaresGame::lines (  )  const [inline]

Returns:
the list of lines

Definition at line 90 of file ksquaresgame.h.

int KSquaresGame::nextPlayer (  )  [protected]

Moves play control to the next player, looping round when necessary.

Returns:
the Id of the player who's turn just started

Definition at line 63 of file ksquaresgame.cpp.

void KSquaresGame::playerSquareComplete ( int  index  )  [protected]

A player completed a square.

Emits the lineDrawn() signal. Checks to see if the game is over.

Parameters:
index the index of the square which was completed

Definition at line 82 of file ksquaresgame.cpp.

void KSquaresGame::resetEverything (  )  [protected]

Sets lots of things to zero, clears lists etc.

Definition at line 129 of file ksquaresgame.cpp.

QList<int> KSquaresGame::squares (  )  const [inline]

Returns:
the table of currently owned squares

Definition at line 86 of file ksquaresgame.h.

void KSquaresGame::start (  )  [inline]

Starts the game.

Definition at line 64 of file ksquaresgame.h.

void KSquaresGame::stop (  )  [inline]

Stops the game.

Definition at line 68 of file ksquaresgame.h.

void KSquaresGame::switchPlayer (  ) 

Externally determined player switch, for network game.

Definition at line 57 of file ksquaresgame.cpp.

void KSquaresGame::takeTurnSig ( KSquaresPlayer *   )  [signal]

A player's turn has started. This allows you to use AI/networking etc.

void KSquaresGame::tryEndGo (  )  [protected]

A line was drawn, see if the player gets another go.

Definition at line 105 of file ksquaresgame.cpp.


Member Data Documentation

bool KSquaresGame::anotherGo [protected]

Should the current player have another go.

Definition at line 147 of file ksquaresgame.h.

bool KSquaresGame::gameInProgress [protected]

is there currently a game in progress

Definition at line 149 of file ksquaresgame.h.

int KSquaresGame::height [protected]

Height of the game board.

Definition at line 133 of file ksquaresgame.h.

int KSquaresGame::i_currentPlayerId [protected]

Id of the current player.

Definition at line 145 of file ksquaresgame.h.

int KSquaresGame::lastLine [protected]

last line added

Definition at line 151 of file ksquaresgame.h.

QList<bool> KSquaresGame::lineList [protected]

List of the lines and whether they're drawn.

Definition at line 137 of file ksquaresgame.h.

int KSquaresGame::numOfPlayers [protected]

Number of players in this game.

Definition at line 129 of file ksquaresgame.h.

QVector<KSquaresPlayer> KSquaresGame::players [protected]

List of all the players in the game.

Definition at line 141 of file ksquaresgame.h.

QList<int> KSquaresGame::squareOwnerTable [protected]

List of the squares and their owners.

Definition at line 135 of file ksquaresgame.h.

int KSquaresGame::width [protected]

Width of the game board.

Definition at line 131 of file ksquaresgame.h.


The documentation for this class was generated from the following files:
  • ksquaresgame.h
  • ksquaresgame.cpp

ksquares

Skip menu "ksquares"
  • Main Page
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

API Reference

Skip menu "API Reference"
  • kblackbox
  • kgoldrunner
  • kmahjongg
  • ksquares
  • libkdegames
  •   highscore
  •   kgame
  •   kggzgames
  •   kggzmod
  •   kggznet
  • libkmahjongg
Generated for API Reference by doxygen 1.5.4
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal