void PgntestTest::GameResult_checkAllPossiblesResults()
{
    GameResult whiteWin("1-0");
    QVERIFY(whiteWin.isWhiteWin());

    GameResult blackWin("0-1");
    QVERIFY(blackWin.isBlackWin());

    GameResult drawn("1/2-1/2");
    QVERIFY(drawn.isDrawn());

    GameResult unknown("*");
    QVERIFY(unknown.isUnknown());
}
Beispiel #2
0
void GameMap::draw() {
   std::vector<bool> drawn(between.size(), false);
   std::vector<Point> oldPos(between.size());
   int start = 0;

   std::sort(between.begin(), between.end(), SortBetween());

   for (unsigned int i = 0; i < between.size(); ++i) {
      oldPos[i].x = between[i]->getX();
      oldPos[i].y = between[i]->getY();
      between[i]->setPos(getX() + oldPos[i].x, getY() + oldPos[i].y);
   }
   for (unsigned int i = 0; i < tiles.size(); ++i) {
      /*
        Don't waste time, don't draw unvisible tiles.
        ( It's also possible that the size of the map is inferior
	to the screen size )
      */

      if (visible(tiles[i])) {
	 for (unsigned int j = start; j < between.size(); ++j) {
	    if (!drawn[j]) {
	       if (between[j]->getY() < (getY() + tiles[i].y)) {
		  DrawableRect rect;
		  rect.setPos(tiles[i].x + getX(), tiles[i].y + getY());
		  rect.resize(tileWidth, tileHeight);
		  if (between[j]->collide(rect)) {
		     between[j]->draw();
		     drawn[j] = true;
		     start = j;
		  }
	       }
	    }
	 }

	 Sprite &tile = tilesets[tiles[i].tileset];
         tile.setTile(tiles[i].tileX, tiles[i].tileY, tileWidth, tileHeight);
         tile.setPos(getX() + tiles[i].x, getY() + tiles[i].y);

	 tile.draw();
      }
   }
   for (unsigned int i = 0; i < between.size(); ++i) {
      if (!drawn[i])
	 between[i]->draw();
      between[i]->setPos(oldPos[i]);
      between[i]->clearMove();
   }
}