public boolean isCheckMate() {
		if (
			(this.board.getBlackTime() == 0 || this.board.getWhiteTime() == 0) && 
			this.hasTimer()
		) {
			this.cancelTimer();
			return true;
		}
		boolean possibleCheckmate = false;
		for (Piece p : this.board.getPieces()) {
			if (p.isWhite() == this.board.isWhiteTurn()) {
				if (!p.getPossibleTiles(this.board).isEmpty()) {
					return false;
				}
				if (p instanceof King) {
					King k = (King) p;
					possibleCheckmate = k.inCheck(this.board);
				}
			}

		}
		if (possibleCheckmate && this.hasTimer()) {
			this.cancelTimer();
		}
		return possibleCheckmate;
	}