Source Code (Use browser search to find items of interest.)

Class Index

kreversi'Game (./kdegames/kreversi/Game.h:108)

class Game { 
public:
  Game();
  void Reset();
  bool MakeMove(Move m);
  bool TakeBackMove();
  int GetSquare(int x, int y);
  int GetScore(int player);
  Move GetLastMove();
  bool MoveIsLegal(Move m);
  bool MoveIsPossible(int player);
  bool MoveIsAtAllPossible();
  int GetMoveNumber();
  int GetWhoseTurn();
  int GetWhoseTurnOpponent();
  bool squareModified(int x, int y);
  bool wasTurned(int x, int y);

private:
  Position m_positions[64];
  int m_movenumber;
};

kreversi'Game::Game() (./kdegames/kreversi/Game.cpp:104)

Game::Game()
{
  // JAVA m_positions = new Position[61];
  // JAVA m_positions[0] = new Position();
  m_positions[0].constrInit();
  m_movenumber = 0;
}


kreversi'Game::Reset() (./kdegames/kreversi/Game.cpp:112)

void Game::Reset()
{
  // JAVA m_positions = new Position[61];
  // JAVA m_positions[0] = new Position();
  m_positions[0].constrInit();
  m_movenumber = 0;
}



kreversi'Game::MakeMove() (./kdegames/kreversi/Game.cpp:121)

bool Game::MakeMove(Move m)
{
  if (m.GetPlayer() == Score::NOBODY) return false;
  if (GetWhoseTurn() != m.GetPlayer()) return false;
  if (! m_positions[m_movenumber].MoveIsLegal(m)) return false;
  
  m_positions[m_movenumber+1].constrCopy(m_positions[m_movenumber], m);
  m_movenumber++;

  return true;
}



kreversi'Game::TakeBackMove() (./kdegames/kreversi/Game.cpp:134)

bool Game::TakeBackMove()
{
  if (m_movenumber <= 0) return false;

  // JAVA m_positions[m_movenumber--] = null;
  m_movenumber--;

  return true;
}



kreversi'Game::GetSquare() (./kdegames/kreversi/Game.cpp:145)

int Game::GetSquare(int x, int y)
{
  return m_positions[m_movenumber].GetSquare(x, y);
}



kreversi'Game::GetScore() (./kdegames/kreversi/Game.cpp:151)

int Game::GetScore(int player)
{
  return m_positions[m_movenumber].GetScore(player);
}



kreversi'Game::GetLastMove() (./kdegames/kreversi/Game.cpp:157)

Move Game::GetLastMove() { return m_positions[m_movenumber].GetLastMove(); }



kreversi'Game::MoveIsLegal() (./kdegames/kreversi/Game.cpp:160)

bool Game::MoveIsLegal(Move m)
{
  return m_positions[m_movenumber].MoveIsLegal(m);
}



kreversi'Game::MoveIsPossible() (./kdegames/kreversi/Game.cpp:166)

bool Game::MoveIsPossible(int player)
{
  return m_positions[m_movenumber].MoveIsPossible(player);
}



kreversi'Game::MoveIsAtAllPossible() (./kdegames/kreversi/Game.cpp:172)

bool Game::MoveIsAtAllPossible()
{
  return m_positions[m_movenumber].MoveIsAtAllPossible();
}



kreversi'Game::GetMoveNumber() (./kdegames/kreversi/Game.cpp:178)

int Game::GetMoveNumber() { return m_movenumber; }



kreversi'Game::GetWhoseTurn() (./kdegames/kreversi/Game.cpp:181)

int Game::GetWhoseTurn()
{
  if (m_movenumber <= 0) return Score::BLACK;
  
  int player = GetLastMove().GetPlayer();
  int opponent = Score::GetOpponent(player);
  
    if (MoveIsPossible(opponent)) return opponent;
    
    if (MoveIsPossible(player)) return player;
    
    return Score::NOBODY;
}


kreversi'Game::GetWhoseTurnOpponent() (./kdegames/kreversi/Game.cpp:195)

int Game::GetWhoseTurnOpponent() {
  int color = GetWhoseTurn();
  if(color == Score::NOBODY)
    return Score::NOBODY;
  else if(color == Score::BLACK)
    return Score::WHITE;
  else
    return Score::BLACK;
}


kreversi'Game::squareModified() (./kdegames/kreversi/Game.cpp:205)

bool Game::squareModified(int x, int y) {
  if(GetMoveNumber() == 1)
    return TRUE;
  else
    return (bool)(m_positions[m_movenumber].GetSquare(x, y) != m_positions[m_movenumber-1].GetSquare(x, y));
}


kreversi'Game::wasTurned() (./kdegames/kreversi/Game.cpp:212)

bool Game::wasTurned(int x, int y) {
  if(GetMoveNumber() == 0)
    return FALSE;
  else {
    int c1 = m_positions[m_movenumber-1].GetSquare(x, y);
    int c2 = m_positions[m_movenumber].GetSquare(x, y);
    
    if(c1 == Score::NOBODY)
      return FALSE;
    else if(c1 == c2)
      return FALSE;
    else
      return TRUE;
  }
}