public ArrayList<Point> checkMove2(Stack<TTTBoard> boards, char player) {
		ArrayList<Point> winningSpots = new ArrayList<Point>();
		ArrayList<TTTBoard> tempArray = new ArrayList<TTTBoard>();
		while (!boards.isEmpty()) {
			TTTBoard aBoard = boards.pop();
			ArrayList<Point> spots = aBoard.getEmptySpots();
			char turn = getChar(spots.size());
			ArrayList<TTTBoard> tempArray2 = new ArrayList<TTTBoard>();
			for (int i = 0; i < spots.size(); i++) {
				TTTBoard board = new TTTBoard(aBoard);
				board.getBoard()[spots.get(i).x][spots.get(i).y] = turn;
				if (spots.size() < 6) {
					if (board.checkWin()) {
						if (turn == player) {
							winningSpots.add(board.getStart());
							break;
						} else {
							break;
						}

					} else {
						tempArray2.add(board);
					}
				} else {
					tempArray.add(board);
				}
			}
			if (tempArray2.size() == spots.size()) {
				// didn't break out because of loss or win
				tempArray.addAll(tempArray2);
			}
		}
		if (winningSpots.isEmpty()
				&& tempArray.get(0).getEmptySpots().size() != 0) {
			boards.addAll(tempArray);
			winningSpots = checkMove2(boards, player);
		}
		return winningSpots;
	}