public boolean isCheckmate() {		
		if(!inCheck()) {
			return false;
		}
		Tuple<Integer, Integer> kingLoc = getKingLoc();
		ArrayList<Tuple<Integer, Integer>> kingMoves = Board[kingLoc.getFirst()][kingLoc.getSecond()].possibleMoves(Board);
		if(kingMoves.size() != 0) {
			return false;
		}
		for(int i = 0; i < 8; i++) {
			for(int j = 0; j < 8; j++) {
				if(!Board[i][j].isTile() && Board[i][j].getColor().equals(turn)) {
					ArrayList<Tuple<Integer, Integer>> objMoves = Board[i][j].possibleMoves(Board);
					for(int k = 0; k < objMoves.size(); k++) {
						int fst = objMoves.get(k).getFirst();
						int snd = objMoves.get(k).getSecond();
						GameObj orig = Board[i][j];
						GameObj orig2 = Board[fst][snd];
						Board[fst][snd] = Board[i][j];
						Board[fst][snd].x = fst;
						Board[fst][snd].y = snd;
						Board[i][j] = new GameTile(i,j,COURT_WIDTH,COURT_HEIGHT,null);
						if(!inCheck()) {
							Board[i][j] = orig;
							Board[i][j].x = i;
							Board[i][j].y = j;
							Board[fst][snd] = orig2;
							Board[fst][snd].x = fst;
							Board[fst][snd].y = snd;
							return false;
						} else {
							Board[i][j] = orig;
							Board[i][j].x = i;
							Board[i][j].y = j;
							Board[fst][snd] = orig2;
							Board[fst][snd].x = fst;
							Board[fst][snd].y = snd;
						}
					}
				}
			}
		}
		System.out.println("makes it to this point");		
		return true;
	}